gnunet-android

GNUnet for Android
Log | Files | Refs | README

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