sha1: remove SHA1HANDSOFF
We don't support configuration when SHA1 functions overwrite user's data. So remove this code not to confuse.
This commit is contained in:
13
src/sha1.c
13
src/sha1.c
@@ -75,9 +75,6 @@ move public api to sha1.h
|
|||||||
#include "ostypes.h"
|
#include "ostypes.h"
|
||||||
#include "sha1.h"
|
#include "sha1.h"
|
||||||
|
|
||||||
/* Don't change user's data */
|
|
||||||
#define SHA1HANDSOFF
|
|
||||||
|
|
||||||
static uint32_t host_to_be(uint32_t i);
|
static uint32_t host_to_be(uint32_t i);
|
||||||
static void SHA1_Transform(uint32_t state[5], const uint8_t buffer[64]);
|
static void SHA1_Transform(uint32_t state[5], const uint8_t buffer[64]);
|
||||||
|
|
||||||
@@ -139,13 +136,9 @@ static void SHA1_Transform(uint32_t state[5], const uint8_t buffer[64])
|
|||||||
} CHAR64LONG16;
|
} CHAR64LONG16;
|
||||||
CHAR64LONG16 *block;
|
CHAR64LONG16 *block;
|
||||||
|
|
||||||
#ifdef SHA1HANDSOFF
|
|
||||||
static uint8_t workspace[64];
|
static uint8_t workspace[64];
|
||||||
block = (CHAR64LONG16 *)workspace;
|
block = (CHAR64LONG16 *)workspace;
|
||||||
memcpy(block, buffer, 64);
|
memcpy(block, buffer, 64);
|
||||||
#else
|
|
||||||
block = (CHAR64LONG16 *)buffer;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Copy context->state[] to working vars */
|
/* Copy context->state[] to working vars */
|
||||||
a = state[0];
|
a = state[0];
|
||||||
@@ -239,8 +232,8 @@ void crypto_SHA1_Final(SHA1_CTX *context, uint8_t *digest)
|
|||||||
while ((context->count[0] & 504) != 448) {
|
while ((context->count[0] & 504) != 448) {
|
||||||
crypto_SHA1_Update(context, (uint8_t *)"\0", 1);
|
crypto_SHA1_Update(context, (uint8_t *)"\0", 1);
|
||||||
}
|
}
|
||||||
crypto_SHA1_Update(context, finalcount,
|
/* Should cause a SHA1_Transform() */
|
||||||
8); /* Should cause a SHA1_Transform() */
|
crypto_SHA1_Update(context, finalcount, 8);
|
||||||
for (i = 0; i < SHA1_DIGEST_SIZE; i++) {
|
for (i = 0; i < SHA1_DIGEST_SIZE; i++) {
|
||||||
digest[i] =
|
digest[i] =
|
||||||
(uint8_t)((context->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
|
(uint8_t)((context->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
|
||||||
@@ -252,9 +245,7 @@ void crypto_SHA1_Final(SHA1_CTX *context, uint8_t *digest)
|
|||||||
memset(context->count, 0, 8);
|
memset(context->count, 0, 8);
|
||||||
memset(finalcount, 0, 8); /* SWR */
|
memset(finalcount, 0, 8); /* SWR */
|
||||||
|
|
||||||
#ifdef SHA1HANDSOFF /* make SHA1Transform overwrite its own static vars */
|
|
||||||
SHA1_Transform(context->state, context->buffer);
|
SHA1_Transform(context->state, context->buffer);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void crypto_SHA1(const uint8_t *data, size_t len, uint8_t *digest)
|
void crypto_SHA1(const uint8_t *data, size_t len, uint8_t *digest)
|
||||||
|
|||||||
Reference in New Issue
Block a user