Magellan Linux

Annotation of /trunk/mkinitrd-magellan/busybox/loginutils/cryptpw.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 816 - (hide annotations) (download)
Fri Apr 24 18:33:46 2009 UTC (15 years, 1 month ago) by niro
File MIME type: text/plain
File size: 1143 byte(s)
-updated to busybox-1.13.4
1 niro 816 /* 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     }