diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-06-15 08:12:00 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-06-15 08:12:00 +0000 |
commit | 04087c6bbd247ef5802de3f8bd625fa3643e23e2 (patch) | |
tree | ced2e67083fca4ea67714988f63f6ad6dd99a07b /loginutils | |
parent | d50dda8c3501af9d593cd11272a15b480864a01c (diff) | |
download | busybox-w32-04087c6bbd247ef5802de3f8bd625fa3643e23e2.tar.gz busybox-w32-04087c6bbd247ef5802de3f8bd625fa3643e23e2.tar.bz2 busybox-w32-04087c6bbd247ef5802de3f8bd625fa3643e23e2.zip |
cryptpw: fix "cryptpw -a des -- TEXT" case
libbb/pw_encrypt_des.c: optimize
function old new delta
cryptpw_main 177 157 -20
des_crypt 1682 1512 -170
pw_encrypt 1036 842 -194
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-384) Total: -384 bytes
Run tested.
Diffstat (limited to 'loginutils')
-rw-r--r-- | loginutils/cryptpw.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/loginutils/cryptpw.c b/loginutils/cryptpw.c index 1acbc6db0..901f6fcde 100644 --- a/loginutils/cryptpw.c +++ b/loginutils/cryptpw.c | |||
@@ -15,14 +15,14 @@ if you played with bbox's crypt implementation. | |||
15 | 15 | ||
16 | while read line; do | 16 | while read line; do |
17 | n=`./busybox cryptpw -a des -- "$line"` | 17 | n=`./busybox cryptpw -a des -- "$line"` |
18 | o=`./busybox_old cryptpw -a des -- "$line"` | 18 | o=`./busybox_org cryptpw -a des -- "$line"` |
19 | test "$n" != "$o" && { | 19 | test "$n" != "$o" && { |
20 | echo n="$n" | 20 | echo n="$n" |
21 | echo o="$o" | 21 | echo o="$o" |
22 | exit | 22 | exit |
23 | } | 23 | } |
24 | n=`./busybox cryptpw -- "$line"` | 24 | n=`./busybox cryptpw -- "$line"` |
25 | o=`./busybox_old cryptpw -- "$line"` | 25 | o=`./busybox_org cryptpw -- "$line"` |
26 | test "$n" != "$o" && { | 26 | test "$n" != "$o" && { |
27 | echo n="$n" | 27 | echo n="$n" |
28 | echo o="$o" | 28 | echo o="$o" |
@@ -35,12 +35,12 @@ int cryptpw_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | |||
35 | int cryptpw_main(int argc ATTRIBUTE_UNUSED, char **argv) | 35 | int cryptpw_main(int argc ATTRIBUTE_UNUSED, char **argv) |
36 | { | 36 | { |
37 | char salt[sizeof("$N$XXXXXXXX")]; | 37 | char salt[sizeof("$N$XXXXXXXX")]; |
38 | char *opt_a; | ||
38 | 39 | ||
39 | if (!getopt32(argv, "a:", NULL) || argv[optind - 1][0] != 'd') { | 40 | if (!getopt32(argv, "a:", &opt_a) || opt_a[0] != 'd') { |
40 | strcpy(salt, "$1$"); | 41 | salt[0] = '$'; |
41 | /* Too ugly, and needs even more magic to handle endianness: */ | 42 | salt[1] = '1'; |
42 | //((uint32_t*)&salt)[0] = '$' + '1'*0x100 + '$'*0x10000; | 43 | salt[2] = '$'; |
43 | /* Hope one day gcc will do it itself (inlining strcpy) */ | ||
44 | crypt_make_salt(salt + 3, 4, 0); /* md5 */ | 44 | crypt_make_salt(salt + 3, 4, 0); /* md5 */ |
45 | #if TESTING | 45 | #if TESTING |
46 | strcpy(salt + 3, "ajg./bcf"); | 46 | strcpy(salt + 3, "ajg./bcf"); |