summaryrefslogtreecommitdiffstats
path: root/src/crypto/md4/md4.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/crypto/md4/md4.c')
-rw-r--r--src/crypto/md4/md4.c38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/crypto/md4/md4.c b/src/crypto/md4/md4.c
index 5ef9ae5..0a8ea1d 100644
--- a/src/crypto/md4/md4.c
+++ b/src/crypto/md4/md4.c
@@ -64,18 +64,17 @@
int MD4_Init(MD4_CTX *md4) {
memset(md4, 0, sizeof(MD4_CTX));
- md4->A = 0x67452301UL;
- md4->B = 0xefcdab89UL;
- md4->C = 0x98badcfeUL;
- md4->D = 0x10325476UL;
+ md4->h[0] = 0x67452301UL;
+ md4->h[1] = 0xefcdab89UL;
+ md4->h[2] = 0x98badcfeUL;
+ md4->h[3] = 0x10325476UL;
return 1;
}
-void md4_block_data_order (MD4_CTX *md4, const void *p, size_t num);
+void md4_block_data_order(uint32_t *state, const uint8_t *data, size_t num);
#define DATA_ORDER_IS_LITTLE_ENDIAN
-#define HASH_LONG uint32_t
#define HASH_CTX MD4_CTX
#define HASH_CBLOCK 64
#define HASH_UPDATE MD4_Update
@@ -84,13 +83,13 @@ void md4_block_data_order (MD4_CTX *md4, const void *p, size_t num);
#define HASH_MAKE_STRING(c, s) \
do { \
uint32_t ll; \
- ll = (c)->A; \
+ ll = (c)->h[0]; \
(void) HOST_l2c(ll, (s)); \
- ll = (c)->B; \
+ ll = (c)->h[1]; \
(void) HOST_l2c(ll, (s)); \
- ll = (c)->C; \
+ ll = (c)->h[2]; \
(void) HOST_l2c(ll, (s)); \
- ll = (c)->D; \
+ ll = (c)->h[3]; \
(void) HOST_l2c(ll, (s)); \
} while (0)
#define HASH_BLOCK_DATA_ORDER md4_block_data_order
@@ -122,15 +121,14 @@ void md4_block_data_order (MD4_CTX *md4, const void *p, size_t num);
a = ROTATE(a, s); \
};
-void md4_block_data_order(MD4_CTX *c, const void *data_, size_t num) {
- const uint8_t *data = data_;
+void md4_block_data_order(uint32_t *state, const uint8_t *data, size_t num) {
uint32_t A, B, C, D, l;
uint32_t X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15;
- A = c->A;
- B = c->B;
- C = c->C;
- D = c->D;
+ A = state[0];
+ B = state[1];
+ C = state[2];
+ D = state[3];
for (; num--;) {
HOST_c2l(data, l);
@@ -217,9 +215,9 @@ void md4_block_data_order(MD4_CTX *c, const void *data_, size_t num) {
R2(C, D, A, B, X7, 11, 0x6ED9EBA1L);
R2(B, C, D, A, X15, 15, 0x6ED9EBA1L);
- A = c->A += A;
- B = c->B += B;
- C = c->C += C;
- D = c->D += D;
+ A = state[0] += A;
+ B = state[1] += B;
+ C = state[2] += C;
+ D = state[3] += D;
}
}