diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/s_apps.h | 5 | ||||
-rw-r--r-- | apps/s_cb.c | 16 | ||||
-rw-r--r-- | apps/s_server.c | 4 |
3 files changed, 25 insertions, 0 deletions
diff --git a/apps/s_apps.h b/apps/s_apps.h index 614aab8036..1ca8ff95c7 100644 --- a/apps/s_apps.h +++ b/apps/s_apps.h @@ -58,6 +58,11 @@ int generate_cookie_callback(SSL *ssl, unsigned char *cookie, int verify_cookie_callback(SSL *ssl, const unsigned char *cookie, unsigned int cookie_len); +int generate_stateless_cookie_callback(SSL *ssl, unsigned char *cookie, + size_t *cookie_len); +int verify_stateless_cookie_callback(SSL *ssl, const unsigned char *cookie, + size_t cookie_len); + typedef struct ssl_excert_st SSL_EXCERT; void ssl_ctx_set_excert(SSL_CTX *ctx, SSL_EXCERT *exc); diff --git a/apps/s_cb.c b/apps/s_cb.c index 412442db23..820491a037 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -755,6 +755,22 @@ int verify_cookie_callback(SSL *ssl, const unsigned char *cookie, return 0; } + +int generate_stateless_cookie_callback(SSL *ssl, unsigned char *cookie, + size_t *cookie_len) +{ + unsigned int temp; + int res = generate_cookie_callback(ssl, cookie, &temp); + *cookie_len = temp; + return res; +} + +int verify_stateless_cookie_callback(SSL *ssl, const unsigned char *cookie, + size_t cookie_len) +{ + return verify_cookie_callback(ssl, cookie, cookie_len); +} + #endif /* diff --git a/apps/s_server.c b/apps/s_server.c index bc1d1e5608..d21631e8e6 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -2038,6 +2038,10 @@ int s_server_main(int argc, char *argv[]) SSL_CTX_set_cookie_generate_cb(ctx, generate_cookie_callback); SSL_CTX_set_cookie_verify_cb(ctx, verify_cookie_callback); + /* Set TLS1.3 cookie generation and verification callbacks */ + SSL_CTX_set_stateless_cookie_generate_cb(ctx, generate_stateless_cookie_callback); + SSL_CTX_set_stateless_cookie_verify_cb(ctx, verify_stateless_cookie_callback); + if (ctx2 != NULL) { SSL_CTX_set_verify(ctx2, s_server_verify, verify_callback); if (!SSL_CTX_set_session_id_context(ctx2, |