Fixes to resolve openssl_pkey1_test with updated test buffer sizes.

This commit is contained in:
David Garske
2020-01-29 06:51:47 -08:00
parent 5aabebddd8
commit 5677a96c80

View File

@@ -15788,8 +15788,8 @@ int openssl_pkey1_test(void)
long cliKeySz; long cliKeySz;
unsigned char cipher[RSA_TEST_BYTES]; unsigned char cipher[RSA_TEST_BYTES];
unsigned char plain[RSA_TEST_BYTES]; unsigned char plain[RSA_TEST_BYTES];
size_t outlen = sizeof(cipher); size_t outlen;
int expKeyLen = 2048; int keyLenBits = 2048;
#if defined(USE_CERT_BUFFERS_1024) #if defined(USE_CERT_BUFFERS_1024)
XMEMCPY(tmp, client_key_der_1024, sizeof_client_key_der_1024); XMEMCPY(tmp, client_key_der_1024, sizeof_client_key_der_1024);
@@ -15797,7 +15797,7 @@ int openssl_pkey1_test(void)
x509 = wolfSSL_X509_load_certificate_buffer(client_cert_der_1024, x509 = wolfSSL_X509_load_certificate_buffer(client_cert_der_1024,
sizeof_client_cert_der_1024, SSL_FILETYPE_ASN1); sizeof_client_cert_der_1024, SSL_FILETYPE_ASN1);
expKeyLen = 1024; keyLenBits = 1024;
#elif defined(USE_CERT_BUFFERS_2048) #elif defined(USE_CERT_BUFFERS_2048)
XMEMCPY(tmp, client_key_der_2048, sizeof_client_key_der_2048); XMEMCPY(tmp, client_key_der_2048, sizeof_client_key_der_2048);
cliKeySz = (long)sizeof_client_key_der_2048; cliKeySz = (long)sizeof_client_key_der_2048;
@@ -15810,7 +15810,7 @@ int openssl_pkey1_test(void)
x509 = wolfSSL_X509_load_certificate_buffer(client_cert_der_3072, x509 = wolfSSL_X509_load_certificate_buffer(client_cert_der_3072,
sizeof_client_cert_der_3072, SSL_FILETYPE_ASN1); sizeof_client_cert_der_3072, SSL_FILETYPE_ASN1);
expKeyLen = 3072; keyLenBits = 3072;
#else #else
XFILE f; XFILE f;
@@ -15854,12 +15854,12 @@ int openssl_pkey1_test(void)
} }
/* phase 2 API to create EVP_PKEY_CTX and encrypt/decrypt */ /* phase 2 API to create EVP_PKEY_CTX and encrypt/decrypt */
if (EVP_PKEY_bits(prvKey) != expKeyLen) { if (EVP_PKEY_bits(prvKey) != keyLenBits) {
ret = -7705; ret = -7705;
goto openssl_pkey1_test_done; goto openssl_pkey1_test_done;
} }
if (EVP_PKEY_size(prvKey) != expKeyLen/8) { if (EVP_PKEY_size(prvKey) != keyLenBits/8) {
ret = -7706; ret = -7706;
goto openssl_pkey1_test_done; goto openssl_pkey1_test_done;
} }
@@ -15899,13 +15899,14 @@ int openssl_pkey1_test(void)
#endif #endif
XMEMSET(cipher, 0, sizeof(cipher)); XMEMSET(cipher, 0, sizeof(cipher));
outlen = keyLenBits/8;
if (EVP_PKEY_encrypt(enc, cipher, &outlen, msg, sizeof(msg)) < 0) { if (EVP_PKEY_encrypt(enc, cipher, &outlen, msg, sizeof(msg)) < 0) {
ret = -7713; ret = -7713;
goto openssl_pkey1_test_done; goto openssl_pkey1_test_done;
} }
XMEMSET(plain, 0, sizeof(plain)); XMEMSET(plain, 0, sizeof(plain));
if (EVP_PKEY_decrypt(dec, plain, &outlen, cipher, sizeof(cipher)) != 1) { if (EVP_PKEY_decrypt(dec, plain, &outlen, cipher, outlen) != 1) {
ret = -7714; ret = -7714;
goto openssl_pkey1_test_done; goto openssl_pkey1_test_done;
} }