Skip to content

Commit cd88ec5

Browse files
authored
Merge pull request #9685 from kareem-wolfssl/gh7735
Always reinitialize the SSL cipher suites in InitSSL_Side as the side and enabled algos have likely changed.
2 parents 2f388dd + 4c0c51f commit cd88ec5

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/internal.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2253,6 +2253,16 @@ int InitSSL_Side(WOLFSSL* ssl, word16 side)
22532253
}
22542254
#endif /* WOLFSSL_DTLS && !NO_WOLFSSL_SERVER */
22552255

2256+
/* Forcefully reinitialize suites here as the side may have changed,
2257+
* unless the user has explicitly set cipher suites.
2258+
* Two separate checks to ensure suites are always allocated, to avoid
2259+
* failing suites == NULL check in InitSSL_Suites. */
2260+
if (ssl->suites && !ssl->suites->setSuites) {
2261+
FreeSuites(ssl);
2262+
}
2263+
if (!ssl->suites) {
2264+
AllocateSuites(ssl);
2265+
}
22562266
return InitSSL_Suites(ssl);
22572267
}
22582268
#endif /* OPENSSL_EXTRA || WOLFSSL_EITHER_SIDE ||

src/ssl.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17162,7 +17162,15 @@ long wolfSSL_set_options(WOLFSSL* ssl, long op)
1716217162
if (AllocateSuites(ssl) != 0)
1716317163
return 0;
1716417164
if (!ssl->suites->setSuites) {
17165-
InitSuites(ssl->suites, ssl->version, keySz, haveRSA,
17165+
/* Client side won't set DH params, so it needs haveDH set to TRUE. */
17166+
if (ssl->options.side == WOLFSSL_CLIENT_END)
17167+
InitSuites(ssl->suites, ssl->version, keySz, haveRSA,
17168+
havePSK, TRUE, ssl->options.haveECDSAsig,
17169+
ssl->options.haveECC, TRUE, ssl->options.haveStaticECC,
17170+
ssl->options.useAnon,
17171+
TRUE, TRUE, TRUE, TRUE, ssl->options.side);
17172+
else
17173+
InitSuites(ssl->suites, ssl->version, keySz, haveRSA,
1716617174
havePSK, ssl->options.haveDH, ssl->options.haveECDSAsig,
1716717175
ssl->options.haveECC, TRUE, ssl->options.haveStaticECC,
1716817176
ssl->options.useAnon,

0 commit comments

Comments
 (0)