File indexing completed on 2025-08-27 09:37:34
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef MBEDTLS_SSL_COOKIE_H
0011 #define MBEDTLS_SSL_COOKIE_H
0012 #include "mbedtls/private_access.h"
0013
0014 #include "mbedtls/build_info.h"
0015
0016 #include "mbedtls/ssl.h"
0017
0018 #if !defined(MBEDTLS_USE_PSA_CRYPTO)
0019 #if defined(MBEDTLS_THREADING_C)
0020 #include "mbedtls/threading.h"
0021 #endif
0022 #endif
0023
0024
0025
0026
0027
0028
0029
0030
0031 #ifndef MBEDTLS_SSL_COOKIE_TIMEOUT
0032 #define MBEDTLS_SSL_COOKIE_TIMEOUT 60
0033 #endif
0034
0035
0036
0037 #ifdef __cplusplus
0038 extern "C" {
0039 #endif
0040
0041
0042
0043
0044 typedef struct mbedtls_ssl_cookie_ctx {
0045 #if defined(MBEDTLS_USE_PSA_CRYPTO)
0046 mbedtls_svc_key_id_t MBEDTLS_PRIVATE(psa_hmac_key);
0047 psa_algorithm_t MBEDTLS_PRIVATE(psa_hmac_alg);
0048 #else
0049 mbedtls_md_context_t MBEDTLS_PRIVATE(hmac_ctx);
0050 #endif
0051 #if !defined(MBEDTLS_HAVE_TIME)
0052 unsigned long MBEDTLS_PRIVATE(serial);
0053 #endif
0054 unsigned long MBEDTLS_PRIVATE(timeout);
0055
0056
0057 #if !defined(MBEDTLS_USE_PSA_CRYPTO)
0058 #if defined(MBEDTLS_THREADING_C)
0059 mbedtls_threading_mutex_t MBEDTLS_PRIVATE(mutex);
0060 #endif
0061 #endif
0062 } mbedtls_ssl_cookie_ctx;
0063
0064
0065
0066
0067 void mbedtls_ssl_cookie_init(mbedtls_ssl_cookie_ctx *ctx);
0068
0069
0070
0071
0072 int mbedtls_ssl_cookie_setup(mbedtls_ssl_cookie_ctx *ctx,
0073 int (*f_rng)(void *, unsigned char *, size_t),
0074 void *p_rng);
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085 void mbedtls_ssl_cookie_set_timeout(mbedtls_ssl_cookie_ctx *ctx, unsigned long delay);
0086
0087
0088
0089
0090 void mbedtls_ssl_cookie_free(mbedtls_ssl_cookie_ctx *ctx);
0091
0092
0093
0094
0095 mbedtls_ssl_cookie_write_t mbedtls_ssl_cookie_write;
0096
0097
0098
0099
0100 mbedtls_ssl_cookie_check_t mbedtls_ssl_cookie_check;
0101
0102 #ifdef __cplusplus
0103 }
0104 #endif
0105
0106 #endif