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