@@ -13315,35 +13315,35 @@ static int test_wolfSSL_tmp_dh_regression(void)
1331513315 !defined(NO_FILESYSTEM) && !defined(NO_RSA) && !defined(NO_TLS) && \
1331613316 !defined(NO_WOLFSSL_SERVER)
1331713317 SSL_CTX* ctx = NULL;
13318- DH* dh = NULL;
13319- WOLFSSL_BIGNUM* p_bn = NULL;
1332013318
1332113319 ExpectNotNull(ctx = SSL_CTX_new(wolfSSLv23_server_method()));
1332213320 ExpectTrue(SSL_CTX_use_certificate_file(ctx, svrCertFile,
1332313321 WOLFSSL_FILETYPE_PEM));
1332413322 ExpectTrue(SSL_CTX_use_PrivateKey_file(ctx, svrKeyFile,
1332513323 WOLFSSL_FILETYPE_PEM));
1332613324
13327- /* Test single-operand failure: DH with p but no g.
13328- * Old (pSz < 0) && (gSz < 0) would have missed this since only g fails.
13329- * Fixed (pSz <= 0) || (gSz <= 0) catches it. */
13330- ExpectNotNull(dh = wolfSSL_DH_new());
13331- ExpectNotNull(p_bn = wolfSSL_BN_new());
13332- ExpectIntEQ(wolfSSL_BN_set_word(p_bn, 0xFFFF), 1);
13333- if (dh != NULL && p_bn != NULL) {
13334- /* g is NULL on a new DH so set0_pqg fails, p_bn not transferred */
13335- if (wolfSSL_DH_set0_pqg(dh, p_bn, NULL, NULL) == 1) {
13336- p_bn = NULL; /* ownership transferred only on success */
13325+ #if defined(OPENSSL_ALL) || \
13326+ (defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L)
13327+ {
13328+ /* Test single-operand failure: DH with p but no g. */
13329+ DH* dh = NULL;
13330+ WOLFSSL_BIGNUM* p_bn = NULL;
13331+
13332+ ExpectNotNull(dh = wolfSSL_DH_new());
13333+ ExpectNotNull(p_bn = wolfSSL_BN_new());
13334+ ExpectIntEQ(wolfSSL_BN_set_word(p_bn, 0xFFFF), 1);
13335+ if (dh != NULL && p_bn != NULL) {
13336+ if (wolfSSL_DH_set0_pqg(dh, p_bn, NULL, NULL) == 1) {
13337+ p_bn = NULL; /* ownership transferred on success */
13338+ }
1333713339 }
13340+ ExpectIntEQ((int)SSL_CTX_set_tmp_dh(ctx, dh), WOLFSSL_FATAL_ERROR);
13341+ DH_free(dh);
13342+ wolfSSL_BN_free(p_bn);
1333813343 }
13339- ExpectIntEQ((int)SSL_CTX_set_tmp_dh(ctx, dh), WOLFSSL_FATAL_ERROR);
13340- DH_free(dh);
13341- dh = NULL;
13342- wolfSSL_BN_free(p_bn);
13343- p_bn = NULL;
13344+ #endif
1334413345
13345- /* Test ASN1/DER path through wolfSSL_CTX_SetTmpDH_buffer.
13346- * Old code had cast-away-const + zero-size AllocDer bug. */
13346+ /* Test ASN1/DER path through wolfSSL_CTX_SetTmpDH_buffer. */
1334713347 {
1334813348 byte derBuf[4096];
1334913349 XFILE f = XBADFILE;
0 commit comments