Smack: add the execute lable to ldconfig
[platform/upstream/glibc.git] / manual / examples / testpass.c
1 /* Verify a password.
2    Copyright (C) 1991-2015 Free Software Foundation, Inc.
3
4    This program is free software; you can redistribute it and/or
5    modify it under the terms of the GNU General Public License
6    as published by the Free Software Foundation; either version 2
7    of the License, or (at your option) any later version.
8
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13
14    You should have received a copy of the GNU General Public License
15    along with this program; if not, if not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #include <stdio.h>
19 #include <string.h>
20 #include <unistd.h>
21 #include <crypt.h>
22
23 int
24 main(void)
25 {
26   /* Hashed form of "GNU libc manual".  */
27   const char *const pass = "$1$/iSaq7rB$EoUw5jJPPvAPECNaaWzMK/";
28
29   char *result;
30   int ok;
31
32 /*@group*/
33   /* Read in the user's password and encrypt it,
34      passing the expected password in as the salt.  */
35   result = crypt(getpass("Password:"), pass);
36 /*@end group*/
37
38   /* Test the result.  */
39   ok = strcmp (result, pass) == 0;
40
41   puts(ok ? "Access granted." : "Access denied.");
42   return ok ? 0 : 1;
43 }