From: Andreas Steffen Date: Thu, 18 Mar 2021 06:58:21 +0000 (+0100) Subject: wolfssl: Support SHA3 X-Git-Tag: 5.9.3dr1~9 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a91eb3eb960ab75be48d4134f6e8116fa5764584;p=thirdparty%2Fstrongswan.git wolfssl: Support SHA3 --- diff --git a/src/libstrongswan/plugins/wolfssl/wolfssl_plugin.c b/src/libstrongswan/plugins/wolfssl/wolfssl_plugin.c index d64be69de5..64fb71c2a9 100644 --- a/src/libstrongswan/plugins/wolfssl/wolfssl_plugin.c +++ b/src/libstrongswan/plugins/wolfssl/wolfssl_plugin.c @@ -1,5 +1,6 @@ /* * Copyright (C) 2019 Sean Parkinson, wolfSSL Inc. + * Copyright (C) 2021 Andreas Steffen, strongSec GmbH * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -118,6 +119,18 @@ METHOD(plugin_t, get_features, int, #ifdef WOLFSSL_SHA512 PLUGIN_PROVIDE(HASHER, HASH_SHA512), #endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_224) + PLUGIN_PROVIDE(HASHER, HASH_SHA3_224), +#endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_256) + PLUGIN_PROVIDE(HASHER, HASH_SHA3_256), +#endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_384) + PLUGIN_PROVIDE(HASHER, HASH_SHA3_384), +#endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_512) + PLUGIN_PROVIDE(HASHER, HASH_SHA3_512), +#endif #ifndef NO_SHA /* keyed sha1 hasher (aka prf) */ PLUGIN_REGISTER(PRF, wolfssl_sha1_prf_create), diff --git a/src/libstrongswan/plugins/wolfssl/wolfssl_util.c b/src/libstrongswan/plugins/wolfssl/wolfssl_util.c index c83c2982bd..4d3b33b3b7 100644 --- a/src/libstrongswan/plugins/wolfssl/wolfssl_util.c +++ b/src/libstrongswan/plugins/wolfssl/wolfssl_util.c @@ -1,5 +1,6 @@ /* * Copyright (C) 2019 Sean Parkinson, wolfSSL Inc. + * Copyright (C) 2021 Andreas Steffen, strongSec GmbH * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -147,6 +148,26 @@ bool wolfssl_hash2type(hash_algorithm_t hash, enum wc_HashType *type) case HASH_SHA512: *type = WC_HASH_TYPE_SHA512; break; +#endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_224) + case HASH_SHA3_224: + *type = WC_HASH_TYPE_SHA3_224; + break; +#endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_256) + case HASH_SHA3_256: + *type = WC_HASH_TYPE_SHA3_256; + break; +#endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_384) + case HASH_SHA3_384: + *type = WC_HASH_TYPE_SHA3_384; + break; +#endif +#if defined(WOLFSSL_SHA3) && !defined(WOLFSSL_NOSHA3_512) + case HASH_SHA3_512: + *type = WC_HASH_TYPE_SHA3_512; + break; #endif default: return FALSE;