hashes/sha1: changed data-parameter types to void*
This commit is contained in:
parent
8518843a40
commit
68d9f07eee
@ -114,10 +114,11 @@ static void sha1_update_byte(sha1_context *ctx, uint8_t data)
|
|||||||
sha1_add_uncounted(ctx, data);
|
sha1_add_uncounted(ctx, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sha1_update(sha1_context *ctx, const uint8_t *data, size_t len)
|
void sha1_update(sha1_context *ctx, const void *data, size_t len)
|
||||||
{
|
{
|
||||||
|
const uint8_t *d = data;
|
||||||
while (len--) {
|
while (len--) {
|
||||||
sha1_update_byte(ctx, *(data++));
|
sha1_update_byte(ctx, *(d++));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +143,7 @@ static void sha1_pad(sha1_context *s)
|
|||||||
sha1_add_uncounted(s, s->byte_count << 3);
|
sha1_add_uncounted(s, s->byte_count << 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sha1_final(sha1_context *ctx, uint8_t *dst)
|
void sha1_final(sha1_context *ctx, void *digest)
|
||||||
{
|
{
|
||||||
/* Pad to complete the last block */
|
/* Pad to complete the last block */
|
||||||
sha1_pad(ctx);
|
sha1_pad(ctx);
|
||||||
@ -157,31 +158,32 @@ void sha1_final(sha1_context *ctx, uint8_t *dst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Copy the content of the hash (20 characters) */
|
/* Copy the content of the hash (20 characters) */
|
||||||
memcpy(dst, ctx->state, 20);
|
memcpy(digest, ctx->state, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
void sha1(uint8_t *dst, const uint8_t *src, size_t len)
|
void sha1(void *digest, const void *data, size_t len)
|
||||||
{
|
{
|
||||||
sha1_context ctx;
|
sha1_context ctx;
|
||||||
|
|
||||||
sha1_init(&ctx);
|
sha1_init(&ctx);
|
||||||
sha1_update(&ctx, (unsigned char *) src, len);
|
sha1_update(&ctx, (unsigned char *) data, len);
|
||||||
sha1_final(&ctx, dst);
|
sha1_final(&ctx, digest);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define HMAC_IPAD 0x36
|
#define HMAC_IPAD 0x36
|
||||||
#define HMAC_OPAD 0x5c
|
#define HMAC_OPAD 0x5c
|
||||||
|
|
||||||
void sha1_init_hmac(sha1_context *ctx, const uint8_t *key, size_t key_length)
|
void sha1_init_hmac(sha1_context *ctx, const void *key, size_t key_length)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
|
const uint8_t *k = key;
|
||||||
|
|
||||||
memset(ctx->key_buffer, 0, SHA1_BLOCK_LENGTH);
|
memset(ctx->key_buffer, 0, SHA1_BLOCK_LENGTH);
|
||||||
if (key_length > SHA1_BLOCK_LENGTH) {
|
if (key_length > SHA1_BLOCK_LENGTH) {
|
||||||
/* Hash long keys */
|
/* Hash long keys */
|
||||||
sha1_init(ctx);
|
sha1_init(ctx);
|
||||||
while (key_length--) {
|
while (key_length--) {
|
||||||
sha1_update_byte(ctx, *key++);
|
sha1_update_byte(ctx, *k++);
|
||||||
}
|
}
|
||||||
sha1_final(ctx, ctx->key_buffer);
|
sha1_final(ctx, ctx->key_buffer);
|
||||||
}
|
}
|
||||||
@ -196,7 +198,7 @@ void sha1_init_hmac(sha1_context *ctx, const uint8_t *key, size_t key_length)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void sha1_final_hmac(sha1_context *ctx, uint8_t *dst)
|
void sha1_final_hmac(sha1_context *ctx, void *digest)
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
|
|
||||||
@ -211,5 +213,5 @@ void sha1_final_hmac(sha1_context *ctx, uint8_t *dst)
|
|||||||
sha1_update_byte(ctx, ctx->inner_hash[i]);
|
sha1_update_byte(ctx, ctx->inner_hash[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
sha1_final(ctx, dst);
|
sha1_final(ctx, digest);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,25 +77,25 @@ void sha1_init(sha1_context *ctx);
|
|||||||
* @param[in] data Input data
|
* @param[in] data Input data
|
||||||
* @param[in] len Length of @p data
|
* @param[in] len Length of @p data
|
||||||
*/
|
*/
|
||||||
void sha1_update(sha1_context *ctx, const uint8_t *data, size_t len);
|
void sha1_update(sha1_context *ctx, const void *data, size_t len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Finalizes the SHA-1 message digest
|
* @brief Finalizes the SHA-1 message digest
|
||||||
*
|
*
|
||||||
* @param[in] ctx Pointer to the SHA-1 context
|
* @param[in] ctx Pointer to the SHA-1 context
|
||||||
* @param[out] dst Result location, must be 20 byte
|
* @param[out] digest Result location, must be 20 byte
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void sha1_final(sha1_context *ctx, uint8_t *dst);
|
void sha1_final(sha1_context *ctx, void *digest);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Calculate a SHA1 hash from the given data
|
* @brief Calculate a SHA1 hash from the given data
|
||||||
*
|
*
|
||||||
* @param[out] dst Result location, must be 20 byte
|
* @param[out] digest Result location, must be 20 byte
|
||||||
* @param[in] src Input data
|
* @param[in] data Input data
|
||||||
* @param[in] len Length of @p buf
|
* @param[in] len Length of @p buf
|
||||||
*/
|
*/
|
||||||
void sha1(uint8_t *dst, const uint8_t *src, size_t len);
|
void sha1(void *digest, const void *data, size_t len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Initialize SHA-1 message digest context with MAC
|
* @brief Initialize SHA-1 message digest context with MAC
|
||||||
@ -104,16 +104,15 @@ void sha1(uint8_t *dst, const uint8_t *src, size_t len);
|
|||||||
* @param[in] key Key used in the HMAC-SHA1 computation
|
* @param[in] key Key used in the HMAC-SHA1 computation
|
||||||
* @param[in] key_length The size in bytes of @p key
|
* @param[in] key_length The size in bytes of @p key
|
||||||
*/
|
*/
|
||||||
void sha1_init_hmac(sha1_context *ctx, const uint8_t *key, size_t key_length);
|
void sha1_init_hmac(sha1_context *ctx, const void *key, size_t key_length);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Finalizes the SHA-1 message digest with MAC
|
* @brief Finalizes the SHA-1 message digest with MAC
|
||||||
*
|
*
|
||||||
* @param[in] s Pointer to the SHA-1 context
|
* @param[in] ctx Pointer to the SHA-1 context
|
||||||
* @param[out] dst Result location, must be 20 byte
|
* @param[out] digest Result location, must be 20 byte
|
||||||
* @return Calculated digest
|
|
||||||
*/
|
*/
|
||||||
void sha1_final_hmac(sha1_context *ctx, uint8_t *dst);
|
void sha1_final_hmac(sha1_context *ctx, void *digest);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user