Skip to content

Commit 1857648

Browse files
Merge pull request #6976 from embhorn/gh6974
Fix build errors with dtls1.3 and no tls1.2
2 parents 195c14c + 7bbeadc commit 1857648

6 files changed

Lines changed: 106 additions & 72 deletions

File tree

examples/sctp/sctp-client-dtls.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include <wolfssl/wolfcrypt/settings.h>
2828
#include <wolfssl/ssl.h>
2929

30-
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
30+
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
3131
/* sctp */
3232
#include <sys/socket.h>
3333
#include <sys/types.h>
@@ -47,13 +47,13 @@ static int err_sys(const char* msg)
4747
perror(msg);
4848
exit(EXIT_FAILURE);
4949
}
50-
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
50+
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS && !WOLFSSL_NO_TLS12 */
5151

5252
int main(int argc, char **argv)
5353
{
5454
(void)argc;
5555
(void)argv;
56-
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
56+
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
5757
int sd = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP);
5858

5959
if (sd < 0)
@@ -126,7 +126,7 @@ int main(int argc, char **argv)
126126
wolfSSL_CTX_free(ctx);
127127

128128
close(sd);
129-
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
129+
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS && !WOLFSSL_NO_TLS12 */
130130

131131
return 0;
132132
}

examples/sctp/sctp-server-dtls.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#include <wolfssl/wolfcrypt/settings.h>
2727
#include <wolfssl/ssl.h>
2828

29-
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
29+
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
3030
/* sctp */
3131
#include <sys/socket.h>
3232
#include <sys/types.h>
@@ -47,13 +47,13 @@ static int err_sys(const char* msg)
4747
perror(msg);
4848
exit(EXIT_FAILURE);
4949
}
50-
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
50+
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS && !WOLFSSL_NO_TLS12 */
5151

5252
int main(int argc, char **argv)
5353
{
5454
(void)argc;
5555
(void)argv;
56-
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS)
56+
#if defined(WOLFSSL_SCTP) && defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
5757
int sd = socket(PF_INET, SOCK_STREAM, IPPROTO_SCTP);
5858

5959
if (sd < 0)
@@ -125,6 +125,6 @@ int main(int argc, char **argv)
125125
wolfSSL_CTX_free(ctx);
126126

127127
close(sd);
128-
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS */
128+
#endif /* WOLFSSL_SCTP && WOLFSSL_DTLS && !WOLFSSL_NO_TLS12 */
129129
return 0;
130130
}

src/dtls.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,7 @@ static int SendStatelessReply(const WOLFSSL* ssl, WolfSSL_CH* ch, byte isTls13)
868868
else
869869
#endif
870870
{
871+
#if !defined(WOLFSSL_NO_TLS12)
871872
if (!ch->dtls12cookieSet) {
872873
ret = CreateDtls12Cookie(ssl, ch, ch->dtls12cookie);
873874
if (ret != 0)
@@ -876,6 +877,11 @@ static int SendStatelessReply(const WOLFSSL* ssl, WolfSSL_CH* ch, byte isTls13)
876877
}
877878
ret = SendHelloVerifyRequest((WOLFSSL*)ssl, ch->dtls12cookie,
878879
DTLS_COOKIE_SZ);
880+
#else
881+
WOLFSSL_MSG("DTLS1.2 disabled with WOLFSSL_NO_TLS12");
882+
WOLFSSL_ERROR_VERBOSE(NOT_COMPILED_IN);
883+
ret = NOT_COMPILED_IN;
884+
#endif
879885
}
880886
return ret;
881887
}

src/dtls13.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,8 +372,14 @@ int Dtls13ProcessBufferedMessages(WOLFSSL* ssl)
372372
downgraded = 1;
373373
}
374374
else {
375+
#if !defined(WOLFSSL_NO_TLS12)
375376
ret = DoHandShakeMsgType(ssl, msg->fullMsg, &idx, msg->type,
376377
msg->sz, msg->sz);
378+
#else
379+
WOLFSSL_MSG("DTLS1.2 disabled with WOLFSSL_NO_TLS12");
380+
WOLFSSL_ERROR_VERBOSE(NOT_COMPILED_IN);
381+
ret = NOT_COMPILED_IN;
382+
#endif
377383
}
378384

