Null-check keyFormat

Zero all of WOLFSSL_DH struct
Fix macros for self-test
This commit is contained in:
Juliusz Sosinowicz
2020-01-22 11:23:40 -08:00
parent 97a4889bb3
commit eedbce7c0a
2 changed files with 27 additions and 22 deletions

View File

@@ -115,6 +115,9 @@
&& !defined(WC_NO_RNG) && !defined(WC_NO_RNG)
#include <wolfssl/wolfcrypt/srp.h> #include <wolfssl/wolfcrypt/srp.h>
#endif #endif
#if defined(HAVE_FIPS) || defined(HAVE_SELFTEST)
#include <wolfssl/wolfcrypt/pkcs7.h>
#endif
#if defined(OPENSSL_ALL) && defined(HAVE_PKCS7) #if defined(OPENSSL_ALL) && defined(HAVE_PKCS7)
#include <wolfssl/openssl/pkcs7.h> #include <wolfssl/openssl/pkcs7.h>
#endif /* OPENSSL_ALL && HAVE_PKCS7 */ #endif /* OPENSSL_ALL && HAVE_PKCS7 */
@@ -16469,15 +16472,6 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
return type; return type;
} }
static WC_INLINE void IncCtr(byte* ctr, word32 ctrSz)
{
int i;
for (i = ctrSz-1; i >= 0; i--) {
if (++ctr[i])
break;
}
}
int wolfSSL_EVP_MD_CTX_cleanup(WOLFSSL_EVP_MD_CTX* ctx) int wolfSSL_EVP_MD_CTX_cleanup(WOLFSSL_EVP_MD_CTX* ctx)
{ {
WOLFSSL_ENTER("EVP_MD_CTX_cleanup"); WOLFSSL_ENTER("EVP_MD_CTX_cleanup");
@@ -16543,13 +16537,25 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
ctx->enc = 1; /* start in encrypt mode */ ctx->enc = 1; /* start in encrypt mode */
} }
} }
#if defined(HAVE_AESGCM) && !defined(HAVE_SELFTEST)
static WC_INLINE void IncCtr(byte* ctr, word32 ctrSz)
{
int i;
for (i = ctrSz-1; i >= 0; i--) {
if (++ctr[i])
break;
}
}
#endif
/* This function allows cipher specific parameters to be /* This function allows cipher specific parameters to be
determined and set. */ determined and set. */
int wolfSSL_EVP_CIPHER_CTX_ctrl(WOLFSSL_EVP_CIPHER_CTX *ctx, int type, \ int wolfSSL_EVP_CIPHER_CTX_ctrl(WOLFSSL_EVP_CIPHER_CTX *ctx, int type, \
int arg, void *ptr) int arg, void *ptr)
{ {
int ret = WOLFSSL_FAILURE; int ret = WOLFSSL_FAILURE;
#ifdef HAVE_AESGCM #if defined(HAVE_AESGCM) && !defined(HAVE_SELFTEST)
WC_RNG rng; WC_RNG rng;
#endif #endif
if (ctx == NULL) if (ctx == NULL)
@@ -16569,7 +16575,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
case EVP_CTRL_SET_KEY_LENGTH: case EVP_CTRL_SET_KEY_LENGTH:
ret = wolfSSL_EVP_CIPHER_CTX_set_key_length(ctx, arg); ret = wolfSSL_EVP_CIPHER_CTX_set_key_length(ctx, arg);
break; break;
#ifdef HAVE_AESGCM #if defined(HAVE_AESGCM) && !defined(HAVE_SELFTEST)
case EVP_CTRL_GCM_SET_IVLEN: case EVP_CTRL_GCM_SET_IVLEN:
if(arg <= 0 || arg > 16) if(arg <= 0 || arg > 16)
return WOLFSSL_FAILURE; return WOLFSSL_FAILURE;
@@ -16643,7 +16649,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
XMEMCPY(ptr, ctx->authTag, arg); XMEMCPY(ptr, ctx->authTag, arg);
ret = WOLFSSL_SUCCESS; ret = WOLFSSL_SUCCESS;
break; break;
#endif /* HAVE_AESGCM */ #endif /* HAVE_AESGCM && !HAVE_SELFTEST */
default: default:
WOLFSSL_MSG("EVP_CIPHER_CTX_ctrl operation not yet handled"); WOLFSSL_MSG("EVP_CIPHER_CTX_ctrl operation not yet handled");
ret = WOLFSSL_FAILURE; ret = WOLFSSL_FAILURE;
@@ -29425,14 +29431,7 @@ WOLFSSL_ASN1_INTEGER* wolfSSL_BN_to_ASN1_INTEGER(const WOLFSSL_BIGNUM *bn, WOLFS
static void InitwolfSSL_DH(WOLFSSL_DH* dh) static void InitwolfSSL_DH(WOLFSSL_DH* dh)
{ {
if (dh) { if (dh) {
dh->p = NULL; XMEMSET(dh, 0, sizeof(WOLFSSL_DH));
dh->g = NULL;
dh->q = NULL;
dh->pub_key = NULL;
dh->priv_key = NULL;
dh->internal = NULL;
dh->inSet = 0;
dh->exSet = 0;
} }
} }
@@ -30813,6 +30812,7 @@ int wolfSSL_DSA_do_sign(const unsigned char* d, unsigned char* sigRet,
return ret; return ret;
} }
#if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
WOLFSSL_DSA_SIG* wolfSSL_DSA_do_sign_ex(const unsigned char* digest, WOLFSSL_DSA_SIG* wolfSSL_DSA_do_sign_ex(const unsigned char* digest,
int outLen, WOLFSSL_DSA* dsa) int outLen, WOLFSSL_DSA* dsa)
{ {
@@ -30849,7 +30849,7 @@ error:
} }
return NULL; return NULL;
} }
#endif /* !HAVE_SELFTEST && !HAVE_FIPS */
int wolfSSL_DSA_do_verify(const unsigned char* d, unsigned char* sig, int wolfSSL_DSA_do_verify(const unsigned char* d, unsigned char* sig,
WOLFSSL_DSA* dsa, int *dsacheck) WOLFSSL_DSA* dsa, int *dsacheck)
@@ -30881,6 +30881,7 @@ int wolfSSL_DSA_do_verify(const unsigned char* d, unsigned char* sig,
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
int wolfSSL_DSA_do_verify_ex(const unsigned char* digest, int digest_len, int wolfSSL_DSA_do_verify_ex(const unsigned char* digest, int digest_len,
WOLFSSL_DSA_SIG* sig, WOLFSSL_DSA* dsa) WOLFSSL_DSA_SIG* sig, WOLFSSL_DSA* dsa)
{ {
@@ -30934,6 +30935,7 @@ int wolfSSL_DSA_do_verify_ex(const unsigned char* digest, int digest_len,
return WOLFSSL_SUCCESS; return WOLFSSL_SUCCESS;
} }
#endif /* !HAVE_SELFTEST && !HAVE_FIPS */
#endif /* NO_DSA */ #endif /* NO_DSA */

View File

@@ -20136,6 +20136,7 @@ static void test_wolfSSL_PEM_PUBKEY(void)
static void test_DSA_do_sign_verify(void) static void test_DSA_do_sign_verify(void)
{ {
#if !defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
#if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \ #if defined(OPENSSL_EXTRA) && !defined(NO_FILESYSTEM) && \
!defined(NO_DSA) !defined(NO_DSA)
unsigned char digest[WC_SHA_DIGEST_SIZE]; unsigned char digest[WC_SHA_DIGEST_SIZE];
@@ -20181,6 +20182,7 @@ static void test_DSA_do_sign_verify(void)
DSA_SIG_free(sig); DSA_SIG_free(sig);
DSA_free(dsa); DSA_free(dsa);
#endif #endif
#endif /* !HAVE_SELFTEST && !HAVE_FIPS */
} }
static void test_wolfSSL_tmp_dh(void) static void test_wolfSSL_tmp_dh(void)
@@ -29252,7 +29254,8 @@ static void test_wolfSSL_PEM_read(void)
static void test_wolfssl_EVP_aes_gcm(void) static void test_wolfssl_EVP_aes_gcm(void)
{ {
#if defined(OPENSSL_EXTRA) && !defined(NO_AES) && defined(HAVE_AESGCM) #if defined(OPENSSL_EXTRA) && !defined(NO_AES) && defined(HAVE_AESGCM) && \
!defined(HAVE_SELFTEST) && !defined(HAVE_FIPS)
/* A 256 bit key, AES_128 will use the first 128 bit*/ /* A 256 bit key, AES_128 will use the first 128 bit*/
byte *key = (byte*)"01234567890123456789012345678901"; byte *key = (byte*)"01234567890123456789012345678901";