diff options
author | Denys Vlasenko | 2010-10-16 20:45:27 +0200 |
---|---|---|
committer | Denys Vlasenko | 2010-10-16 20:45:27 +0200 |
commit | c0683acce88efc1fe15d9a4332428b5a9fdc6c2e (patch) | |
tree | cb0f5bb99b5e5f4490be175238d3a877115bc468 /libbb | |
parent | 1a5e11c874a1f53c5205140a9d675b7e6404bbc9 (diff) | |
download | busybox-c0683acce88efc1fe15d9a4332428b5a9fdc6c2e.zip busybox-c0683acce88efc1fe15d9a4332428b5a9fdc6c2e.tar.gz |
*: pass md5/shaN context pointer as 1st arg, not last
function old new delta
md5_hash_block 458 459 +1
filter_rename_config 252 250 -2
md5_crypt 591 587 -4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/md5.c | 12 | ||||
-rw-r--r-- | libbb/pw_encrypt_md5.c | 32 | ||||
-rw-r--r-- | libbb/sha1.c | 8 |
3 files changed, 26 insertions, 26 deletions
diff --git a/libbb/md5.c b/libbb/md5.c index 1f9d59e..47f5fc6 100644 --- a/libbb/md5.c +++ b/libbb/md5.c @@ -49,7 +49,7 @@ void FAST_FUNC md5_begin(md5_ctx_t *ctx) #define rotl32(w, s) (((w) << (s)) | ((w) >> (32 - (s)))) /* Hash a single block, 64 bytes long and 4-byte aligned. */ -static void md5_hash_block(const void *buffer, md5_ctx_t *ctx) +static void md5_hash_block(md5_ctx_t *ctx, const void *buffer) { uint32_t correct_words[16]; const uint32_t *words = buffer; @@ -361,7 +361,7 @@ static void md5_hash_block(const void *buffer, md5_ctx_t *ctx) * with chunks of data that are 4-byte aligned and a multiple of 64 bytes. * This function's internal buffer remembers previous data until it has 64 * bytes worth to pass on. Call md5_end() to flush this buffer. */ -void FAST_FUNC md5_hash(const void *buffer, size_t len, md5_ctx_t *ctx) +void FAST_FUNC md5_hash(md5_ctx_t *ctx, const void *buffer, size_t len) { const char *buf = buffer; unsigned buflen = BUFLEN(ctx); @@ -385,7 +385,7 @@ void FAST_FUNC md5_hash(const void *buffer, size_t len, md5_ctx_t *ctx) if (buflen != 0) break; /* Buffer is filled up, process it. */ - md5_hash_block(ctx->buffer, ctx); + md5_hash_block(ctx, ctx->buffer); /*buflen = 0; - already is */ } } @@ -395,7 +395,7 @@ void FAST_FUNC md5_hash(const void *buffer, size_t len, md5_ctx_t *ctx) * endian byte order, so that a byte-wise output yields to the wanted * ASCII representation of the message digest. */ -void FAST_FUNC md5_end(void *resbuf, md5_ctx_t *ctx) +void FAST_FUNC md5_end(md5_ctx_t *ctx, void *resbuf) { uint64_t total; char *buf = ctx->buffer; @@ -419,8 +419,8 @@ void FAST_FUNC md5_end(void *resbuf, md5_ctx_t *ctx) /* Process last bytes. */ if (buf != ctx->buffer) - md5_hash_block(ctx->buffer, ctx); - md5_hash_block(buf, ctx); + md5_hash_block(ctx, ctx->buffer); + md5_hash_block(ctx, buf); /* The MD5 result is in little endian byte order. * We (ab)use the fact that A-D are consecutive in memory. diff --git a/libbb/pw_encrypt_md5.c b/libbb/pw_encrypt_md5.c index 58964b5..889e09c 100644 --- a/libbb/pw_encrypt_md5.c +++ b/libbb/pw_encrypt_md5.c @@ -92,10 +92,10 @@ md5_crypt(char result[MD5_OUT_BUFSIZE], const unsigned char *pw, const unsigned /* Hash. the password first, since that is what is most unknown */ md5_begin(&ctx); pw_len = strlen((char*)pw); - md5_hash(pw, pw_len, &ctx); + md5_hash(&ctx, pw, pw_len); /* Then the salt including "$1$" */ - md5_hash(salt, sl, &ctx); + md5_hash(&ctx, salt, sl); /* Copy salt to result; skip "$1$" */ memcpy(result, salt, sl); @@ -105,19 +105,19 @@ md5_crypt(char result[MD5_OUT_BUFSIZE], const unsigned char *pw, const unsigned /* Then just as many characters of the MD5(pw, salt, pw) */ md5_begin(&ctx1); - md5_hash(pw, pw_len, &ctx1); - md5_hash(salt, sl, &ctx1); - md5_hash(pw, pw_len, &ctx1); - md5_end(final, &ctx1); + md5_hash(&ctx1, pw, pw_len); + md5_hash(&ctx1, salt, sl); + md5_hash(&ctx1, pw, pw_len); + md5_end(&ctx1, final); for (pl = pw_len; pl > 0; pl -= 16) - md5_hash(final, pl > 16 ? 16 : pl, &ctx); + md5_hash(&ctx, final, pl > 16 ? 16 : pl); /* Then something really weird... */ memset(final, 0, sizeof(final)); for (i = pw_len; i; i >>= 1) { - md5_hash(((i & 1) ? final : (const unsigned char *) pw), 1, &ctx); + md5_hash(&ctx, ((i & 1) ? final : (const unsigned char *) pw), 1); } - md5_end(final, &ctx); + md5_end(&ctx, final); /* And now, just to make sure things don't run too fast. * On a 60 Mhz Pentium this takes 34 msec, so you would @@ -126,21 +126,21 @@ md5_crypt(char result[MD5_OUT_BUFSIZE], const unsigned char *pw, const unsigned for (i = 0; i < 1000; i++) { md5_begin(&ctx1); if (i & 1) - md5_hash(pw, pw_len, &ctx1); + md5_hash(&ctx1, pw, pw_len); else - md5_hash(final, 16, &ctx1); + md5_hash(&ctx1, final, 16); if (i % 3) - md5_hash(salt, sl, &ctx1); + md5_hash(&ctx1, salt, sl); if (i % 7) - md5_hash(pw, pw_len, &ctx1); + md5_hash(&ctx1, pw, pw_len); if (i & 1) - md5_hash(final, 16, &ctx1); + md5_hash(&ctx1, final, 16); else - md5_hash(pw, pw_len, &ctx1); - md5_end(final, &ctx1); + md5_hash(&ctx1, pw, pw_len); + md5_end(&ctx1, final); } p = result + sl + 4; /* 12 bytes max (sl is up to 8 bytes) */ diff --git a/libbb/sha1.c b/libbb/sha1.c index beeb70c..fac23c0 100644 --- a/libbb/sha1.c +++ b/libbb/sha1.c @@ -361,7 +361,7 @@ void FAST_FUNC sha512_begin(sha512_ctx_t *ctx) /* Used also for sha256 */ -void FAST_FUNC sha1_hash(const void *buffer, size_t len, sha1_ctx_t *ctx) +void FAST_FUNC sha1_hash(sha1_ctx_t *ctx, const void *buffer, size_t len) { unsigned in_buf = ctx->total64 & 63; unsigned add = 64 - in_buf; @@ -380,7 +380,7 @@ void FAST_FUNC sha1_hash(const void *buffer, size_t len, sha1_ctx_t *ctx) memcpy(ctx->wbuffer + in_buf, buffer, len); } -void FAST_FUNC sha512_hash(const void *buffer, size_t len, sha512_ctx_t *ctx) +void FAST_FUNC sha512_hash(sha512_ctx_t *ctx, const void *buffer, size_t len) { unsigned in_buf = ctx->total64[0] & 127; unsigned add = 128 - in_buf; @@ -406,7 +406,7 @@ void FAST_FUNC sha512_hash(const void *buffer, size_t len, sha512_ctx_t *ctx) /* Used also for sha256 */ -void FAST_FUNC sha1_end(void *resbuf, sha1_ctx_t *ctx) +void FAST_FUNC sha1_end(sha1_ctx_t *ctx, void *resbuf) { unsigned pad, in_buf; @@ -442,7 +442,7 @@ void FAST_FUNC sha1_end(void *resbuf, sha1_ctx_t *ctx) memcpy(resbuf, ctx->hash, sizeof(ctx->hash[0]) * in_buf); } -void FAST_FUNC sha512_end(void *resbuf, sha512_ctx_t *ctx) +void FAST_FUNC sha512_end(sha512_ctx_t *ctx, void *resbuf) { unsigned pad, in_buf; |