22#ifndef MBEDTLS_SSL_CIPHERSUITES_H
23#define MBEDTLS_SSL_CIPHERSUITES_H
25#if !defined(MBEDTLS_CONFIG_FILE)
28#include MBEDTLS_CONFIG_FILE
47#define MBEDTLS_TLS_RSA_WITH_NULL_MD5 0x01
48#define MBEDTLS_TLS_RSA_WITH_NULL_SHA 0x02
50#define MBEDTLS_TLS_RSA_WITH_RC4_128_MD5 0x04
51#define MBEDTLS_TLS_RSA_WITH_RC4_128_SHA 0x05
52#define MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA 0x09
54#define MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA 0x0A
56#define MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA 0x15
57#define MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 0x16
59#define MBEDTLS_TLS_PSK_WITH_NULL_SHA 0x2C
60#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA 0x2D
61#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA 0x2E
62#define MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA 0x2F
64#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA 0x33
65#define MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA 0x35
66#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA 0x39
68#define MBEDTLS_TLS_RSA_WITH_NULL_SHA256 0x3B
69#define MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256 0x3C
70#define MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256 0x3D
72#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA 0x41
73#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x45
75#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 0x67
76#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 0x6B
78#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA 0x84
79#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x88
81#define MBEDTLS_TLS_PSK_WITH_RC4_128_SHA 0x8A
82#define MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA 0x8B
83#define MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA 0x8C
84#define MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA 0x8D
86#define MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA 0x8E
87#define MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x8F
88#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA 0x90
89#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA 0x91
91#define MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA 0x92
92#define MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x93
93#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA 0x94
94#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA 0x95
96#define MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256 0x9C
97#define MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384 0x9D
98#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 0x9E
99#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 0x9F
101#define MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256 0xA8
102#define MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384 0xA9
103#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 0xAA
104#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 0xAB
105#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 0xAC
106#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 0xAD
108#define MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256 0xAE
109#define MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384 0xAF
110#define MBEDTLS_TLS_PSK_WITH_NULL_SHA256 0xB0
111#define MBEDTLS_TLS_PSK_WITH_NULL_SHA384 0xB1
113#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 0xB2
114#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 0xB3
115#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256 0xB4
116#define MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384 0xB5
118#define MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 0xB6
119#define MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 0xB7
120#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256 0xB8
121#define MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384 0xB9
123#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 0xBA
124#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0xBE
126#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 0xC0
127#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0xC4
129#define MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA 0xC001
130#define MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA 0xC002
131#define MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC003
132#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0xC004
133#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0xC005
135#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA 0xC006
136#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 0xC007
137#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 0xC008
138#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0xC009
139#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0xC00A
141#define MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA 0xC00B
142#define MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA 0xC00C
143#define MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 0xC00D
144#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 0xC00E
145#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 0xC00F
147#define MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA 0xC010
148#define MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA 0xC011
149#define MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 0xC012
150#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 0xC013
151#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 0xC014
153#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 0xC023
154#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 0xC024
155#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 0xC025
156#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 0xC026
157#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0xC027
158#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 0xC028
159#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 0xC029
160#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 0xC02A
162#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0xC02B
163#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0xC02C
164#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0xC02D
165#define MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0xC02E
166#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0xC02F
167#define MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0xC030
168#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 0xC031
169#define MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 0xC032
171#define MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA 0xC033
172#define MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0xC034
173#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 0xC035
174#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 0xC036
175#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0xC037
176#define MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0xC038
177#define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA 0xC039
178#define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256 0xC03A
179#define MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384 0xC03B
181#define MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256 0xC03C
182#define MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384 0xC03D
183#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 0xC044
184#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 0xC045
185#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 0xC048
186#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 0xC049
187#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 0xC04A
188#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 0xC04B
189#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 0xC04C
190#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 0xC04D
191#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 0xC04E
192#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 0xC04F
193#define MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256 0xC050
194#define MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384 0xC051
195#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0xC052
196#define MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0xC053
197#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0xC05C
198#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0xC05D
199#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0xC05E
200#define MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0xC05F
201#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0xC060
202#define MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0xC061
203#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0xC062
204#define MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0xC063
205#define MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256 0xC064
206#define MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384 0xC065
207#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 0xC066
208#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 0xC067
209#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 0xC068
210#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 0xC069
211#define MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256 0xC06A
212#define MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384 0xC06B
213#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0xC06C
214#define MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0xC06D
215#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0xC06E
216#define MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0xC06F
217#define MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 0xC070
218#define MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 0xC071
220#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0xC072
221#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0xC073
222#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0xC074
223#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0xC075
224#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0xC076
225#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0xC077
226#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0xC078
227#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0xC079
229#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC07A
230#define MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC07B
231#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC07C
232#define MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC07D
233#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 0xC086
234#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 0xC087
235#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 0xC088
236#define MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 0xC089
237#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC08A
238#define MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC08B
239#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 0xC08C
240#define MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 0xC08D
242#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 0xC08E
243#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 0xC08F
244#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 0xC090
245#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 0xC091
246#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 0xC092
247#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 0xC093
249#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC094
250#define MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC095
251#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC096
252#define MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC097
253#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC098
254#define MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC099
255#define MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0xC09A
256#define MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0xC09B
258#define MBEDTLS_TLS_RSA_WITH_AES_128_CCM 0xC09C
259#define MBEDTLS_TLS_RSA_WITH_AES_256_CCM 0xC09D
260#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM 0xC09E
261#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM 0xC09F
262#define MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8 0xC0A0
263#define MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8 0xC0A1
264#define MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8 0xC0A2
265#define MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8 0xC0A3
266#define MBEDTLS_TLS_PSK_WITH_AES_128_CCM 0xC0A4
267#define MBEDTLS_TLS_PSK_WITH_AES_256_CCM 0xC0A5
268#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM 0xC0A6
269#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM 0xC0A7
270#define MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8 0xC0A8
271#define MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8 0xC0A9
272#define MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8 0xC0AA
273#define MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8 0xC0AB
276#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM 0xC0AC
277#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM 0xC0AD
278#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 0xC0AE
279#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 0xC0AF
281#define MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8 0xC0FF
284#define MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA8
285#define MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 0xCCA9
286#define MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0xCCAA
287#define MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAB
288#define MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAC
289#define MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAD
290#define MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 0xCCAE
296 MBEDTLS_KEY_EXCHANGE_NONE = 0,
297 MBEDTLS_KEY_EXCHANGE_RSA,
298 MBEDTLS_KEY_EXCHANGE_DHE_RSA,
299 MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
300 MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
301 MBEDTLS_KEY_EXCHANGE_PSK,
302 MBEDTLS_KEY_EXCHANGE_DHE_PSK,
303 MBEDTLS_KEY_EXCHANGE_RSA_PSK,
304 MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
305 MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
306 MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
307 MBEDTLS_KEY_EXCHANGE_ECJPAKE,
308} mbedtls_key_exchange_type_t;
311#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \
312 defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \
313 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \
314 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \
315 defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) || \
316 defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
317 defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
318#define MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED
322#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \
323 defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \
324 defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
325 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \
326 defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) || \
327 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
328#define MBEDTLS_KEY_EXCHANGE_CERT_REQ_ALLOWED_ENABLED
332#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \
333 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \
334 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
335#define MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED
339#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
340 defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
341#define MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED
345#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \
346 defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) || \
347 defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) || \
348 defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED)
349#define MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED
353#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \
354 defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) || \
355 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \
356 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \
357 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \
358 defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
359#define MBEDTLS_KEY_EXCHANGE_SOME_PFS_ENABLED
363#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) || \
364 defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) || \
365 defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) || \
366 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
367#define MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED
371#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \
372 defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
373#define MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED
377#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \
378 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \
379 defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
380#define MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED
385#define MBEDTLS_CIPHERSUITE_WEAK 0x01
386#define MBEDTLS_CIPHERSUITE_SHORT_TAG 0x02
388#define MBEDTLS_CIPHERSUITE_NODTLS 0x04
400 mbedtls_key_exchange_type_t key_exchange;
410const int *mbedtls_ssl_list_ciphersuites(
void );
415#if defined(MBEDTLS_PK_C)
423#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PFS_ENABLED)
426 switch(
info->key_exchange )
428 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
429 case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
430 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
431 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
432 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
433 case MBEDTLS_KEY_EXCHANGE_ECJPAKE:
442#if defined(MBEDTLS_KEY_EXCHANGE_SOME_NON_PFS_ENABLED)
445 switch(
info->key_exchange )
447 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
448 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
449 case MBEDTLS_KEY_EXCHANGE_RSA:
450 case MBEDTLS_KEY_EXCHANGE_PSK:
451 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
460#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_ENABLED)
463 switch(
info->key_exchange )
465 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
466 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
477 switch(
info->key_exchange )
479 case MBEDTLS_KEY_EXCHANGE_RSA:
480 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
481 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
482 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
483 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
484 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
494 switch(
info->key_exchange )
496 case MBEDTLS_KEY_EXCHANGE_RSA:
497 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
498 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
499 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
500 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
501 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
502 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
510#if defined(MBEDTLS_KEY_EXCHANGE_SOME_DHE_ENABLED)
513 switch(
info->key_exchange )
515 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
516 case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
525#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDHE_ENABLED)
528 switch(
info->key_exchange )
530 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
531 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
532 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
541#if defined(MBEDTLS_KEY_EXCHANGE_WITH_SERVER_SIGNATURE_ENABLED)
544 switch(
info->key_exchange )
546 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
547 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
548 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
This file contains an abstraction interface for use with the cipher primitives provided by the librar...
Configuration options (set of defines)
mbedtls_cipher_type_t
Supported {cipher type, cipher mode} pairs.
mbedtls_md_type_t
Supported message digests.
This file contains the generic message-digest wrapper.
Public Key abstraction layer.
mbedtls_pk_type_t
Public key types.
This structure is used for storing ciphersuite information.