diff options
author | Lauri Kasanen <curaga@operamail.com> | 2013-01-14 05:20:50 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2013-01-14 05:20:50 +0100 |
commit | b8173b603f57dcf918a67f1ec00763ab5f4e1cf8 (patch) | |
tree | 726549290ba408cf68561c4c1c2d591a80ded319 /coreutils/md5_sha1_sum.c | |
parent | b7841cf7b919b16d1bd4619154bf7cb4c22b4ccd (diff) | |
download | busybox-b8173b603f57dcf918a67f1ec00763ab5f4e1cf8.tar.gz |
sha3sum: new applet
function old new delta
KeccakF - 496 +496
KeccakF_RoundConstants - 192 +192
sha3_hash - 171 +171
sha3_end - 40 +40
hash_file 274 299 +25
KeccakF_RotationConstants - 25 +25
KeccakF_PiLane - 25 +25
packed_usage 29213 29232 +19
sha3_begin - 18 +18
KeccakF_Mod5 - 10 +10
applet_names 2445 2453 +8
applet_main 1420 1424 +4
applet_nameofs 710 712 +2
------------------------------------------------------------------------------
(add/remove: 8/0 grow/shrink: 9/7 up/down: 1049/-54) Total: ~995 bytes
Signed-off-by: Lauri Kasanen <curaga@operamail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils/md5_sha1_sum.c')
-rw-r--r-- | coreutils/md5_sha1_sum.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/coreutils/md5_sha1_sum.c b/coreutils/md5_sha1_sum.c index 59b520fce..92a4d4462 100644 --- a/coreutils/md5_sha1_sum.c +++ b/coreutils/md5_sha1_sum.c @@ -55,6 +55,16 @@ //usage: "\n -s Don't output anything, status code shows success" //usage: "\n -w Warn about improperly formatted checksum lines" //usage: ) +//usage: +//usage:#define sha3sum_trivial_usage +//usage: IF_FEATURE_MD5_SHA1_SUM_CHECK("[-c[sw]] ")"[FILE]..." +//usage:#define sha3sum_full_usage "\n\n" +//usage: "Print" IF_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " SHA3-512 checksums" +//usage: IF_FEATURE_MD5_SHA1_SUM_CHECK( "\n" +//usage: "\n -c Check sums against list in FILEs" +//usage: "\n -s Don't output anything, status code shows success" +//usage: "\n -w Warn about improperly formatted checksum lines" +//usage: ) #include "libbb.h" @@ -65,6 +75,7 @@ enum { HASH_MD5 = 's', /* "md5>s<um" */ HASH_SHA1 = '1', HASH_SHA256 = '2', + HASH_SHA3 = '3', HASH_SHA512 = '5', }; @@ -86,6 +97,7 @@ static uint8_t *hash_file(const char *filename) { int src_fd, hash_len, count; union _ctx_ { + sha3_ctx_t sha3; sha512_ctx_t sha512; sha256_ctx_t sha256; sha1_ctx_t sha1; @@ -124,6 +136,11 @@ static uint8_t *hash_file(const char *filename) update = (void*)sha512_hash; final = (void*)sha512_end; hash_len = 64; + } else if (ENABLE_SHA3SUM && hash_algo == HASH_SHA3) { + sha3_begin(&context.sha3); + update = (void*)sha3_hash; + final = (void*)sha3_end; + hash_len = 64; } else { xfunc_die(); /* can't reach this */ } |