|
|
|
@ -30,6 +30,12 @@ void hasher_Init(Hasher *hasher, HasherType type) {
|
|
|
|
|
case HASHER_SHA2D:
|
|
|
|
|
sha256_Init(&hasher->ctx.sha2);
|
|
|
|
|
break;
|
|
|
|
|
case HASHER_SHA3:
|
|
|
|
|
#if USE_KECCAK
|
|
|
|
|
case HASHER_SHA3K:
|
|
|
|
|
#endif
|
|
|
|
|
sha3_256_Init(&hasher->ctx.sha3);
|
|
|
|
|
break;
|
|
|
|
|
case HASHER_BLAKE:
|
|
|
|
|
case HASHER_BLAKED:
|
|
|
|
|
blake256_Init(&hasher->ctx.blake);
|
|
|
|
@ -62,6 +68,12 @@ void hasher_Update(Hasher *hasher, const uint8_t *data, size_t length) {
|
|
|
|
|
case HASHER_SHA2D:
|
|
|
|
|
sha256_Update(&hasher->ctx.sha2, data, length);
|
|
|
|
|
break;
|
|
|
|
|
case HASHER_SHA3:
|
|
|
|
|
#if USE_KECCAK
|
|
|
|
|
case HASHER_SHA3K:
|
|
|
|
|
#endif
|
|
|
|
|
sha3_Update(&hasher->ctx.sha3, data, length);
|
|
|
|
|
break;
|
|
|
|
|
case HASHER_BLAKE:
|
|
|
|
|
case HASHER_BLAKED:
|
|
|
|
|
blake256_Update(&hasher->ctx.blake, data, length);
|
|
|
|
@ -87,6 +99,14 @@ void hasher_Final(Hasher *hasher, uint8_t hash[HASHER_DIGEST_LENGTH]) {
|
|
|
|
|
sha256_Final(&hasher->ctx.sha2, hash);
|
|
|
|
|
hasher_Raw(HASHER_SHA2, hash, HASHER_DIGEST_LENGTH, hash);
|
|
|
|
|
break;
|
|
|
|
|
case HASHER_SHA3:
|
|
|
|
|
sha3_Final(&hasher->ctx.sha3, hash);
|
|
|
|
|
break;
|
|
|
|
|
#if USE_KECCAK
|
|
|
|
|
case HASHER_SHA3K:
|
|
|
|
|
keccak_Final(&hasher->ctx.sha3, hash);
|
|
|
|
|
break;
|
|
|
|
|
#endif
|
|
|
|
|
case HASHER_BLAKE:
|
|
|
|
|
blake256_Final(&hasher->ctx.blake, hash);
|
|
|
|
|
break;
|
|
|
|
|