Skip to content

Commit d56158e

Browse files
authored
Merge pull request #453 from dgarske/dtls_cleanups
Cleanups for DTLS 1.3 client/server examples.
2 parents 3e220d8 + eaa8e8e commit d56158e

4 files changed

Lines changed: 40 additions & 26 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,15 @@ android/wolfssljni-ndk-sample/proguard-project.txt
5353
/dtls/client-dtls-resume
5454
/dtls/client-dtls-shared
5555
/dtls/client-dtls
56+
/dtls/client-dtls13
5657
/dtls/client-udp
5758
/dtls/server-dtls-callback
5859
/dtls/server-dtls-ipv6
5960
/dtls/server-dtls-nonblocking
6061
/dtls/server-dtls-threaded
6162
/dtls/server-dtls
63+
/dtls/server-dtls13
64+
/dtls/server-dtls13-event
6265
/dtls/server-udp
6366

6467
/psk/client-psk-bio-custom

dtls/client-dtls13.c

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* client-dtls13.c
33
*
4-
* Copyright (C) 2006-2022 wolfSSL Inc.
4+
* Copyright (C) 2006-2024 wolfSSL Inc.
55
*
66
* This file is part of wolfSSL. (formerly known as CyaSSL)
77
*
@@ -29,7 +29,9 @@
2929
* Define USE_DTLS12 to use DTLS 1.2 instead of DTLS 1.3
3030
*/
3131

32+
#ifndef WOLFSSL_USER_SETTINGS
3233
#include <wolfssl/options.h>
34+
#endif
3335
#include <unistd.h>
3436
#include <wolfssl/ssl.h>
3537
#include <netdb.h>
@@ -45,7 +47,7 @@
4547

