Skip to content

Commit 7bbeadc

Browse files
committed
Fix build errors with dtls1.3 and no tls1.2
1 parent 8f7adb2 commit 7bbeadc

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
{
@@ -1277,6 +1228,55 @@ int TLS_hmac(WOLFSSL* ssl, byte* digest, const byte* in, word32 sz, int padSz,
12771228

12781229
#endif /* !WOLFSSL_NO_TLS12 */
12791230

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

12821282
/**

tests/api.c

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -59684,7 +59684,8 @@ static int test_wolfSSL_dtls_set_mtu(void)
5968459684
{
5968559685
EXPECT_DECLS;
5968659686
#if (defined(WOLFSSL_DTLS_MTU) || defined(WOLFSSL_SCTP)) && \
59687-
!defined(NO_WOLFSSL_SERVER) && defined(WOLFSSL_DTLS)
59687+
!defined(NO_WOLFSSL_SERVER) && defined(WOLFSSL_DTLS) && \
59688+
!defined(WOLFSSL_NO_TLS12)
5968859689
WOLFSSL_CTX* ctx = NULL;
5968959690
WOLFSSL* ssl = NULL;
5969059691
const char* testCertFile;
@@ -59722,7 +59723,7 @@ static int test_wolfSSL_dtls_set_mtu(void)
5972259723
}
5972359724

5972459725
#if defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(SINGLE_THREADED) && \
59725-
defined(WOLFSSL_DTLS)
59726+
defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
5972659727

5972759728
static WC_INLINE void generateDTLSMsg(byte* out, int outSz, word32 seq,
5972859729
enum HandShakeType hsType, word16 length)
@@ -59842,7 +59843,7 @@ static int test_wolfSSL_dtls_plaintext(void) {
5984259843
#endif
5984359844

5984459845
#if defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(SINGLE_THREADED) && \
59845-
defined(WOLFSSL_DTLS)
59846+
defined(WOLFSSL_DTLS) && !defined(WOLFSSL_NO_TLS12)
5984659847

5984759848
static void test_wolfSSL_dtls12_fragments_spammer(WOLFSSL* ssl)
5984859849
{
@@ -59963,8 +59964,10 @@ static int test_wolfSSL_dtls_fragments(void)
5996359964
method_provider server_meth;
5996459965
ssl_callback spammer;
5996559966
} params[] = {
59967+
#if !defined(WOLFSSL_NO_TLS12)
5996659968
{wolfDTLSv1_2_client_method, wolfDTLSv1_2_server_method,
5996759969
test_wolfSSL_dtls12_fragments_spammer},
59970+
#endif
5996859971
#ifdef WOLFSSL_DTLS13
5996959972
{wolfDTLSv1_3_client_method, wolfDTLSv1_3_server_method,
5997059973
test_wolfSSL_dtls13_fragments_spammer},
@@ -60029,10 +60032,15 @@ static int _test_wolfSSL_ignore_alert_before_cookie(byte version12)
6002960032
XMEMSET(&server_cbs, 0, sizeof(server_cbs));
6003060033
client_cbs.doUdp = server_cbs.doUdp = 1;
6003160034
if (version12) {
60035+
#if !defined(WOLFSSL_NO_TLS12)
6003260036
client_cbs.method = wolfDTLSv1_2_client_method;
6003360037
server_cbs.method = wolfDTLSv1_2_server_method;
60038+
#else
60039+
return TEST_SKIPPED;
60040+
#endif
6003460041
}
60035-
else {
60042+
else
60043+
{
6003660044
#ifdef WOLFSSL_DTLS13
6003760045
client_cbs.method = wolfDTLSv1_3_client_method;
6003860046
server_cbs.method = wolfDTLSv1_3_server_method;
@@ -60125,17 +60133,18 @@ static int _test_wolfSSL_dtls_bad_record(
6012560133

6012660134
static int test_wolfSSL_dtls_bad_record(void)
6012760135
{
60128-
int ret;
60136+
int ret = TEST_SUCCESS;
60137+
#if !defined(WOLFSSL_NO_TLS12)
6012960138
ret = _test_wolfSSL_dtls_bad_record(wolfDTLSv1_2_client_method,
6013060139
wolfDTLSv1_2_server_method);
60140+
#endif
6013160141
#ifdef WOLFSSL_DTLS13
60132-
if (ret != TEST_SUCCESS)
60133-
return ret;
60134-
return _test_wolfSSL_dtls_bad_record(wolfDTLSv1_3_client_method,
60142+
if (ret == TEST_SUCCESS) {
60143+
ret = _test_wolfSSL_dtls_bad_record(wolfDTLSv1_3_client_method,
6013560144
wolfDTLSv1_3_server_method);
60136-
#else
60137-
return ret;
60145+
}
6013860146
#endif /* WOLFSSL_DTLS13 */
60147+
return ret;
6013960148

6014060149
}
6014160150

@@ -60620,8 +60629,10 @@ static int test_wolfSSL_dtls_stateless(void)
6062060629
ssl_callback client_ssl_ready;
6062160630
ssl_callback server_ssl_ready;
6062260631
} test_params[] = {
60632+
#if !defined(WOLFSSL_NO_TLS12)
6062360633
{wolfDTLSv1_2_client_method, wolfDTLSv1_2_server_method,
6062460634
test_wolfSSL_dtls_send_ch, test_wolfSSL_dtls_compare_stateless},
60635+
#endif
6062560636
#if defined(WOLFSSL_DTLS13) && defined(WOLFSSL_SEND_HRR_COOKIE)
6062660637
{wolfDTLSv1_3_client_method, wolfDTLSv1_3_server_method,
6062760638
test_wolfSSL_dtls_send_ch, test_wolfSSL_dtls_enable_hrrcookie},
@@ -60630,6 +60641,10 @@ static int test_wolfSSL_dtls_stateless(void)
6063060641
#endif
6063160642
};
6063260643

