33 *
44 * The MIT License (MIT)
55 *
6- * Copyright (c) 2018-2022 Damien P. George
6+ * Copyright (c) 2018-2019 Damien P. George
77 *
88 * Permission is hereby granted, free of charge, to any person obtaining a copy
99 * of this software and associated documentation files (the "Software"), to deal
2323 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2424 * THE SOFTWARE.
2525 */
26- #ifndef MICROPY_INCLUDED_MBEDTLS_CONFIG_COMMON_H
27- #define MICROPY_INCLUDED_MBEDTLS_CONFIG_COMMON_H
26+ #ifndef MICROPY_INCLUDED_MBEDTLS_CONFIG_H
27+ #define MICROPY_INCLUDED_MBEDTLS_CONFIG_H
2828
2929// If you want to debug MBEDTLS uncomment the following and
30- // pass "3" to mbedtls_debug_set_threshold in socket_new.
30+ // Pass 3 to mbedtls_debug_set_threshold in socket_new
3131// #define MBEDTLS_DEBUG_C
3232
33- // Set mbedtls configuration.
34- #define MBEDTLS_HAVE_TIME
35- #define MBEDTLS_HAVE_TIME_DATE
33+ // Set mbedtls configuration
34+ #define MBEDTLS_PLATFORM_MEMORY
35+ #define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
3636#define MBEDTLS_DEPRECATED_REMOVED
37+ #define MBEDTLS_ENTROPY_HARDWARE_ALT
3738#define MBEDTLS_AES_ROM_TABLES
3839#define MBEDTLS_CIPHER_MODE_CBC
3940#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
4445#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
4546#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
4647#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
47- #define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
48+ #define MBEDTLS_ECP_DP_BP256R1_ENABLED
49+ #define MBEDTLS_ECP_DP_BP384R1_ENABLED
50+ #define MBEDTLS_ECP_DP_BP512R1_ENABLED
51+ #define MBEDTLS_ECP_DP_CURVE25519_ENABLED
52+ #define MBEDTLS_ECP_NIST_OPTIM
53+ #define MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
54+ #define MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
55+ #define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
4856#define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
49- #define MBEDTLS_CAN_ECDH
50- #define MBEDTLS_PK_CAN_ECDSA_SIGN
57+ #define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
58+ #define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
59+ #define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
60+ #define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
61+ #define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
62+ #define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
63+ #define MBEDTLS_NO_PLATFORM_ENTROPY
5164#define MBEDTLS_PKCS1_V15
5265#define MBEDTLS_SHA256_SMALLER
5366#define MBEDTLS_SSL_PROTO_TLS1
5467#define MBEDTLS_SSL_PROTO_TLS1_1
5568#define MBEDTLS_SSL_PROTO_TLS1_2
5669#define MBEDTLS_SSL_SERVER_NAME_INDICATION
5770
58- // Use a smaller output buffer to reduce size of SSL context.
71+ // Use a smaller output buffer to reduce size of SSL context
5972#define MBEDTLS_SSL_MAX_CONTENT_LEN (16384)
6073#define MBEDTLS_SSL_IN_CONTENT_LEN (MBEDTLS_SSL_MAX_CONTENT_LEN)
6174#define MBEDTLS_SSL_OUT_CONTENT_LEN (4096)
6275
63- // Enable mbedtls modules.
76+ // Enable mbedtls modules
6477#define MBEDTLS_AES_C
6578#define MBEDTLS_ASN1_PARSE_C
6679#define MBEDTLS_ASN1_WRITE_C
80+ #define MBEDTLS_BASE64_C
6781#define MBEDTLS_BIGNUM_C
6882#define MBEDTLS_CIPHER_C
6983#define MBEDTLS_CTR_DRBG_C
7286#define MBEDTLS_ECP_C
7387#define MBEDTLS_ENTROPY_C
7488#define MBEDTLS_ERROR_C
89+ #define MBEDTLS_GCM_C
7590#define MBEDTLS_MD_C
7691#define MBEDTLS_MD5_C
7792#define MBEDTLS_OID_C
7893#define MBEDTLS_PKCS5_C
94+ #define MBEDTLS_PEM_PARSE_C
7995#define MBEDTLS_PK_C
8096#define MBEDTLS_PK_PARSE_C
8197#define MBEDTLS_PLATFORM_C
8298#define MBEDTLS_RSA_C
8399#define MBEDTLS_SHA1_C
84- #define MBEDTLS_SHA224_C
85100#define MBEDTLS_SHA256_C
86- #define MBEDTLS_SHA384_C
87101#define MBEDTLS_SHA512_C
88102#define MBEDTLS_SSL_CLI_C
89103#define MBEDTLS_SSL_SRV_C
90104#define MBEDTLS_SSL_TLS_C
105+ #define MBEDTLS_TLS_DEFAULT_ALLOW_SHA1_IN_KEY_EXCHANGE
91106#define MBEDTLS_X509_CRT_PARSE_C
92107#define MBEDTLS_X509_USE_C
108+ #define MBEDTLS_HAVE_TIME
109+ #define MBEDTLS_DHM_C // needed by DHE_PSK
110+ #undef MBEDTLS_HAVE_TIME_DATE
93111
94- // A port may enable this option to select additional bare-metal configuration.
95- #if MICROPY_MBEDTLS_CONFIG_BARE_METAL
96-
97- // Bare-metal mbedtls configuration.
98- #define MBEDTLS_PLATFORM_MEMORY
99- #define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
100- #define MBEDTLS_ENTROPY_HARDWARE_ALT
101- #define MBEDTLS_NO_PLATFORM_ENTROPY
102-
103- // Bare-metal memory allocation hooks.
112+ // Memory allocation hooks
104113#include <stdlib.h>
105114#include <stdio.h>
106115void * m_tracked_calloc (size_t nmemb , size_t size );
@@ -109,6 +118,11 @@ void m_tracked_free(void *ptr);
109118#define MBEDTLS_PLATFORM_STD_FREE m_tracked_free
110119#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf
111120
112- #endif
121+ // Time hook
122+ #include <time.h>
123+ time_t rp2_rtctime_seconds (time_t * timer );
124+ #define MBEDTLS_PLATFORM_TIME_MACRO rp2_rtctime_seconds
125+
126+ #include "mbedtls/check_config.h"
113127
114- #endif // MICROPY_INCLUDED_MBEDTLS_CONFIG_COMMON_H
128+ #endif /* MICROPY_INCLUDED_MBEDTLS_CONFIG_H */
0 commit comments