4648
int main (int argc, char** argv)
4749
{
48-
/* standard variables used in a dtls client*/
50+
/* standard variables used in a dtls client */
4951
int n = 0;
5052
int sockfd = INVALID_SOCKET;
5153
int err;
@@ -65,14 +67,14 @@ int main (int argc, char** argv)
6567

6668
/* Initialize wolfSSL before assigning ctx */
6769
if (wolfSSL_Init() != WOLFSSL_SUCCESS) {
68-
fprintf(stderr, "wolfSSL_CTX_new error.\n");
70+
fprintf(stderr, "wolfSSL_Init error.\n");
6971
return exitVal;
7072
}
71-
73+
7274
/* No-op when debugging is not compiled in */
7375
wolfSSL_Debugging_ON();
7476

75-
if ( (ctx = wolfSSL_CTX_new(
77+
if ((ctx = wolfSSL_CTX_new(
7678
#ifdef WOLFSSL_DTLS13
7779
wolfDTLSv1_3_client_method()
7880
#else
@@ -84,8 +86,8 @@ int main (int argc, char** argv)
8486
}
8587

8688
/* Load certificates into ctx variable */
87-
if (wolfSSL_CTX_load_verify_locations(ctx, caCertLoc, 0)
88-
!= SSL_SUCCESS) {
89+
if (wolfSSL_CTX_load_verify_locations(ctx, caCertLoc, NULL)
90+
!= WOLFSSL_SUCCESS) {
8991
fprintf(stderr, "Error loading %s, please check the file.\n", caCertLoc);
9092
goto cleanup;
9193
}
@@ -112,7 +114,7 @@ int main (int argc, char** argv)
112114
goto cleanup;
113115
}
114116

115-
if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
117+
if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
116118
perror("socket()");
117119
goto cleanup;
118120
}
@@ -124,7 +126,7 @@ int main (int argc, char** argv)
124126
}
125127

126128
/* Perform SSL connection */
127-
if (wolfSSL_connect(ssl) != SSL_SUCCESS) {
129+
if (wolfSSL_connect(ssl) != WOLFSSL_SUCCESS) {
128130
err = wolfSSL_get_error(ssl, 0);
129131
fprintf(stderr, "err = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
130132
fprintf(stderr, "wolfSSL_connect failed\n");
@@ -145,7 +147,8 @@ int main (int argc, char** argv)
145147
/* Send sendLine to the server */
146148
if (wolfSSL_write(ssl, sendLine, strlen(sendLine)) != strlen(sendLine)) {
147149
err = wolfSSL_get_error(ssl, 0);
148-
fprintf(stderr, "err = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
150+
fprintf(stderr, "err = %d, %s\n", err,
151+
wolfSSL_ERR_reason_error_string(err));
149152
fprintf(stderr, "wolfSSL_write failed\n");
150153
goto cleanup;
151154
}
@@ -160,7 +163,8 @@ int main (int argc, char** argv)
160163
}
161164
else {
162165
err = wolfSSL_get_error(ssl, 0);
163-
fprintf(stderr, "err = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
166+
fprintf(stderr, "err = %d, %s\n", err,
167+
wolfSSL_ERR_reason_error_string(err));
164168
fprintf(stderr, "wolfSSL_read failed\n");
165169
goto cleanup;
166170
}
@@ -177,7 +181,8 @@ int main (int argc, char** argv)
177181
ret = wolfSSL_shutdown(ssl);
178182
if (ret != WOLFSSL_SUCCESS) {
179183
err = wolfSSL_get_error(ssl, 0);
180-
fprintf(stderr, "err = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
184+
fprintf(stderr, "err = %d, %s\n", err,
185+
wolfSSL_ERR_reason_error_string(err));
181186
fprintf(stderr, "wolfSSL_shutdown failed\n");
182187
}
183188
wolfSSL_free(ssl);

dtls/server-dtls13-event.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ typedef struct conn_ctx {
5858
WOLFSSL* ssl;
5959
struct event* readEv;
6060
struct event* writeEv;
61-
char waitingOnData:1;
61+
unsigned char waitingOnData:1;
6262
} conn_ctx;
6363

6464
WOLFSSL_CTX* ctx = NULL;
@@ -109,7 +109,7 @@ int main(int argc, char** argv)
109109
goto cleanup;
110110
}
111111
/* Load server certificates */
112-
if (wolfSSL_CTX_use_certificate_file(ctx, servCertLoc, SSL_FILETYPE_PEM) !=
112+
if (wolfSSL_CTX_use_certificate_file(ctx, servCertLoc, SSL_FILETYPE_PEM) !=
113113
SSL_SUCCESS) {
114114
fprintf(stderr, "Error loading %s, please check the file.\n", servCertLoc);
115115
goto cleanup;
@@ -286,7 +286,7 @@ static void newConn(evutil_socket_t fd, short events, void* arg)
286286
static void setHsTimeout(WOLFSSL* ssl, struct timeval *tv)
287287
{
288288
int timeout = wolfSSL_dtls_get_current_timeout(ssl);
289-
#ifndef USE_DTLS12
289+
#ifdef WOLFSSL_DTLS13
290290
if (wolfSSL_dtls13_use_quick_timeout(ssl)) {
291291
if (timeout >= QUICK_MULT)
292292
tv->tv_sec = timeout / QUICK_MULT;

dtls/server-dtls13.c

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/* server-dtls13.c
22
*
3-
* Copyright (C) 2006-2022 wolfSSL Inc.
3+
* Copyright (C) 2006-2024 wolfSSL Inc.
44
*
55
* This file is part of wolfSSL. (formerly known as CyaSSL)
66
*
@@ -26,7 +26,9 @@
2626
* Define USE_DTLS12 to use DTLS 1.2 instead of DTLS 1.3
2727
*/
2828

29+
#ifndef WOLFSSL_USER_SETTINGS
2930
#include <wolfssl/options.h>
31+
#endif
3032
#include <stdio.h> /* standard in/out procedures */
3133
#include <stdlib.h> /* defines system calls */
3234
#include <string.h> /* necessary for memset */
@@ -83,19 +85,19 @@ int main(int argc, char** argv)
8385
}
8486
/* Load CA certificates */
8587
if (wolfSSL_CTX_load_verify_locations(ctx,caCertLoc,0) !=
86-
SSL_SUCCESS) {
88+
WOLFSSL_SUCCESS) {
8789
fprintf(stderr, "Error loading %s, please check the file.\n", caCertLoc);
8890
goto cleanup;
8991
}
9092
/* Load server certificates */
91-
if (wolfSSL_CTX_use_certificate_file(ctx, servCertLoc, SSL_FILETYPE_PEM) !=
92-
SSL_SUCCESS) {
93+
if (wolfSSL_CTX_use_certificate_file(ctx, servCertLoc,
94+
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
9395
fprintf(stderr, "Error loading %s, please check the file.\n", servCertLoc);
9496
goto cleanup;
9597
}
9698
/* Load server Keys */
9799
if (wolfSSL_CTX_use_PrivateKey_file(ctx, servKeyLoc,
98-
SSL_FILETYPE_PEM) != SSL_SUCCESS) {
100+
WOLFSSL_FILETYPE_PEM) != WOLFSSL_SUCCESS) {
99101
fprintf(stderr, "Error loading %s, please check the file.\n", servKeyLoc);
100102
goto cleanup;
101103
}
@@ -153,9 +155,10 @@ int main(int argc, char** argv)
153155
break;
154156
}
155157

156-
if (wolfSSL_accept(ssl) != SSL_SUCCESS) {
158+
if (wolfSSL_accept(ssl) != WOLFSSL_SUCCESS) {
157159
err = wolfSSL_get_error(ssl, 0);
158-
fprintf(stderr, "error = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
160+
fprintf(stderr, "error = %d, %s\n", err,
161+
wolfSSL_ERR_reason_error_string(err));
159162
fprintf(stderr, "SSL_accept failed.\n");
160163
goto cleanup;
161164
}
@@ -171,14 +174,16 @@ int main(int argc, char** argv)
171174
err = wolfSSL_get_error(ssl, 0);
172175
if (err == WOLFSSL_ERROR_ZERO_RETURN) /* Received shutdown */
173176
break;
174-
fprintf(stderr, "error = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
177+
fprintf(stderr, "error = %d, %s\n", err,
178+
wolfSSL_ERR_reason_error_string(err));
175179
fprintf(stderr, "SSL_read failed.\n");
176180
goto cleanup;
177181
}
178182
printf("Sending reply.\n");
179183
if (wolfSSL_write(ssl, ack, sizeof(ack)) < 0) {
180184
err = wolfSSL_get_error(ssl, 0);
181-
fprintf(stderr, "error = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
185+
fprintf(stderr, "error = %d, %s\n", err,
186+
wolfSSL_ERR_reason_error_string(err));
182187
fprintf(stderr, "wolfSSL_write failed.\n");
183188
goto cleanup;
184189
}
@@ -192,15 +197,16 @@ int main(int argc, char** argv)
192197
ret = wolfSSL_shutdown(ssl);
193198
if (ret != WOLFSSL_SUCCESS) {
194199
err = wolfSSL_get_error(ssl, 0);
195-
fprintf(stderr, "err = %d, %s\n", err, wolfSSL_ERR_reason_error_string(err));
200+
fprintf(stderr, "err = %d, %s\n", err,
201+
wolfSSL_ERR_reason_error_string(err));
196202
fprintf(stderr, "wolfSSL_shutdown failed\n");
197203
}
198204
wolfSSL_free(ssl);
199205
ssl = NULL;
200206

201207
printf("Awaiting new connection\n");
202208
}
203-
209+
204210
exitVal = 0;
205211
cleanup:
206212
free_resources();

0 commit comments

Comments
 (0)