379385
/* processing certificate_request triggers a connect. The error came

src/tls.c

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -678,55 +678,6 @@ int wolfSSL_make_eap_keys(WOLFSSL* ssl, void* msk, unsigned int len,
678678
return ret;
679679
}
680680

681-
int wolfSSL_GetHmacType_ex(CipherSpecs* specs)
682-
{
683-
if (specs == NULL)
684-
return BAD_FUNC_ARG;
685-
686-
switch (specs->mac_algorithm) {
687-
#ifndef NO_MD5
688-
case md5_mac:
689-
{
690-
return WC_MD5;
691-
}
692-
#endif
693-
#ifndef NO_SHA256
694-
case sha256_mac:
695-
{
696-
return WC_SHA256;
697-
}
698-
#endif
699-
#ifdef WOLFSSL_SHA384
700-
case sha384_mac:
701-
{
702-
return WC_SHA384;
703-
}
704-
#endif
705-
#ifdef WOLFSSL_SM3
706-
case sm3_mac:
707-
{
708-
return WC_SM3;
709-
}
710-
#endif
711-
#ifndef NO_SHA
712-
case sha_mac:
713-
{
714-
return WC_SHA;
715-
}
716-
#endif
717-
#ifdef HAVE_BLAKE2
718-
case blake2b_mac:
719-
{
720-
return BLAKE2B_ID;
721-
}
722-
#endif
723-
default:
724-
{
725-
return WOLFSSL_FATAL_ERROR;
726-
}
727-
}
728-
}
729-
730681
/* return HMAC digest type in wolfSSL format */
731682
int wolfSSL_GetHmacType(WOLFSSL* ssl)
732683
{
@@ -1279,6 +1230,55 @@ int TLS_hmac(WOLFSSL* ssl, byte* digest, const byte* in, word32 sz, int padSz,
12791230

12801231
#endif /* !WOLFSSL_NO_TLS12 */
12811232

1233+
int wolfSSL_GetHmacType_ex(CipherSpecs* specs)
1234+
{
1235+
if (specs == NULL)
1236+
return BAD_FUNC_ARG;
1237+
1238+
switch (specs->mac_algorithm) {
1239+
#ifndef NO_MD5
1240+
case md5_mac:
1241+
{
1242+
return WC_MD5;
1243+
}
1244+
#endif
1245+
#ifndef NO_SHA256
1246+
case sha256_mac:
1247+
{
1248+
return WC_SHA256;
1249+
}
1250+
#endif
1251+
#ifdef WOLFSSL_SHA384
1252+
case sha384_mac:
1253+
{
1254+
return WC_SHA384;
1255+
}
1256+
#endif
1257+
#ifdef WOLFSSL_SM3
1258+
case sm3_mac:
1259+
{
1260+
return WC_SM3;
1261+
}
1262+
#endif
1263+
#ifndef NO_SHA
1264+
case sha_mac:
1265+
{
1266+
return WC_SHA;
1267+
}
1268+
#endif
1269+
#ifdef HAVE_BLAKE2
1270+
case blake2b_mac:
1271+
{
1272+
return BLAKE2B_ID;
1273+
}
1274+
#endif
1275+
default:
1276+
{
1277+
return WOLFSSL_FATAL_ERROR;
1278+
}
1279+
}
1280+
}
1281+
12821282
#ifdef HAVE_TLS_EXTENSIONS
12831283

12841284
/**

tests/api.c

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -60499,7 +60499,8 @@ static int test_wolfSSL_dtls_set_mtu(void)
6049960499
{
6050060500
EXPECT_DECLS;
6050160501
#if (defined(WOLFSSL_DTLS_MTU) || defined(WOLFSSL_SCTP)) && \
60502-
!defined(NO_WOLFSSL_SERVER) && defined(WOLFSSL_DTLS)
60502+
!defined(NO_WOLFSSL_SERVER) && defined(WOLFSSL_DTLS) && \
60503+
!defined(WOLFSSL_NO_TLS12)
6050360504
WOLFSSL_CTX* ctx = NULL;
6050460505
WOLFSSL* ssl = NULL;
6050560506
const char* testCertFile;
@@ -60537,7 +60538,7 @@ static int test_wolfSSL_dtls_set_mtu(void)
6053760538
}
6053860539

6053960540
#if defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(SINGLE_THREADED) && \
60540-
defined(WOLFSSL_DTLS)
60541+
defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
6054160542

6054260543
static WC_INLINE void generateDTLSMsg(byte* out, int outSz, word32 seq,
6054360544
enum HandShakeType hsType, word16 length)
@@ -60657,7 +60658,7 @@ static int test_wolfSSL_dtls_plaintext(void) {
6065760658
#endif
6065860659

6065960660
#if defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(SINGLE_THREADED) && \
60660-
defined(WOLFSSL_DTLS)
60661+
defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
6066160662

6066260663
static void test_wolfSSL_dtls12_fragments_spammer(WOLFSSL* ssl)
6066360664
{
@@ -60778,8 +60779,10 @@ static int test_wolfSSL_dtls_fragments(void)
6077860779
method_provider server_meth;
6077960780
ssl_callback spammer;
6078060781
} params[] = {
60782+
#if !defined(WOLFSSL_NO_TLS12)
6078160783
{wolfDTLSv1_2_client_method, wolfDTLSv1_2_server_method,
6078260784
test_wolfSSL_dtls12_fragments_spammer},
60785+
#endif
6078360786
#ifdef WOLFSSL_DTLS13
6078460787
{wolfDTLSv1_3_client_method, wolfDTLSv1_3_server_method,
6078560788
test_wolfSSL_dtls13_fragments_spammer},
@@ -60844,10 +60847,15 @@ static int _test_wolfSSL_ignore_alert_before_cookie(byte version12)
6084460847
XMEMSET(&server_cbs, 0, sizeof(server_cbs));
6084560848
client_cbs.doUdp = server_cbs.doUdp = 1;
6084660849
if (version12) {
60850+
#if !defined(WOLFSSL_NO_TLS12)
6084760851
client_cbs.method = wolfDTLSv1_2_client_method;
6084860852
server_cbs.method = wolfDTLSv1_2_server_method;
60853+
#else
60854+
return TEST_SKIPPED;
60855+
#endif
6084960856
}
60850-
else {
60857+
else
60858+
{
6085160859
#ifdef WOLFSSL_DTLS13
6085260860
client_cbs.method = wolfDTLSv1_3_client_method;
6085360861
server_cbs.method = wolfDTLSv1_3_server_method;
@@ -60940,17 +60948,18 @@ static int _test_wolfSSL_dtls_bad_record(
6094060948

6094160949
static int test_wolfSSL_dtls_bad_record(void)
6094260950
{
60943-
int ret;
60951+
int ret = TEST_SUCCESS;
60952+
#if !defined(WOLFSSL_NO_TLS12)
6094460953
ret = _test_wolfSSL_dtls_bad_record(wolfDTLSv1_2_client_method,
6094560954
wolfDTLSv1_2_server_method);
60955+
#endif
6094660956
#ifdef WOLFSSL_DTLS13
60947-
if (ret != TEST_SUCCESS)
60948-
return ret;
60949-
return _test_wolfSSL_dtls_bad_record(wolfDTLSv1_3_client_method,
60957+
if (ret == TEST_SUCCESS) {
60958+
ret = _test_wolfSSL_dtls_bad_record(wolfDTLSv1_3_client_method,
6095060959
wolfDTLSv1_3_server_method);
60951-
#else
60952-
return ret;
60960+
}
6095360961
#endif /* WOLFSSL_DTLS13 */
60962+
return ret;
6095460963

6095560964
}
6095660965

@@ -61435,8 +61444,10 @@ static int test_wolfSSL_dtls_stateless(void)
6143561444
ssl_callback client_ssl_ready;
6143661445
ssl_callback server_ssl_ready;
6143761446
} test_params[] = {
61447+
#if !defined(WOLFSSL_NO_TLS12)
6143861448
{wolfDTLSv1_2_client_method, wolfDTLSv1_2_server_method,
6143961449
test_wolfSSL_dtls_send_ch, test_wolfSSL_dtls_compare_stateless},
61450+
#endif
6144061451
#if defined(WOLFSSL_DTLS13) && defined(WOLFSSL_SEND_HRR_COOKIE)
6144161452
{wolfDTLSv1_3_client_method, wolfDTLSv1_3_server_method,
6144261453
test_wolfSSL_dtls_send_ch, test_wolfSSL_dtls_enable_hrrcookie},
@@ -61445,6 +61456,10 @@ static int test_wolfSSL_dtls_stateless(void)
6144561456
#endif
6144661457
};
6144761458

