diff options
author | Denys Vlasenko | 2010-10-17 01:35:16 +0200 |
---|---|---|
committer | Denys Vlasenko | 2010-10-17 01:35:16 +0200 |
commit | a971a192e8af4279fb384be9ff0f0e8387b229cb (patch) | |
tree | 1946ade9ce19e7c7b2912d31f70bebcf87b54321 /libbb/sha1.c | |
parent | 446c2349b608fc4e25ac5846f4491bfa389330a6 (diff) | |
download | busybox-a971a192e8af4279fb384be9ff0f0e8387b229cb.zip busybox-a971a192e8af4279fb384be9ff0f0e8387b229cb.tar.gz |
shaN: code shrink
function old new delta
init512_lo 32 40 +8
init256 32 40 +8
sha256_begin 42 28 -14
sha512_begin 81 53 -28
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/2 up/down: 16/-42) Total: -26 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/sha1.c')
-rw-r--r-- | libbb/sha1.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/libbb/sha1.c b/libbb/sha1.c index 6d2f884..70efd58 100644 --- a/libbb/sha1.c +++ b/libbb/sha1.c @@ -329,7 +329,9 @@ static const uint32_t init256[] = { 0x510e527f, 0x9b05688c, 0x1f83d9ab, - 0x5be0cd19 + 0x5be0cd19, + 0, + 0, }; static const uint32_t init512_lo[] = { 0xf3bcc908, @@ -339,7 +341,9 @@ static const uint32_t init512_lo[] = { 0xade682d1, 0x2b3e6c1f, 0xfb41bd6b, - 0x137e2179 + 0x137e2179, + 0, + 0, }; /* Initialize structure containing state of computation. @@ -347,7 +351,7 @@ static const uint32_t init512_lo[] = { void FAST_FUNC sha256_begin(sha256_ctx_t *ctx) { memcpy(ctx->hash, init256, sizeof(init256)); - ctx->total64 = 0; + /*ctx->total64 = 0; - done by extending init256 with two 32-bit zeros */ ctx->process_block = sha256_process_block64; } @@ -356,9 +360,10 @@ void FAST_FUNC sha256_begin(sha256_ctx_t *ctx) void FAST_FUNC sha512_begin(sha512_ctx_t *ctx) { int i; - for (i = 0; i < 8; i++) + /* Two extra iterations zero out ctx->total64[] */ + for (i = 0; i < 8+2; i++) ctx->hash[i] = ((uint64_t)(init256[i]) << 32) + init512_lo[i]; - ctx->total64[0] = ctx->total64[1] = 0; + /*ctx->total64[0] = ctx->total64[1] = 0; - already done */ } |