Latest update
This commit is contained in:
@@ -59,6 +59,11 @@ static int shake_init(EVP_MD_CTX *evp_ctx)
|
||||
return init(evp_ctx, '\x1f');
|
||||
}
|
||||
|
||||
static int kmac_init(EVP_MD_CTX *evp_ctx)
|
||||
{
|
||||
return init(evp_ctx, '\x04');
|
||||
}
|
||||
|
||||
static int sha3_update(EVP_MD_CTX *evp_ctx, const void *_inp, size_t len)
|
||||
{
|
||||
KECCAK1600_CTX *ctx = evp_ctx->md_data;
|
||||
@@ -395,6 +400,7 @@ const EVP_MD *EVP_shake##bitlen(void) \
|
||||
}; \
|
||||
return &shake##bitlen##_md; \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
EVP_MD_SHA3(224)
|
||||
@@ -404,3 +410,27 @@ EVP_MD_SHA3(512)
|
||||
|
||||
EVP_MD_SHAKE(128)
|
||||
EVP_MD_SHAKE(256)
|
||||
|
||||
|
||||
# define EVP_MD_KECCAK_KMAC(bitlen) \
|
||||
const EVP_MD *evp_keccak_kmac##bitlen(void) \
|
||||
{ \
|
||||
static const EVP_MD kmac_##bitlen##_md = { \
|
||||
-1, \
|
||||
0, \
|
||||
2 * bitlen / 8, \
|
||||
EVP_MD_FLAG_XOF, \
|
||||
kmac_init, \
|
||||
sha3_update, \
|
||||
sha3_final, \
|
||||
NULL, \
|
||||
NULL, \
|
||||
(KECCAK1600_WIDTH - bitlen * 2) / 8, \
|
||||
sizeof(KECCAK1600_CTX), \
|
||||
shake_ctrl \
|
||||
}; \
|
||||
return &kmac_##bitlen##_md; \
|
||||
}
|
||||
|
||||
EVP_MD_KECCAK_KMAC(128)
|
||||
EVP_MD_KECCAK_KMAC(256)
|
||||
Reference in New Issue
Block a user