openssl: Add support for SHA-3
This commit is contained in:
@@ -93,14 +93,19 @@ METHOD(hasher_t, destroy, void,
|
|||||||
*/
|
*/
|
||||||
const EVP_MD *openssl_get_md(hash_algorithm_t hash)
|
const EVP_MD *openssl_get_md(hash_algorithm_t hash)
|
||||||
{
|
{
|
||||||
|
const EVP_MD *md;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
name = enum_to_name(hash_algorithm_short_names, hash);
|
name = strdupnull(enum_to_name(hash_algorithm_short_names, hash));
|
||||||
if (!name)
|
if (!name)
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return EVP_get_digestbyname(name);
|
/* for SHA3, we use underscores, while OpenSSL uses dashes */
|
||||||
|
translate(name, "_", "-");
|
||||||
|
md = EVP_get_digestbyname(name);
|
||||||
|
free(name);
|
||||||
|
return md;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -546,6 +546,14 @@ METHOD(plugin_t, get_features, int,
|
|||||||
PLUGIN_PROVIDE(HASHER, HASH_SHA384),
|
PLUGIN_PROVIDE(HASHER, HASH_SHA384),
|
||||||
PLUGIN_PROVIDE(HASHER, HASH_SHA512),
|
PLUGIN_PROVIDE(HASHER, HASH_SHA512),
|
||||||
#endif
|
#endif
|
||||||
|
/* SHA3 was added with OpenSSL 1.1.1, it doesn't seem to be possible to
|
||||||
|
* disable it, defining the checked var prevents registration, though */
|
||||||
|
#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_SHA3)
|
||||||
|
PLUGIN_PROVIDE(HASHER, HASH_SHA3_224),
|
||||||
|
PLUGIN_PROVIDE(HASHER, HASH_SHA3_256),
|
||||||
|
PLUGIN_PROVIDE(HASHER, HASH_SHA3_384),
|
||||||
|
PLUGIN_PROVIDE(HASHER, HASH_SHA3_512),
|
||||||
|
#endif
|
||||||
#ifndef OPENSSL_NO_SHA1
|
#ifndef OPENSSL_NO_SHA1
|
||||||
/* keyed sha1 hasher (aka prf) */
|
/* keyed sha1 hasher (aka prf) */
|
||||||
PLUGIN_REGISTER(PRF, openssl_sha1_prf_create),
|
PLUGIN_REGISTER(PRF, openssl_sha1_prf_create),
|
||||||
|
|||||||
Reference in New Issue
Block a user