Skip to content

Commit 020bcd0

Browse files
committed
Advertise all supported sigalgs by default
1 parent 66f72a2 commit 020bcd0

3 files changed

Lines changed: 24 additions & 32 deletions

File tree

src/internal.c

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3209,22 +3209,6 @@ void InitSuites(Suites* suites, ProtocolVersion pv, int keySz, word16 haveRSA,
32093209
}
32103210
#endif
32113211

3212-
(void)tls; /* shut up compiler */
3213-
(void)tls1_2;
3214-
(void)dtls;
3215-
(void)haveDH;
3216-
(void)havePSK;
3217-
(void)haveStaticRSA;
3218-
(void)haveStaticECC;
3219-
(void)haveECC;
3220-
(void)side;
3221-
(void)haveRSA; /* some builds won't read */
3222-
(void)haveRSAsig; /* non ecc builds won't read */
3223-
(void)haveAnon; /* anon ciphers optional */
3224-
(void)haveNull;
3225-
(void)haveFalconSig;
3226-
(void)haveDilithiumSig;
3227-
32283212
if (suites == NULL) {
32293213
WOLFSSL_MSG("InitSuites pointer error");
32303214
return;
@@ -4241,18 +4225,27 @@ void InitSuites(Suites* suites, ProtocolVersion pv, int keySz, word16 haveRSA,
42414225
suites->suiteSz = idx;
42424226

42434227
if (suites->hashSigAlgoSz == 0) {
4244-
int haveSig = 0;
4245-
haveSig |= (haveRSAsig | haveRSA) ? SIG_RSA : 0;
4246-
haveSig |= (haveECDSAsig | haveECC) ? SIG_ECDSA : 0;
4247-
#if defined(WOLFSSL_SM2) && defined(WOLFSSL_SM3)
4248-
haveSig |= (haveECDSAsig | haveECC) ? SIG_SM2 : 0;
4249-
#endif
4250-
haveSig |= haveFalconSig ? SIG_FALCON : 0;
4251-
haveSig |= haveDilithiumSig ? SIG_DILITHIUM : 0;
4252-
haveSig &= ~SIG_ANON;
4253-
InitSuitesHashSigAlgo(suites->hashSigAlgo, haveSig, tls1_2, keySz,
4228+
InitSuitesHashSigAlgo(suites->hashSigAlgo, SIG_ALL, tls1_2, keySz,
42544229
&suites->hashSigAlgoSz);
42554230
}
4231+
4232+
/* Moved to the end as we set some of the vars but never use them */
4233+
(void)tls; /* shut up compiler */
4234+
(void)tls1_2;
4235+
(void)dtls;
4236+
(void)haveDH;
4237+
(void)havePSK;
4238+
(void)haveStaticRSA;
4239+
(void)haveStaticECC;
4240+
(void)haveECC;
4241+
(void)haveECDSAsig;
4242+
(void)side;
4243+
(void)haveRSA; /* some builds won't read */
4244+
(void)haveRSAsig; /* non ecc builds won't read */
4245+
(void)haveAnon; /* anon ciphers optional */
4246+
(void)haveNull;
4247+
(void)haveFalconSig;
4248+
(void)haveDilithiumSig;
42564249
}
42574250

42584251
#if !defined(NO_WOLFSSL_SERVER) || !defined(NO_CERTS) || \

src/tls13.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7633,10 +7633,6 @@ static int SendTls13CertificateRequest(WOLFSSL* ssl, byte* reqCtx,
76337633
word32 reqSz;
76347634
word16 hashSigAlgoSz = 0;
76357635
SignatureAlgorithms* sa;
7636-
int haveSig = SIG_RSA | SIG_ECDSA | SIG_FALCON | SIG_DILITHIUM;
7637-
#if defined(WOLFSSL_SM2) && defined(WOLFSSL_SM3)
7638-
haveSig |= SIG_SM2;
7639-
#endif
76407636

76417637
WOLFSSL_START(WC_FUNC_CERTIFICATE_REQUEST_SEND);
76427638
WOLFSSL_ENTER("SendTls13CertificateRequest");
@@ -7647,12 +7643,12 @@ static int SendTls13CertificateRequest(WOLFSSL* ssl, byte* reqCtx,
76477643
return SIDE_ERROR;
76487644

76497645
/* Get the length of the hashSigAlgo buffer */
7650-
InitSuitesHashSigAlgo(NULL, haveSig, 1, ssl->buffers.keySz,
7646+
InitSuitesHashSigAlgo(NULL, SIG_ALL, 1, ssl->buffers.keySz,
76517647
&hashSigAlgoSz);
76527648
sa = TLSX_SignatureAlgorithms_New(ssl, hashSigAlgoSz, ssl->heap);
76537649
if (sa == NULL)
76547650
return MEMORY_ERROR;
7655-
InitSuitesHashSigAlgo(sa->hashSigAlgo, haveSig, 1, ssl->buffers.keySz,
7651+
InitSuitesHashSigAlgo(sa->hashSigAlgo, SIG_ALL, 1, ssl->buffers.keySz,
76567652
&hashSigAlgoSz);
76577653
ret = TLSX_Push(&ssl->extensions, TLSX_SIGNATURE_ALGORITHMS, sa, ssl->heap);
76587654
if (ret != 0) {

wolfssl/internal.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4039,6 +4039,9 @@ enum KeyExchangeAlgorithm {
40394039
#define SIG_FALCON 0x08
40404040
#define SIG_DILITHIUM 0x10
40414041
#define SIG_ANON 0x20
4042+
/* SIG_ANON is omitted by default */
4043+
#define SIG_ALL (SIG_ECDSA | SIG_RSA | SIG_SM2 | SIG_FALCON | \
4044+
SIG_DILITHIUM)
40424045

40434046
/* Supported Authentication Schemes */
40444047
enum SignatureAlgorithm {

0 commit comments

Comments
 (0)