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