Only one call to wc_falcon_init() and comment on 300.

This commit is contained in:
Anthony Hu
2021-12-10 16:40:41 -05:00
parent 1d8ff70900
commit 4c12f0be95
2 changed files with 24 additions and 26 deletions

View File

@ -8534,38 +8534,36 @@ static WOLFSSL_EVP_PKEY* d2iGenericKey(WOLFSSL_EVP_PKEY** out,
#else #else
falcon_key falcon[1]; falcon_key falcon[1];
#endif #endif
XMEMSET(falcon, 0, sizeof(falcon_key));
/* test if Falcon key */ if (wc_falcon_init(falcon) == 0) {
if (priv) { /* test if Falcon key */
/* Try level 1 */ if (priv) {
isFalcon = wc_falcon_init(falcon) == 0 && /* Try level 1 */
wc_falcon_set_level(falcon, 1) == 0 && isFalcon = wc_falcon_set_level(falcon, 1) == 0 &&
wc_falcon_import_private_only(mem, (word32)memSz,
falcon) == 0;
if (!isFalcon) {
/* Try level 5 */
isFalcon = wc_falcon_init(falcon) == 0 &&
wc_falcon_set_level(falcon, 5) == 0 &&
wc_falcon_import_private_only(mem, (word32)memSz, wc_falcon_import_private_only(mem, (word32)memSz,
falcon) == 0; falcon) == 0;
} if (!isFalcon) {
} else { /* Try level 5 */
/* Try level 1 */ isFalcon = wc_falcon_set_level(falcon, 5) == 0 &&
isFalcon = wc_falcon_init(falcon) == 0 && wc_falcon_import_private_only(mem, (word32)memSz,
wc_falcon_set_level(falcon, 1) == 0 && falcon) == 0;
wc_falcon_import_public(mem, (word32)memSz, falcon) == 0; }
} else {
/* Try level 1 */
isFalcon = wc_falcon_set_level(falcon, 1) == 0 &&
wc_falcon_import_public(mem, (word32)memSz, falcon)
== 0;
if (!isFalcon) { if (!isFalcon) {
/* Try level 5 */ /* Try level 5 */
isFalcon = wc_falcon_init(falcon) == 0 && isFalcon = wc_falcon_set_level(falcon, 5) == 0 &&
wc_falcon_set_level(falcon, 5) == 0 && wc_falcon_import_public(mem, (word32)memSz,
wc_falcon_import_public(mem, (word32)memSz, falcon) == 0;
falcon) == 0; }
} }
wc_falcon_free(falcon);
} }
wc_falcon_free(falcon);
#ifdef WOLFSSL_SMALL_STACK #ifdef WOLFSSL_SMALL_STACK
XFREE(falcon, NULL, DYNAMIC_TYPE_FALCON); XFREE(falcon, NULL, DYNAMIC_TYPE_FALCON);
#endif #endif

View File

@ -247,7 +247,7 @@ enum {
NID_rc4 = 5, NID_rc4 = 5,
EVP_PKEY_DH = NID_dhKeyAgreement, EVP_PKEY_DH = NID_dhKeyAgreement,
EVP_PKEY_HMAC = NID_hmac, EVP_PKEY_HMAC = NID_hmac,
EVP_PKEY_FALCON = 300, EVP_PKEY_FALCON = 300, /* Randomly picked value. */
AES_128_CFB1_TYPE = 24, AES_128_CFB1_TYPE = 24,
AES_192_CFB1_TYPE = 25, AES_192_CFB1_TYPE = 25,
AES_256_CFB1_TYPE = 26, AES_256_CFB1_TYPE = 26,