60644+
if (0 == sizeof(test_params)){
60645+
return TEST_SKIPPED;
60646+
}
60647+
6063360648
for (i = 0; i < sizeof(test_params)/sizeof(*test_params); i++) {
6063460649
XMEMSET(&client_cbs, 0, sizeof(client_cbs));
6063560650
XMEMSET(&server_cbs, 0, sizeof(server_cbs));
@@ -65867,7 +65882,7 @@ static int test_dtls_msg_from_other_peer(void)
6586765882
* !defined(SINGLE_THREADED) && !defined(NO_RSA) */
6586865883
#if defined(WOLFSSL_DTLS) && !defined(WOLFSSL_IPV6) && \
6586965884
!defined(NO_WOLFSSL_CLIENT) && !defined(NO_WOLFSSL_SERVER) && \
65870-
defined(HAVE_IO_TESTS_DEPENDENCIES)
65885+
defined(HAVE_IO_TESTS_DEPENDENCIES) && !defined(WOLFSSL_NO_TLS12)
6587165886
static int test_dtls_ipv6_check(void)
6587265887
{
6587365888
EXPECT_DECLS;
@@ -66017,7 +66032,8 @@ static int test_wolfSSL_configure_args(void)
6601766032
static int test_dtls_no_extensions(void)
6601866033
{
6601966034
EXPECT_DECLS;
66020-
#if defined(WOLFSSL_DTLS) && defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES)
66035+
#if defined(WOLFSSL_DTLS) && defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && \
66036+
!defined(WOLFSSL_NO_TLS12)
6602166037
WOLFSSL *ssl_s = NULL;
6602266038
WOLFSSL_CTX *ctx_s = NULL;
6602366039
struct test_memio_ctx test_ctx;
@@ -66498,7 +66514,9 @@ static int test_dtls_downgrade_scr(void)
6649866514
}
6649966515
#endif
6650066516

66501-
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13)
66517+
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13) \
66518+
&& !defined(WOLFSSL_NO_TLS12)
66519+
6650266520
static int test_dtls_client_hello_timeout_downgrade_read_cb(WOLFSSL *ssl,
6650366521
char *data, int sz, void *ctx)
6650466522
{
@@ -66525,7 +66543,9 @@ static int test_dtls_client_hello_timeout_downgrade_read_cb(WOLFSSL *ssl,
6652566543
static int test_dtls_client_hello_timeout_downgrade(void)
6652666544
{
6652766545
EXPECT_DECLS;
66528-
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13)
66546+
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS13) \
66547+
&& !defined(WOLFSSL_NO_TLS12)
66548+
6652966549
WOLFSSL_CTX *ctx_c = NULL;
6653066550
WOLFSSL_CTX *ctx_s = NULL;
6653166551
WOLFSSL *ssl_c = NULL;
@@ -66733,7 +66753,9 @@ static int test_dtls_client_hello_timeout(void)
6673366753
static int test_dtls_dropped_ccs(void)
6673466754
{
6673566755
EXPECT_DECLS;
66736-
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS)
66756+
#if defined(HAVE_MANUAL_MEMIO_TESTS_DEPENDENCIES) && defined(WOLFSSL_DTLS) \
66757+
&& !defined(WOLFSSL_NO_TLS12)
66758+
6673766759
WOLFSSL_CTX *ctx_c = NULL;
6673866760
WOLFSSL_CTX *ctx_s = NULL;
6673966761
WOLFSSL *ssl_c = NULL;

0 commit comments

Comments
 (0)