From eb08c6f6fc89304520c92e22a007d7ce80b7def3 Mon Sep 17 00:00:00 2001 From: Aaron Jense Date: Thu, 16 Aug 2018 15:29:46 -0600 Subject: [PATCH 1/3] Fix error with wolfCrypt-JNI having ECC_PRIVATEKEY_ONLY and d != NULL --- wolfcrypt/src/ecc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index 5099a2c21..246efd1c2 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -6428,7 +6428,10 @@ int wc_ecc_export_ex(ecc_key* key, byte* qx, word32* qxLen, /* private key, d */ if (d != NULL) { - if (dLen == NULL || key->type != ECC_PRIVATEKEY) + if (dLen == NULL) + return BAD_FUNC_ARG; + + if (!(key->type == ECC_PRIVATEKEY || key->type == ECC_PRIVATEKEY_ONLY)) return BAD_FUNC_ARG; #ifdef WOLFSSL_ATECC508A From aeb9ab8aea94828a60a15d7bcb3b95058561207c Mon Sep 17 00:00:00 2001 From: Aaron Jense Date: Thu, 16 Aug 2018 16:25:53 -0600 Subject: [PATCH 2/3] Combine if statements --- wolfcrypt/src/ecc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index 246efd1c2..5501f2b2b 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -6428,10 +6428,8 @@ int wc_ecc_export_ex(ecc_key* key, byte* qx, word32* qxLen, /* private key, d */ if (d != NULL) { - if (dLen == NULL) - return BAD_FUNC_ARG; - - if (!(key->type == ECC_PRIVATEKEY || key->type == ECC_PRIVATEKEY_ONLY)) + if (dLen == NULL || (!(key->type == ECC_PRIVATEKEY + || key->type == ECC_PRIVATEKEY_ONLY))) return BAD_FUNC_ARG; #ifdef WOLFSSL_ATECC508A From 93546694ca32c3ad051dd0a4af4cc9698f2ea691 Mon Sep 17 00:00:00 2001 From: Aaron Jense Date: Thu, 16 Aug 2018 17:04:32 -0600 Subject: [PATCH 3/3] modify for readability --- wolfcrypt/src/ecc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wolfcrypt/src/ecc.c b/wolfcrypt/src/ecc.c index 5501f2b2b..c2bf22aa4 100644 --- a/wolfcrypt/src/ecc.c +++ b/wolfcrypt/src/ecc.c @@ -6428,8 +6428,8 @@ int wc_ecc_export_ex(ecc_key* key, byte* qx, word32* qxLen, /* private key, d */ if (d != NULL) { - if (dLen == NULL || (!(key->type == ECC_PRIVATEKEY - || key->type == ECC_PRIVATEKEY_ONLY))) + if (dLen == NULL || + (key->type != ECC_PRIVATEKEY && key->type != ECC_PRIVATEKEY_ONLY)) return BAD_FUNC_ARG; #ifdef WOLFSSL_ATECC508A