61459+
if (0 == sizeof(test_params)){
61460+
return TEST_SKIPPED;
61461+
}
61462+
6144861463
for (i = 0; i < sizeof(test_params)/sizeof(*test_params); i++) {
6144961464
XMEMSET(&client_cbs, 0, sizeof(client_cbs));
6145061465
XMEMSET(&server_cbs, 0, sizeof(server_cbs));
@@ -66686,7 +66701,7 @@ static int test_dtls_msg_from_other_peer(void)
6668666701
* !defined(SINGLE_THREADED) && !defined(NO_RSA) */
6668766702
#if defined(WOLFSSL_DTLS) && !defined(WOLFSSL_IPV6) && \
6668866703
!defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER) && \
66689-
defined(HAVE_IO_TESTS_DEPENDENCIES)
66704+
defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(WOLFSSL_NO_TLS12)
6669066705
static int test_dtls_ipv6_check(void)
6669166706
{
6669266707
EXPECT_DECLS;
@@ -66836,7 +66851,8 @@ static int test_wolfSSL_configure_args(void)
6683666851
static int test_dtls_no_extensions(void)
6683766852
{
6683866853
EXPECT_DECLS;
66839-
#if defined(WOLFSSL_DTLS) && defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES)
66854+
#if defined(WOLFSSL_DTLS) && defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && \
66855+
!defined(WOLFSSL_NO_TLS12)
6684066856
WOLFSSL *ssl_s = NULL;
6684166857
WOLFSSL_CTX *ctx_s = NULL;
6684266858
struct test_memio_ctx test_ctx;
@@ -67317,7 +67333,9 @@ static int test_dtls_downgrade_scr(void)
6731767333
}
6731867334
#endif
6731967335

67320-
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13)
67336+
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13) \
67337+
&& !defined(WOLFSSL_NO_TLS12)
67338+
6732167339
static int test_dtls_client_hello_timeout_downgrade_read_cb(WOLFSSL *ssl,
6732267340
char *data, int sz, void *ctx)
6732367341
{
@@ -67344,7 +67362,9 @@ static int test_dtls_client_hello_timeout_downgrade_read_cb(WOLFSSL *ssl,
6734467362
static int test_dtls_client_hello_timeout_downgrade(void)
6734567363
{
6734667364
EXPECT_DECLS;
67347-
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13)
67365+
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13) \
67366+
&& !defined(WOLFSSL_NO_TLS12)
67367+
6734867368
WOLFSSL_CTX *ctx_c = NULL;
6734967369
WOLFSSL_CTX *ctx_s = NULL;
6735067370
WOLFSSL *ssl_c = NULL;
@@ -67552,7 +67572,9 @@ static int test_dtls_client_hello_timeout(void)
6755267572
static int test_dtls_dropped_ccs(void)
6755367573
{
6755467574
EXPECT_DECLS;
67555-
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS)
67575+
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS) \
67576+
&& !defined(WOLFSSL_NO_TLS12)
67577+
6755667578
WOLFSSL_CTX *ctx_c = NULL;
6755767579
WOLFSSL_CTX *ctx_s = NULL;
6755867580
WOLFSSL *ssl_c = NULL;

0 commit comments

Comments
 (0)