Merge pull request #2997 from kaleb-himes/ZD10356

Fix a seg fault when cert not loaded prior to key check
This commit is contained in:
toddouska
2020-05-26 16:19:43 -07:00
committed by GitHub
2 changed files with 6 additions and 2 deletions

View File

@ -6798,7 +6798,7 @@ int wolfSSL_CTX_check_private_key(const WOLFSSL_CTX* ctx)
WOLFSSL_ENTER("wolfSSL_CTX_check_private_key");
if (ctx == NULL) {
if (ctx == NULL || ctx->certificate == NULL) {
return WOLFSSL_FAILURE;
}

View File

@ -20637,8 +20637,12 @@ static void test_wolfSSL_private_keys(void)
#else
AssertNotNull(ctx = SSL_CTX_new(wolfSSLv23_client_method()));
#endif
AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
AssertTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile, WOLFSSL_FILETYPE_PEM));
/* Have to load a cert before you can check the private key against that
* certificates public key! */
AssertIntEQ(wolfSSL_CTX_check_private_key(ctx), WOLFSSL_FAILURE);
AssertTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile, WOLFSSL_FILETYPE_PEM));
AssertIntEQ(wolfSSL_CTX_check_private_key(ctx), WOLFSSL_SUCCESS);
AssertNotNull(ssl = SSL_new(ctx));
AssertIntEQ(wolfSSL_check_private_key(ssl), WOLFSSL_SUCCESS);