diff --git a/wolfcrypt/src/ed25519.c b/wolfcrypt/src/ed25519.c index ff5bd7ebd..2e6020e62 100644 --- a/wolfcrypt/src/ed25519.c +++ b/wolfcrypt/src/ed25519.c @@ -1054,6 +1054,11 @@ int wc_ed25519_import_private_only(const byte* priv, word32 privSz, XMEMCPY(key->k, priv, ED25519_KEY_SIZE); key->privKeySet = 1; + if (key->pubKeySet) { + /* Validate loaded public key */ + return wc_ed25519_check_key(key); + } + return 0; } diff --git a/wolfcrypt/src/ed448.c b/wolfcrypt/src/ed448.c index 0225c2f04..ffef6b050 100644 --- a/wolfcrypt/src/ed448.c +++ b/wolfcrypt/src/ed448.c @@ -997,6 +997,11 @@ int wc_ed448_import_private_only(const byte* priv, word32 privSz, key->privKeySet = 1; } + if ((ret == 0) && key->pubKeySet) { + /* Validate loaded public key */ + ret = wc_ed448_check_key(key); + } + return ret; } diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 73ce7a9ae..6fc577087 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -44,8 +44,8 @@ decouple library dependencies with standard string, memory and so on. /* * This struct is used multiple time by other structs and - * needs to be defined somwhere that all structs can import - * (with minimal depencencies). + * needs to be defined somewhere that all structs can import + * (with minimal dependencies). */ #ifdef HAVE_EX_DATA #ifdef HAVE_EX_DATA_CLEANUP_HOOKS @@ -208,14 +208,14 @@ decouple library dependencies with standard string, memory and so on. #elif defined(WC_16BIT_CPU) #undef WORD64_AVAILABLE typedef word16 wolfssl_word; - #define MP_16BIT /* for mp_int, mp_word needs to be twice as big as - mp_digit, no 64 bit type so make mp_digit 16 bit */ + #define MP_16BIT /* for mp_int, mp_word needs to be twice as big as \ + * mp_digit, no 64 bit type so make mp_digit 16 bit */ #else #undef WORD64_AVAILABLE typedef word32 wolfssl_word; - #define MP_16BIT /* for mp_int, mp_word needs to be twice as big as - mp_digit, no 64 bit type so make mp_digit 16 bit */ + #define MP_16BIT /* for mp_int, mp_word needs to be twice as big as \ + * mp_digit, no 64 bit type so make mp_digit 16 bit */ #endif typedef struct w64wrapper {