aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
Diffstat (limited to 'libbb')
-rw-r--r--libbb/md5.c12
-rw-r--r--libbb/pw_encrypt_md5.c32
-rw-r--r--libbb/sha1.c8
3 files changed, 26 insertions, 26 deletions
diff --git a/libbb/md5.c b/libbb/md5.c
index 1f9d59e6e..47f5fc6f8 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 58964b567..889e09cab 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 beeb70cf6..fac23c0ec 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;