summaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
authorDenys Vlasenko2010-10-17 01:35:16 +0200
committerDenys Vlasenko2010-10-17 01:35:16 +0200
commita971a192e8af4279fb384be9ff0f0e8387b229cb (patch)
tree1946ade9ce19e7c7b2912d31f70bebcf87b54321 /libbb
parent446c2349b608fc4e25ac5846f4491bfa389330a6 (diff)
downloadbusybox-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')
-rw-r--r--libbb/sha1.c15
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 */
}