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));
if (wc_falcon_init(falcon) == 0) {
/* test if Falcon key */ /* test if Falcon key */
if (priv) { if (priv) {
/* Try level 1 */ /* Try level 1 */
isFalcon = wc_falcon_init(falcon) == 0 && isFalcon = wc_falcon_set_level(falcon, 1) == 0 &&
wc_falcon_set_level(falcon, 1) == 0 &&
wc_falcon_import_private_only(mem, (word32)memSz, wc_falcon_import_private_only(mem, (word32)memSz,
falcon) == 0; 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_private_only(mem, (word32)memSz, wc_falcon_import_private_only(mem, (word32)memSz,
falcon) == 0; falcon) == 0;
} }
} else { } else {
/* Try level 1 */ /* Try level 1 */
isFalcon = wc_falcon_init(falcon) == 0 && isFalcon = wc_falcon_set_level(falcon, 1) == 0 &&
wc_falcon_set_level(falcon, 1) == 0 && wc_falcon_import_public(mem, (word32)memSz, falcon)
wc_falcon_import_public(mem, (word32)memSz, falcon) == 0; == 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,