add sha512-224sum (SHA512/224) and sha512-256sum (SHA512/256)

Signed-off-by: Mattias Andrée <maandree@kth.se>
This commit is contained in:
Mattias Andrée
2016-02-24 11:36:59 +01:00
committed by sin
parent ae1da536bb
commit a392cd475e
10 changed files with 347 additions and 109 deletions

26
libutil/sha512-224.c Normal file
View File

@@ -0,0 +1,26 @@
/* public domain sha512/224 implementation based on fips180-3 */
#include <stdint.h>
#include "../sha512-224.h"
extern void sha512_sum_n(void *, uint8_t *, int n);
void
sha512_224_init(void *ctx)
{
struct sha512_224 *s = ctx;
s->len = 0;
s->h[0] = 0x8c3d37c819544da2ULL;
s->h[1] = 0x73e1996689dcd4d6ULL;
s->h[2] = 0x1dfab7ae32ff9c82ULL;
s->h[3] = 0x679dd514582f9fcfULL;
s->h[4] = 0x0f6d2b697bd44da8ULL;
s->h[5] = 0x77e36f7304c48942ULL;
s->h[6] = 0x3f9d85a86a1d36c8ULL;
s->h[7] = 0x1112e6ad91d692a1ULL;
}
void
sha512_224_sum(void *ctx, uint8_t md[SHA512_224_DIGEST_LENGTH])
{
sha512_sum_n(ctx, md, 4);
}

26
libutil/sha512-256.c Normal file
View File

@@ -0,0 +1,26 @@
/* public domain sha512/256 implementation based on fips180-3 */
#include <stdint.h>
#include "../sha512-256.h"
extern void sha512_sum_n(void *, uint8_t *, int n);
void
sha512_256_init(void *ctx)
{
struct sha512_256 *s = ctx;
s->len = 0;
s->h[0] = 0x22312194fc2bf72cULL;
s->h[1] = 0x9f555fa3c84c64c2ULL;
s->h[2] = 0x2393b86b6f53b151ULL;
s->h[3] = 0x963877195940eabdULL;
s->h[4] = 0x96283ee2a88effe3ULL;
s->h[5] = 0xbe5e1e2553863992ULL;
s->h[6] = 0x2b0199fc2c85b8aaULL;
s->h[7] = 0x0eb72ddc81c52ca2ULL;
}
void
sha512_256_sum(void *ctx, uint8_t md[SHA512_256_DIGEST_LENGTH])
{
sha512_sum_n(ctx, md, 4);
}