• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
3  * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved.
4  * Copyright 2005 Nokia. All rights reserved.
5  *
6  * Licensed under the OpenSSL license (the "License").  You may not use
7  * this file except in compliance with the License.  You can obtain a copy
8  * in the file LICENSE in the source distribution or at
9  * https://www.openssl.org/source/license.html
10  */
11 
12 #ifndef OPENSSL_HEADER_TLS1_H
13 #define OPENSSL_HEADER_TLS1_H
14 
15 #include <openssl/base.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 
22 #define TLS1_AD_END_OF_EARLY_DATA 1
23 #define TLS1_AD_DECRYPTION_FAILED 21
24 #define TLS1_AD_RECORD_OVERFLOW 22
25 #define TLS1_AD_UNKNOWN_CA 48
26 #define TLS1_AD_ACCESS_DENIED 49
27 #define TLS1_AD_DECODE_ERROR 50
28 #define TLS1_AD_DECRYPT_ERROR 51
29 #define TLS1_AD_EXPORT_RESTRICTION 60
30 #define TLS1_AD_PROTOCOL_VERSION 70
31 #define TLS1_AD_INSUFFICIENT_SECURITY 71
32 #define TLS1_AD_INTERNAL_ERROR 80
33 #define TLS1_AD_USER_CANCELLED 90
34 #define TLS1_AD_NO_RENEGOTIATION 100
35 #define TLS1_AD_MISSING_EXTENSION 109
36 #define TLS1_AD_UNSUPPORTED_EXTENSION 110
37 #define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111
38 #define TLS1_AD_UNRECOGNIZED_NAME 112
39 #define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113
40 #define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114
41 #define TLS1_AD_UNKNOWN_PSK_IDENTITY 115
42 #define TLS1_AD_CERTIFICATE_REQUIRED 116
43 #define TLS1_AD_NO_APPLICATION_PROTOCOL 120
44 #define TLS1_AD_ECH_REQUIRED 121  // draft-ietf-tls-esni-13
45 
46 // ExtensionType values from RFC 6066
47 #define TLSEXT_TYPE_server_name 0
48 #define TLSEXT_TYPE_status_request 5
49 
50 // ExtensionType values from RFC 4492
51 #define TLSEXT_TYPE_ec_point_formats 11
52 
53 // ExtensionType values from RFC 5246
54 #define TLSEXT_TYPE_signature_algorithms 13
55 
56 // ExtensionType value from RFC 5764
57 #define TLSEXT_TYPE_srtp 14
58 
59 // ExtensionType value from RFC 7301
60 #define TLSEXT_TYPE_application_layer_protocol_negotiation 16
61 
62 // ExtensionType value from RFC 7685
63 #define TLSEXT_TYPE_padding 21
64 
65 // ExtensionType value from RFC 7627
66 #define TLSEXT_TYPE_extended_master_secret 23
67 
68 // ExtensionType value from draft-ietf-quic-tls. Drafts 00 through 32 use
69 // 0xffa5 which is part of the Private Use section of the registry, and it
70 // collides with TLS-LTS and, based on scans, something else too (though this
71 // hasn't been a problem in practice since it's QUIC-only). Drafts 33 onward
72 // use the value 57 which was officially registered with IANA.
73 #define TLSEXT_TYPE_quic_transport_parameters_legacy 0xffa5
74 
75 // ExtensionType value from RFC 9000
76 #define TLSEXT_TYPE_quic_transport_parameters 57
77 
78 // TLSEXT_TYPE_quic_transport_parameters_standard is an alias for
79 // |TLSEXT_TYPE_quic_transport_parameters|. Use
80 // |TLSEXT_TYPE_quic_transport_parameters| instead.
81 #define TLSEXT_TYPE_quic_transport_parameters_standard \
82   TLSEXT_TYPE_quic_transport_parameters
83 
84 // ExtensionType value from RFC 8879
85 #define TLSEXT_TYPE_cert_compression 27
86 
87 // ExtensionType value from RFC 4507
88 #define TLSEXT_TYPE_session_ticket 35
89 
90 // ExtensionType values from RFC 8446
91 #define TLSEXT_TYPE_supported_groups 10
92 #define TLSEXT_TYPE_pre_shared_key 41
93 #define TLSEXT_TYPE_early_data 42
94 #define TLSEXT_TYPE_supported_versions 43
95 #define TLSEXT_TYPE_cookie 44
96 #define TLSEXT_TYPE_psk_key_exchange_modes 45
97 #define TLSEXT_TYPE_certificate_authorities 47
98 #define TLSEXT_TYPE_signature_algorithms_cert 50
99 #define TLSEXT_TYPE_key_share 51
100 
101 // ExtensionType value from RFC 5746
102 #define TLSEXT_TYPE_renegotiate 0xff01
103 
104 // ExtensionType value from RFC 9345
105 #define TLSEXT_TYPE_delegated_credential 34
106 
107 // ExtensionType value from draft-vvv-tls-alps. This is not an IANA defined
108 // extension number.
109 #define TLSEXT_TYPE_application_settings_old 17513
110 #define TLSEXT_TYPE_application_settings 17613
111 
112 // ExtensionType values from draft-ietf-tls-esni-13. This is not an IANA defined
113 // extension number.
114 #define TLSEXT_TYPE_encrypted_client_hello 0xfe0d
115 #define TLSEXT_TYPE_ech_outer_extensions 0xfd00
116 
117 // ExtensionType values from draft-bmw-tls-pake13. This is not an IANA defined
118 // extension number.
119 #define TLSEXT_TYPE_pake 0x8a3b
120 
121 // ExtensionType value from RFC 6962
122 #define TLSEXT_TYPE_certificate_timestamp 18
123 
124 // This is not an IANA defined extension number
125 #define TLSEXT_TYPE_next_proto_neg 13172
126 
127 // This is not an IANA defined extension number
128 #define TLSEXT_TYPE_channel_id 30032
129 
130 // status request value from RFC 3546
131 #define TLSEXT_STATUSTYPE_nothing (-1)
132 #define TLSEXT_STATUSTYPE_ocsp 1
133 
134 // ECPointFormat values from RFC 4492
135 #define TLSEXT_ECPOINTFORMAT_uncompressed 0
136 #define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1
137 
138 // Signature and hash algorithms from RFC 5246
139 
140 #define TLSEXT_signature_anonymous 0
141 #define TLSEXT_signature_rsa 1
142 #define TLSEXT_signature_dsa 2
143 #define TLSEXT_signature_ecdsa 3
144 
145 #define TLSEXT_hash_none 0
146 #define TLSEXT_hash_md5 1
147 #define TLSEXT_hash_sha1 2
148 #define TLSEXT_hash_sha224 3
149 #define TLSEXT_hash_sha256 4
150 #define TLSEXT_hash_sha384 5
151 #define TLSEXT_hash_sha512 6
152 
153 // From https://www.rfc-editor.org/rfc/rfc8879.html#section-3
154 #define TLSEXT_cert_compression_zlib 1
155 #define TLSEXT_cert_compression_brotli 2
156 
157 #define TLSEXT_MAXLEN_host_name 255
158 
159 // PSK ciphersuites from 4279
160 #define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A
161 #define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B
162 #define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C
163 #define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D
164 
165 // PSK ciphersuites from RFC 5489
166 #define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035
167 #define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036
168 
169 // Additional TLS ciphersuites from expired Internet Draft
170 // draft-ietf-tls-56-bit-ciphersuites-01.txt
171 // (available if TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES is defined, see
172 // s3_lib.c).  We actually treat them like SSL 3.0 ciphers, which we probably
173 // shouldn't.  Note that the first two are actually not in the IDs.
174 #define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5 0x03000060      // not in ID
175 #define TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 0x03000061  // not in ID
176 #define TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x03000062
177 #define TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x03000063
178 #define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA 0x03000064
179 #define TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x03000065
180 #define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066
181 
182 // AES ciphersuites from RFC 3268
183 
184 #define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F
185 #define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030
186 #define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031
187 #define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032
188 #define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033
189 #define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034
190 
191 #define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035
192 #define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036
193 #define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037
194 #define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038
195 #define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039
196 #define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A
197 
198 // TLS v1.2 ciphersuites
199 #define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B
200 #define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C
201 #define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D
202 #define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E
203 #define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F
204 #define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040
205 
206 // Camellia ciphersuites from RFC 4132
207 #define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041
208 #define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042
209 #define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043
210 #define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044
211 #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045
212 #define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046
213 
214 // TLS v1.2 ciphersuites
215 #define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067
216 #define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068
217 #define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069
218 #define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A
219 #define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B
220 #define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C
221 #define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D
222 
223 // Camellia ciphersuites from RFC 4132
224 #define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084
225 #define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085
226 #define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086
227 #define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087
228 #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088
229 #define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089
230 
231 // SEED ciphersuites from RFC 4162
232 #define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096
233 #define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097
234 #define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098
235 #define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099
236 #define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A
237 #define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B
238 
239 // TLS v1.2 GCM ciphersuites from RFC 5288
240 #define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C
241 #define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D
242 #define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E
243 #define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F
244 #define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0
245 #define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1
246 #define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2
247 #define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3
248 #define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4
249 #define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5
250 #define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6
251 #define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7
252 
253 // ECC ciphersuites from RFC 4492
254 #define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001
255 #define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002
256 #define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003
257 #define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004
258 #define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005
259 
260 #define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006
261 #define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007
262 #define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008
263 #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009
264 #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A
265 
266 #define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B
267 #define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C
268 #define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D
269 #define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E
270 #define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F
271 
272 #define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010
273 #define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011
274 #define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012
275 #define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013
276 #define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014
277 
278 #define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA256 0x0300C027
279 
280 #define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015
281 #define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016
282 #define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017
283 #define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018
284 #define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019
285 
286 // SRP ciphersuites from RFC 5054
287 #define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A
288 #define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B
289 #define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C
290 #define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D
291 #define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E
292 #define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F
293 #define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020
294 #define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021
295 #define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022
296 
297 // ECDH HMAC based ciphersuites from RFC 5289
298 
299 #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023
300 #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024
301 #define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025
302 #define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026
303 #define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027
304 #define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028
305 #define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029
306 #define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A
307 
308 // ECDH GCM based ciphersuites from RFC 5289
309 #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B
310 #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C
311 #define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D
312 #define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E
313 #define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F
314 #define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030
315 #define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031
316 #define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032
317 
318 // ChaCha20-Poly1305 cipher suites from RFC 7905.
319 #define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 0x0300CCA8
320 #define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 0x0300CCA9
321 #define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 0x0300CCAC
322 
323 // TLS 1.3 ciphersuites from RFC 8446.
324 #define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301
325 #define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302
326 #define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303
327 
328 // The following constants are legacy aliases of |TLS1_3_CK_*|.
329 // TODO(davidben): Migrate callers to the new name and remove these.
330 #define TLS1_CK_AES_128_GCM_SHA256 TLS1_3_CK_AES_128_GCM_SHA256
331 #define TLS1_CK_AES_256_GCM_SHA384 TLS1_3_CK_AES_256_GCM_SHA384
332 #define TLS1_CK_CHACHA20_POLY1305_SHA256 TLS1_3_CK_CHACHA20_POLY1305_SHA256
333 
334 // XXX
335 // Inconsistency alert:
336 // The OpenSSL names of ciphers with ephemeral DH here include the string
337 // "DHE", while elsewhere it has always been "EDH".
338 // (The alias for the list of all such ciphers also is "EDH".)
339 // The specifications speak of "EDH"; maybe we should allow both forms
340 // for everything.
341 #define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 "EXP1024-RC4-MD5"
342 #define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 "EXP1024-RC2-CBC-MD5"
343 #define TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DES-CBC-SHA"
344 #define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA \
345   "EXP1024-DHE-DSS-DES-CBC-SHA"
346 #define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA "EXP1024-RC4-SHA"
347 #define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA "EXP1024-DHE-DSS-RC4-SHA"
348 #define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA"
349 
350 // AES ciphersuites from RFC 3268
351 #define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA"
352 #define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA"
353 #define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA"
354 #define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA"
355 #define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA"
356 #define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA"
357 
358 #define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA"
359 #define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA"
360 #define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA"
361 #define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA"
362 #define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA"
363 #define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA"
364 
365 // ECC ciphersuites from RFC 4492
366 #define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA"
367 #define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA"
368 #define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA"
369 #define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA"
370 #define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA"
371 
372 #define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA"
373 #define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA"
374 #define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA"
375 #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA"
376 #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA"
377 
378 #define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA"
379 #define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA"
380 #define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA"
381 #define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA"
382 #define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA"
383 
384 #define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA"
385 #define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA"
386 #define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA"
387 #define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA"
388 #define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA"
389 
390 #define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA256 "ECDHE-RSA-AES128-SHA256"
391 
392 #define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA"
393 #define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA"
394 #define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA"
395 #define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA"
396 #define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA"
397 
398 // PSK ciphersuites from RFC 4279
399 #define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA"
400 #define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA"
401 #define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA"
402 #define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA"
403 
404 // PSK ciphersuites from RFC 5489
405 #define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA"
406 #define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA"
407 
408 // SRP ciphersuite from RFC 5054
409 #define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA"
410 #define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA"
411 #define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA"
412 #define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA"
413 #define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA"
414 #define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA"
415 #define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA"
416 #define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA"
417 #define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA"
418 
419 // Camellia ciphersuites from RFC 4132
420 #define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA"
421 #define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA"
422 #define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA"
423 #define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA"
424 #define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA"
425 #define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA"
426 
427 #define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA"
428 #define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA"
429 #define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA"
430 #define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA"
431 #define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA"
432 #define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA"
433 
434 // SEED ciphersuites from RFC 4162
435 #define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA"
436 #define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA"
437 #define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA"
438 #define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA"
439 #define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA"
440 #define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA"
441 
442 // TLS v1.2 ciphersuites
443 #define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256"
444 #define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256"
445 #define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256"
446 #define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256"
447 #define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256"
448 #define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256"
449 #define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256"
450 #define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256"
451 #define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256"
452 #define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256"
453 #define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256"
454 #define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256"
455 #define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256"
456 
457 // TLS v1.2 GCM ciphersuites from RFC 5288
458 #define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256"
459 #define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384"
460 #define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256"
461 #define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384"
462 #define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256"
463 #define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384"
464 #define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256"
465 #define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384"
466 #define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256"
467 #define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384"
468 #define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256"
469 #define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384"
470 
471 // ECDH HMAC based ciphersuites from RFC 5289
472 
473 #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256"
474 #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384"
475 #define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256"
476 #define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384"
477 #define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256"
478 #define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384"
479 #define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256"
480 #define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384"
481 
482 // ECDH GCM based ciphersuites from RFC 5289
483 #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 \
484   "ECDHE-ECDSA-AES128-GCM-SHA256"
485 #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 \
486   "ECDHE-ECDSA-AES256-GCM-SHA384"
487 #define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 \
488   "ECDH-ECDSA-AES128-GCM-SHA256"
489 #define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 \
490   "ECDH-ECDSA-AES256-GCM-SHA384"
491 #define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256"
492 #define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384"
493 #define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256"
494 #define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384"
495 
496 #define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \
497   "ECDHE-RSA-CHACHA20-POLY1305"
498 #define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 \
499   "ECDHE-ECDSA-CHACHA20-POLY1305"
500 #define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 \
501   "ECDHE-PSK-CHACHA20-POLY1305"
502 
503 // TLS 1.3 ciphersuites from RFC 8446.
504 #define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256"
505 #define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384"
506 #define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256"
507 
508 // The following constants are legacy aliases of |TLS1_3_CK_*|.
509 // TODO(bbe): Migrate callers to the new name and remove these.
510 #define TLS1_TXT_AES_128_GCM_SHA256 TLS1_3_RFC_AES_128_GCM_SHA256
511 #define TLS1_TXT_AES_256_GCM_SHA384 TLS1_3_RFC_AES_256_GCM_SHA384
512 #define TLS1_TXT_CHACHA20_POLY1305_SHA256 TLS1_3_RFC_CHACHA20_POLY1305_SHA256
513 
514 #define TLS_CT_RSA_SIGN 1
515 #define TLS_CT_DSS_SIGN 2
516 #define TLS_CT_RSA_FIXED_DH 3
517 #define TLS_CT_DSS_FIXED_DH 4
518 #define TLS_CT_ECDSA_SIGN 64
519 #define TLS_CT_RSA_FIXED_ECDH 65
520 #define TLS_CT_ECDSA_FIXED_ECDH 66
521 
522 #define TLS_MD_MAX_CONST_SIZE 20
523 
524 
525 #ifdef __cplusplus
526 }  // extern C
527 #endif
528 
529 #endif  // OPENSSL_HEADER_TLS1_H
530