Magellan Linux

Contents of /tags/mkinitrd-6_1_0/busybox/loginutils/cryptpw.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 820 - (show annotations) (download)
Fri Apr 24 19:09:57 2009 UTC (15 years, 1 month ago) by niro
File MIME type: text/plain
File size: 1143 byte(s)
tagged 'mkinitrd-6_1_0'
1 /* vi: set sw=4 ts=4: */
2 /*
3 * cryptpw.c
4 *
5 * Cooked from passwd.c by Thomas Lundquist <thomasez@zelow.no>
6 */
7
8 #include "libbb.h"
9
10 #define TESTING 0
11
12 /*
13 set TESTING to 1 and pipe some file through this script
14 if you played with bbox's crypt implementation.
15
16 while read line; do
17 n=`./busybox cryptpw -a des -- "$line"`
18 o=`./busybox_org cryptpw -a des -- "$line"`
19 test "$n" != "$o" && {
20 echo n="$n"
21 echo o="$o"
22 exit
23 }
24 n=`./busybox cryptpw -- "$line"`
25 o=`./busybox_org cryptpw -- "$line"`
26 test "$n" != "$o" && {
27 echo n="$n"
28 echo o="$o"
29 exit
30 }
31 done
32 */
33
34 int cryptpw_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
35 int cryptpw_main(int argc UNUSED_PARAM, char **argv)
36 {
37 char salt[sizeof("$N$XXXXXXXX")];
38 char *opt_a;
39
40 if (!getopt32(argv, "a:", &opt_a) || opt_a[0] != 'd') {
41 salt[0] = '$';
42 salt[1] = '1';
43 salt[2] = '$';
44 crypt_make_salt(salt + 3, 4, 0); /* md5 */
45 #if TESTING
46 strcpy(salt + 3, "ajg./bcf");
47 #endif
48 } else {
49 crypt_make_salt(salt, 1, 0); /* des */
50 #if TESTING
51 strcpy(salt, "a.");
52 #endif
53 }
54
55 puts(pw_encrypt(argv[optind] ? argv[optind] : xmalloc_fgetline(stdin), salt, 1));
56
57 return 0;
58 }