diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h index e6b0cd5cd..0d3bacf6b 100644 --- a/include/mbedtls/config.h +++ b/include/mbedtls/config.h @@ -2089,6 +2089,16 @@ */ #define MBEDTLS_SSL_COOKIE_C +/** + * \def MBEDTLS_SSL_TICKET_C + * + * Enable an implementation of TLS server-side callbacks for session tickets. + * + * Module: library/ssl_ticket.c + * Caller: + */ +#define MBEDTLS_SSL_TICKET_C + /** * \def MBEDTLS_SSL_CLI_C * diff --git a/include/mbedtls/ssl_ticket.h b/include/mbedtls/ssl_ticket.h new file mode 100644 index 000000000..297548f45 --- /dev/null +++ b/include/mbedtls/ssl_ticket.h @@ -0,0 +1,38 @@ +/** + * \file ssl_ticket.h + * + * \brief TLS server ticket callbacks implementation + * + * Copyright (C) 2015, ARM Limited, All Rights Reserved + * + * This file is part of mbed TLS (https://tls.mbed.org) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ +#ifndef MBEDTLS_SSL_TICKET_H +#define MBEDTLS_SSL_TICKET_H + +#include "ssl.h" + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifdef __cplusplus +} +#endif + +#endif /* ssl_ticket.h */ diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index f42c3d9fd..44fbc13c8 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -55,6 +55,7 @@ set(src sha512.c ssl_cache.c ssl_cookie.c + ssl_ticket.c ssl_ciphersuites.c ssl_cli.c ssl_srv.c diff --git a/library/Makefile b/library/Makefile index 3b2200b04..dc12049e9 100644 --- a/library/Makefile +++ b/library/Makefile @@ -62,7 +62,7 @@ OBJS= aes.o aesni.o arc4.o \ pkwrite.o platform.o ripemd160.o \ rsa.o sha1.o sha256.o \ sha512.o ssl_cache.o ssl_cli.o \ - ssl_cookie.o \ + ssl_cookie.o ssl_ticket.o \ ssl_srv.o ssl_ciphersuites.o \ ssl_tls.o threading.o timing.o \ version.o version_features.o \ diff --git a/library/ssl_ticket.c b/library/ssl_ticket.c new file mode 100644 index 000000000..e6e38fef5 --- /dev/null +++ b/library/ssl_ticket.c @@ -0,0 +1,42 @@ +/* + * TLS server tickets callbacks implementation + * + * Copyright (C) 2015, ARM Limited, All Rights Reserved + * + * This file is part of mbed TLS (https://tls.mbed.org) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#if !defined(MBEDTLS_CONFIG_FILE) +#include "mbedtls/config.h" +#else +#include MBEDTLS_CONFIG_FILE +#endif + +#if defined(MBEDTLS_SSL_TICKET_C) + +#include "mbedtls/ssl_ticket.h" + +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#else +#define mbedtls_malloc malloc +#define mbedtls_free free +#endif + +#include + +#endif /* MBEDTLS_SSL_TICKET_C */ diff --git a/library/version_features.c b/library/version_features.c index 01ee86e15..429d54ed6 100644 --- a/library/version_features.c +++ b/library/version_features.c @@ -561,6 +561,9 @@ static const char *features[] = { #if defined(MBEDTLS_SSL_COOKIE_C) "MBEDTLS_SSL_COOKIE_C", #endif /* MBEDTLS_SSL_COOKIE_C */ +#if defined(MBEDTLS_SSL_TICKET_C) + "MBEDTLS_SSL_TICKET_C", +#endif /* MBEDTLS_SSL_TICKET_C */ #if defined(MBEDTLS_SSL_CLI_C) "MBEDTLS_SSL_CLI_C", #endif /* MBEDTLS_SSL_CLI_C */