You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

tls1.h 62 kB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205
  1. /*
  2. * Copyright 1995-2021 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 Apache License 2.0 (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. #ifndef OPENSSL_TLS1_H
  12. #define OPENSSL_TLS1_H
  13. #pragma once
  14. #include <openssl/macros.h>
  15. #ifndef OPENSSL_NO_DEPRECATED_3_0
  16. #define HEADER_TLS1_H
  17. #endif
  18. #include <openssl/buffer.h>
  19. #include <openssl/x509.h>
  20. #include <openssl/prov_ssl.h>
  21. #ifdef __cplusplus
  22. extern "C"
  23. {
  24. #endif
  25. /* Default security level if not overridden at config time */
  26. #ifndef OPENSSL_TLS_SECURITY_LEVEL
  27. #define OPENSSL_TLS_SECURITY_LEVEL 1
  28. #endif
  29. /* TLS*_VERSION constants are defined in prov_ssl.h */
  30. #ifndef OPENSSL_NO_DEPRECATED_3_0
  31. #define TLS_MAX_VERSION TLS1_3_VERSION
  32. #endif
  33. /* Special value for method supporting multiple versions */
  34. #define TLS_ANY_VERSION 0x10000
  35. #define TLS1_VERSION_MAJOR 0x03
  36. #define TLS1_VERSION_MINOR 0x01
  37. #define TLS1_1_VERSION_MAJOR 0x03
  38. #define TLS1_1_VERSION_MINOR 0x02
  39. #define TLS1_2_VERSION_MAJOR 0x03
  40. #define TLS1_2_VERSION_MINOR 0x03
  41. #define TLS1_get_version(s) \
  42. ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0)
  43. #define TLS1_get_client_version(s) \
  44. ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0)
  45. #define TLS1_AD_DECRYPTION_FAILED 21
  46. #define TLS1_AD_RECORD_OVERFLOW 22
  47. #define TLS1_AD_UNKNOWN_CA 48 /* fatal */
  48. #define TLS1_AD_ACCESS_DENIED 49 /* fatal */
  49. #define TLS1_AD_DECODE_ERROR 50 /* fatal */
  50. #define TLS1_AD_DECRYPT_ERROR 51
  51. #define TLS1_AD_EXPORT_RESTRICTION 60 /* fatal */
  52. #define TLS1_AD_PROTOCOL_VERSION 70 /* fatal */
  53. #define TLS1_AD_INSUFFICIENT_SECURITY 71 /* fatal */
  54. #define TLS1_AD_INTERNAL_ERROR 80 /* fatal */
  55. #define TLS1_AD_INAPPROPRIATE_FALLBACK 86 /* fatal */
  56. #define TLS1_AD_USER_CANCELLED 90
  57. #define TLS1_AD_NO_RENEGOTIATION 100
  58. /* TLSv1.3 alerts */
  59. #define TLS13_AD_MISSING_EXTENSION 109 /* fatal */
  60. #define TLS13_AD_CERTIFICATE_REQUIRED 116 /* fatal */
  61. /* codes 110-114 are from RFC3546 */
  62. #define TLS1_AD_UNSUPPORTED_EXTENSION 110
  63. #define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111
  64. #define TLS1_AD_UNRECOGNIZED_NAME 112
  65. #define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113
  66. #define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114
  67. #define TLS1_AD_UNKNOWN_PSK_IDENTITY 115 /* fatal */
  68. #define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */
  69. /* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */
  70. #define TLSEXT_TYPE_server_name 0
  71. #define TLSEXT_TYPE_max_fragment_length 1
  72. #define TLSEXT_TYPE_client_certificate_url 2
  73. #define TLSEXT_TYPE_trusted_ca_keys 3
  74. #define TLSEXT_TYPE_truncated_hmac 4
  75. #define TLSEXT_TYPE_status_request 5
  76. /* ExtensionType values from RFC4681 */
  77. #define TLSEXT_TYPE_user_mapping 6
  78. /* ExtensionType values from RFC5878 */
  79. #define TLSEXT_TYPE_client_authz 7
  80. #define TLSEXT_TYPE_server_authz 8
  81. /* ExtensionType values from RFC6091 */
  82. #define TLSEXT_TYPE_cert_type 9
  83. /* ExtensionType values from RFC4492 */
  84. /*
  85. * Prior to TLSv1.3 the supported_groups extension was known as
  86. * elliptic_curves
  87. */
  88. #define TLSEXT_TYPE_supported_groups 10
  89. #define TLSEXT_TYPE_elliptic_curves TLSEXT_TYPE_supported_groups
  90. #define TLSEXT_TYPE_ec_point_formats 11
  91. /* ExtensionType value from RFC5054 */
  92. #define TLSEXT_TYPE_srp 12
  93. /* ExtensionType values from RFC5246 */
  94. #define TLSEXT_TYPE_signature_algorithms 13
  95. /* ExtensionType value from RFC5764 */
  96. #define TLSEXT_TYPE_use_srtp 14
  97. /* ExtensionType value from RFC7301 */
  98. #define TLSEXT_TYPE_application_layer_protocol_negotiation 16
  99. /*
  100. * Extension type for Certificate Transparency
  101. * https://tools.ietf.org/html/rfc6962#section-3.3.1
  102. */
  103. #define TLSEXT_TYPE_signed_certificate_timestamp 18
  104. /*
  105. * ExtensionType value for TLS padding extension.
  106. * http://tools.ietf.org/html/draft-agl-tls-padding
  107. */
  108. #define TLSEXT_TYPE_padding 21
  109. /* ExtensionType value from RFC7366 */
  110. #define TLSEXT_TYPE_encrypt_then_mac 22
  111. /* ExtensionType value from RFC7627 */
  112. #define TLSEXT_TYPE_extended_master_secret 23
  113. /* ExtensionType value from RFC4507 */
  114. #define TLSEXT_TYPE_session_ticket 35
  115. /* As defined for TLS1.3 */
  116. #define TLSEXT_TYPE_psk 41
  117. #define TLSEXT_TYPE_early_data 42
  118. #define TLSEXT_TYPE_supported_versions 43
  119. #define TLSEXT_TYPE_cookie 44
  120. #define TLSEXT_TYPE_psk_kex_modes 45
  121. #define TLSEXT_TYPE_certificate_authorities 47
  122. #define TLSEXT_TYPE_post_handshake_auth 49
  123. #define TLSEXT_TYPE_signature_algorithms_cert 50
  124. #define TLSEXT_TYPE_key_share 51
  125. /* Temporary extension type */
  126. #define TLSEXT_TYPE_renegotiate 0xff01
  127. #ifndef OPENSSL_NO_NEXTPROTONEG
  128. /* This is not an IANA defined extension number */
  129. #define TLSEXT_TYPE_next_proto_neg 13172
  130. #endif
  131. /* NameType value from RFC3546 */
  132. #define TLSEXT_NAMETYPE_host_name 0
  133. /* status request value from RFC3546 */
  134. #define TLSEXT_STATUSTYPE_ocsp 1
  135. /* ECPointFormat values from RFC4492 */
  136. #define TLSEXT_ECPOINTFORMAT_first 0
  137. #define TLSEXT_ECPOINTFORMAT_uncompressed 0
  138. #define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1
  139. #define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2
  140. #define TLSEXT_ECPOINTFORMAT_last 2
  141. /* Signature and hash algorithms from RFC5246 */
  142. #define TLSEXT_signature_anonymous 0
  143. #define TLSEXT_signature_rsa 1
  144. #define TLSEXT_signature_dsa 2
  145. #define TLSEXT_signature_ecdsa 3
  146. #define TLSEXT_signature_gostr34102001 237
  147. #define TLSEXT_signature_gostr34102012_256 238
  148. #define TLSEXT_signature_gostr34102012_512 239
  149. /* Total number of different signature algorithms */
  150. #define TLSEXT_signature_num 7
  151. #define TLSEXT_hash_none 0
  152. #define TLSEXT_hash_md5 1
  153. #define TLSEXT_hash_sha1 2
  154. #define TLSEXT_hash_sha224 3
  155. #define TLSEXT_hash_sha256 4
  156. #define TLSEXT_hash_sha384 5
  157. #define TLSEXT_hash_sha512 6
  158. #define TLSEXT_hash_gostr3411 237
  159. #define TLSEXT_hash_gostr34112012_256 238
  160. #define TLSEXT_hash_gostr34112012_512 239
  161. /* Total number of different digest algorithms */
  162. #define TLSEXT_hash_num 10
  163. /* Flag set for unrecognised algorithms */
  164. #define TLSEXT_nid_unknown 0x1000000
  165. /* ECC curves */
  166. #define TLSEXT_curve_P_256 23
  167. #define TLSEXT_curve_P_384 24
  168. /* OpenSSL value to disable maximum fragment length extension */
  169. #define TLSEXT_max_fragment_length_DISABLED 0
  170. /* Allowed values for max fragment length extension */
  171. #define TLSEXT_max_fragment_length_512 1
  172. #define TLSEXT_max_fragment_length_1024 2
  173. #define TLSEXT_max_fragment_length_2048 3
  174. #define TLSEXT_max_fragment_length_4096 4
  175. int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX* ctx, uint8_t mode);
  176. int SSL_set_tlsext_max_fragment_length(SSL* ssl, uint8_t mode);
  177. #define TLSEXT_MAXLEN_host_name 255
  178. __owur const char* SSL_get_servername(const SSL* s, const int type);
  179. __owur int SSL_get_servername_type(const SSL* s);
  180. /*
  181. * SSL_export_keying_material exports a value derived from the master secret,
  182. * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and
  183. * optional context. (Since a zero length context is allowed, the |use_context|
  184. * flag controls whether a context is included.) It returns 1 on success and
  185. * 0 or -1 otherwise.
  186. */
  187. __owur int SSL_export_keying_material(SSL* s, unsigned char* out, size_t olen, const char* label, size_t llen, const unsigned char* context, size_t contextlen, int use_context);
  188. /*
  189. * SSL_export_keying_material_early exports a value derived from the
  190. * early exporter master secret, as specified in
  191. * https://tools.ietf.org/html/draft-ietf-tls-tls13-23. It writes
  192. * |olen| bytes to |out| given a label and optional context. It
  193. * returns 1 on success and 0 otherwise.
  194. */
  195. __owur int SSL_export_keying_material_early(SSL* s, unsigned char* out, size_t olen, const char* label, size_t llen, const unsigned char* context, size_t contextlen);
  196. int SSL_get_peer_signature_type_nid(const SSL* s, int* pnid);
  197. int SSL_get_signature_type_nid(const SSL* s, int* pnid);
  198. int SSL_get_sigalgs(SSL* s, int idx, int* psign, int* phash, int* psignandhash, unsigned char* rsig, unsigned char* rhash);
  199. int SSL_get_shared_sigalgs(SSL* s, int idx, int* psign, int* phash, int* psignandhash, unsigned char* rsig, unsigned char* rhash);
  200. __owur int SSL_check_chain(SSL* s, X509* x, EVP_PKEY* pk, STACK_OF(X509) * chain);
  201. #define SSL_set_tlsext_host_name(s, name) \
  202. SSL_ctrl(s, SSL_CTRL_SET_TLSEXT_HOSTNAME, TLSEXT_NAMETYPE_host_name, (void*)name)
  203. #define SSL_set_tlsext_debug_callback(ssl, cb) \
  204. SSL_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_DEBUG_CB, (void (*)(void))cb)
  205. #define SSL_set_tlsext_debug_arg(ssl, arg) \
  206. SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_DEBUG_ARG, 0, arg)
  207. #define SSL_get_tlsext_status_type(ssl) \
  208. SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE, 0, NULL)
  209. #define SSL_set_tlsext_status_type(ssl, type) \
  210. SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE, type, NULL)
  211. #define SSL_get_tlsext_status_exts(ssl, arg) \
  212. SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS, 0, arg)
  213. #define SSL_set_tlsext_status_exts(ssl, arg) \
  214. SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS, 0, arg)
  215. #define SSL_get_tlsext_status_ids(ssl, arg) \
  216. SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS, 0, arg)
  217. #define SSL_set_tlsext_status_ids(ssl, arg) \
  218. SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS, 0, arg)
  219. #define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \
  220. SSL_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP, 0, arg)
  221. #define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \
  222. SSL_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP, arglen, arg)
  223. #define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \
  224. SSL_CTX_callback_ctrl(ctx, SSL_CTRL_SET_TLSEXT_SERVERNAME_CB, (void (*)(void))cb)
  225. #define SSL_TLSEXT_ERR_OK 0
  226. #define SSL_TLSEXT_ERR_ALERT_WARNING 1
  227. #define SSL_TLSEXT_ERR_ALERT_FATAL 2
  228. #define SSL_TLSEXT_ERR_NOACK 3
  229. #define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \
  230. SSL_CTX_ctrl(ctx, SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG, 0, arg)
  231. #define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \
  232. SSL_CTX_ctrl(ctx, SSL_CTRL_GET_TLSEXT_TICKET_KEYS, keylen, keys)
  233. #define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \
  234. SSL_CTX_ctrl(ctx, SSL_CTRL_SET_TLSEXT_TICKET_KEYS, keylen, keys)
  235. #define SSL_CTX_get_tlsext_status_cb(ssl, cb) \
  236. SSL_CTX_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB, 0, (void*)cb)
  237. #define SSL_CTX_set_tlsext_status_cb(ssl, cb) \
  238. SSL_CTX_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB, (void (*)(void))cb)
  239. #define SSL_CTX_get_tlsext_status_arg(ssl, arg) \
  240. SSL_CTX_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG, 0, arg)
  241. #define SSL_CTX_set_tlsext_status_arg(ssl, arg) \
  242. SSL_CTX_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG, 0, arg)
  243. #define SSL_CTX_set_tlsext_status_type(ssl, type) \
  244. SSL_CTX_ctrl(ssl, SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE, type, NULL)
  245. #define SSL_CTX_get_tlsext_status_type(ssl) \
  246. SSL_CTX_ctrl(ssl, SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE, 0, NULL)
  247. #ifndef OPENSSL_NO_DEPRECATED_3_0
  248. #define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \
  249. SSL_CTX_callback_ctrl(ssl, SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB, (void (*)(void))cb)
  250. #endif
  251. int SSL_CTX_set_tlsext_ticket_key_evp_cb(SSL_CTX* ctx, int (*fp)(SSL*, unsigned char*, unsigned char*, EVP_CIPHER_CTX*, EVP_MAC_CTX*, int));
  252. /* PSK ciphersuites from 4279 */
  253. #define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A
  254. #define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B
  255. #define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C
  256. #define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D
  257. #define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E
  258. #define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F
  259. #define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090
  260. #define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091
  261. #define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092
  262. #define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093
  263. #define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094
  264. #define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095
  265. /* PSK ciphersuites from 5487 */
  266. #define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8
  267. #define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9
  268. #define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA
  269. #define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB
  270. #define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC
  271. #define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD
  272. #define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE
  273. #define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF
  274. #define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0
  275. #define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1
  276. #define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2
  277. #define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3
  278. #define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4
  279. #define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5
  280. #define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6
  281. #define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7
  282. #define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8
  283. #define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9
  284. /* NULL PSK ciphersuites from RFC4785 */
  285. #define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C
  286. #define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D
  287. #define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E
  288. /* AES ciphersuites from RFC3268 */
  289. #define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F
  290. #define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030
  291. #define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031
  292. #define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032
  293. #define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033
  294. #define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034
  295. #define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035
  296. #define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036
  297. #define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037
  298. #define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038
  299. #define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039
  300. #define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A
  301. /* TLS v1.2 ciphersuites */
  302. #define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B
  303. #define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C
  304. #define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D
  305. #define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E
  306. #define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F
  307. #define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040
  308. /* Camellia ciphersuites from RFC4132 */
  309. #define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041
  310. #define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042
  311. #define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043
  312. #define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044
  313. #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045
  314. #define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046
  315. /* TLS v1.2 ciphersuites */
  316. #define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067
  317. #define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068
  318. #define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069
  319. #define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A
  320. #define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B
  321. #define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C
  322. #define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D
  323. /* Camellia ciphersuites from RFC4132 */
  324. #define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084
  325. #define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085
  326. #define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086
  327. #define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087
  328. #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088
  329. #define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089
  330. /* SEED ciphersuites from RFC4162 */
  331. #define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096
  332. #define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097
  333. #define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098
  334. #define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099
  335. #define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A
  336. #define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B
  337. /* TLS v1.2 GCM ciphersuites from RFC5288 */
  338. #define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C
  339. #define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D
  340. #define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E
  341. #define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F
  342. #define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0
  343. #define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1
  344. #define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2
  345. #define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3
  346. #define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4
  347. #define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5
  348. #define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6
  349. #define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7
  350. /* CCM ciphersuites from RFC6655 */
  351. #define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C
  352. #define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D
  353. #define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E
  354. #define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F
  355. #define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0
  356. #define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1
  357. #define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2
  358. #define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3
  359. #define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4
  360. #define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5
  361. #define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6
  362. #define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7
  363. #define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8
  364. #define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9
  365. #define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA
  366. #define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB
  367. /* CCM ciphersuites from RFC7251 */
  368. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC
  369. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD
  370. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE
  371. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF
  372. /* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */
  373. #define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA
  374. #define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB
  375. #define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC
  376. #define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD
  377. #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE
  378. #define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF
  379. #define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0
  380. #define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1
  381. #define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2
  382. #define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3
  383. #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4
  384. #define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5
  385. /* ECC ciphersuites from RFC4492 */
  386. #define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001
  387. #define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002
  388. #define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003
  389. #define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004
  390. #define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005
  391. #define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006
  392. #define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007
  393. #define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008
  394. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009
  395. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A
  396. #define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B
  397. #define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C
  398. #define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D
  399. #define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E
  400. #define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F
  401. #define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010
  402. #define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011
  403. #define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012
  404. #define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013
  405. #define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014
  406. #define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015
  407. #define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016
  408. #define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017
  409. #define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018
  410. #define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019
  411. /* SRP ciphersuites from RFC 5054 */
  412. #define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A
  413. #define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B
  414. #define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C
  415. #define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D
  416. #define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E
  417. #define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F
  418. #define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020
  419. #define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021
  420. #define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022
  421. /* ECDH HMAC based ciphersuites from RFC5289 */
  422. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023
  423. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024
  424. #define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025
  425. #define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026
  426. #define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027
  427. #define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028
  428. #define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029
  429. #define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A
  430. /* ECDH GCM based ciphersuites from RFC5289 */
  431. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B
  432. #define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C
  433. #define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D
  434. #define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E
  435. #define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F
  436. #define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030
  437. #define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031
  438. #define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032
  439. /* ECDHE PSK ciphersuites from RFC5489 */
  440. #define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033
  441. #define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034
  442. #define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035
  443. #define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036
  444. #define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037
  445. #define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038
  446. /* NULL PSK ciphersuites from RFC4785 */
  447. #define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039
  448. #define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A
  449. #define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B
  450. /* Camellia-CBC ciphersuites from RFC6367 */
  451. #define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072
  452. #define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073
  453. #define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074
  454. #define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075
  455. #define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076
  456. #define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077
  457. #define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078
  458. #define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079
  459. #define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094
  460. #define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095
  461. #define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096
  462. #define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097
  463. #define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098
  464. #define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099
  465. #define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A
  466. #define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B
  467. /* draft-ietf-tls-chacha20-poly1305-03 */
  468. #define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8
  469. #define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9
  470. #define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA
  471. #define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB
  472. #define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC
  473. #define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD
  474. #define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE
  475. /* TLS v1.3 ciphersuites */
  476. #define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301
  477. #define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302
  478. #define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303
  479. #define TLS1_3_CK_AES_128_CCM_SHA256 0x03001304
  480. #define TLS1_3_CK_AES_128_CCM_8_SHA256 0x03001305
  481. /* Aria ciphersuites from RFC6209 */
  482. #define TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C050
  483. #define TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C051
  484. #define TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C052
  485. #define TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C053
  486. #define TLS1_CK_DH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C054
  487. #define TLS1_CK_DH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C055
  488. #define TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C056
  489. #define TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C057
  490. #define TLS1_CK_DH_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C058
  491. #define TLS1_CK_DH_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C059
  492. #define TLS1_CK_DH_anon_WITH_ARIA_128_GCM_SHA256 0x0300C05A
  493. #define TLS1_CK_DH_anon_WITH_ARIA_256_GCM_SHA384 0x0300C05B
  494. #define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05C
  495. #define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05D
  496. #define TLS1_CK_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05E
  497. #define TLS1_CK_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05F
  498. #define TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C060
  499. #define TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C061
  500. #define TLS1_CK_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C062
  501. #define TLS1_CK_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C063
  502. #define TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06A
  503. #define TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06B
  504. #define TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06C
  505. #define TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06D
  506. #define TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06E
  507. #define TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06F
  508. /* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */
  509. #define TLS1_RFC_RSA_WITH_AES_128_SHA "TLS_RSA_WITH_AES_128_CBC_SHA"
  510. #define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"
  511. #define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"
  512. #define TLS1_RFC_ADH_WITH_AES_128_SHA "TLS_DH_anon_WITH_AES_128_CBC_SHA"
  513. #define TLS1_RFC_RSA_WITH_AES_256_SHA "TLS_RSA_WITH_AES_256_CBC_SHA"
  514. #define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"
  515. #define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"
  516. #define TLS1_RFC_ADH_WITH_AES_256_SHA "TLS_DH_anon_WITH_AES_256_CBC_SHA"
  517. #define TLS1_RFC_RSA_WITH_NULL_SHA256 "TLS_RSA_WITH_NULL_SHA256"
  518. #define TLS1_RFC_RSA_WITH_AES_128_SHA256 "TLS_RSA_WITH_AES_128_CBC_SHA256"
  519. #define TLS1_RFC_RSA_WITH_AES_256_SHA256 "TLS_RSA_WITH_AES_256_CBC_SHA256"
  520. #define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256 "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256"
  521. #define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256 "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256"
  522. #define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256 "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256"
  523. #define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256 "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"
  524. #define TLS1_RFC_ADH_WITH_AES_128_SHA256 "TLS_DH_anon_WITH_AES_128_CBC_SHA256"
  525. #define TLS1_RFC_ADH_WITH_AES_256_SHA256 "TLS_DH_anon_WITH_AES_256_CBC_SHA256"
  526. #define TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256 "TLS_RSA_WITH_AES_128_GCM_SHA256"
  527. #define TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384 "TLS_RSA_WITH_AES_256_GCM_SHA384"
  528. #define TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256"
  529. #define TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384"
  530. #define TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256 "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256"
  531. #define TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384 "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384"
  532. #define TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256 "TLS_DH_anon_WITH_AES_128_GCM_SHA256"
  533. #define TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384 "TLS_DH_anon_WITH_AES_256_GCM_SHA384"
  534. #define TLS1_RFC_RSA_WITH_AES_128_CCM "TLS_RSA_WITH_AES_128_CCM"
  535. #define TLS1_RFC_RSA_WITH_AES_256_CCM "TLS_RSA_WITH_AES_256_CCM"
  536. #define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM "TLS_DHE_RSA_WITH_AES_128_CCM"
  537. #define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM "TLS_DHE_RSA_WITH_AES_256_CCM"
  538. #define TLS1_RFC_RSA_WITH_AES_128_CCM_8 "TLS_RSA_WITH_AES_128_CCM_8"
  539. #define TLS1_RFC_RSA_WITH_AES_256_CCM_8 "TLS_RSA_WITH_AES_256_CCM_8"
  540. #define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8 "TLS_DHE_RSA_WITH_AES_128_CCM_8"
  541. #define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8 "TLS_DHE_RSA_WITH_AES_256_CCM_8"
  542. #define TLS1_RFC_PSK_WITH_AES_128_CCM "TLS_PSK_WITH_AES_128_CCM"
  543. #define TLS1_RFC_PSK_WITH_AES_256_CCM "TLS_PSK_WITH_AES_256_CCM"
  544. #define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM "TLS_DHE_PSK_WITH_AES_128_CCM"
  545. #define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM "TLS_DHE_PSK_WITH_AES_256_CCM"
  546. #define TLS1_RFC_PSK_WITH_AES_128_CCM_8 "TLS_PSK_WITH_AES_128_CCM_8"
  547. #define TLS1_RFC_PSK_WITH_AES_256_CCM_8 "TLS_PSK_WITH_AES_256_CCM_8"
  548. #define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8 "TLS_PSK_DHE_WITH_AES_128_CCM_8"
  549. #define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8 "TLS_PSK_DHE_WITH_AES_256_CCM_8"
  550. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM "TLS_ECDHE_ECDSA_WITH_AES_128_CCM"
  551. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM "TLS_ECDHE_ECDSA_WITH_AES_256_CCM"
  552. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8"
  553. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8"
  554. #define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256"
  555. #define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384"
  556. #define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256"
  557. #define TLS1_3_RFC_AES_128_CCM_SHA256 "TLS_AES_128_CCM_SHA256"
  558. #define TLS1_3_RFC_AES_128_CCM_8_SHA256 "TLS_AES_128_CCM_8_SHA256"
  559. #define TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA "TLS_ECDHE_ECDSA_WITH_NULL_SHA"
  560. #define TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA"
  561. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"
  562. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"
  563. #define TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA "TLS_ECDHE_RSA_WITH_NULL_SHA"
  564. #define TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA"
  565. #define TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"
  566. #define TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"
  567. #define TLS1_RFC_ECDH_anon_WITH_NULL_SHA "TLS_ECDH_anon_WITH_NULL_SHA"
  568. #define TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA"
  569. #define TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA "TLS_ECDH_anon_WITH_AES_128_CBC_SHA"
  570. #define TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA "TLS_ECDH_anon_WITH_AES_256_CBC_SHA"
  571. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
  572. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
  573. #define TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
  574. #define TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"
  575. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
  576. #define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
  577. #define TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
  578. #define TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
  579. #define TLS1_RFC_PSK_WITH_NULL_SHA "TLS_PSK_WITH_NULL_SHA"
  580. #define TLS1_RFC_DHE_PSK_WITH_NULL_SHA "TLS_DHE_PSK_WITH_NULL_SHA"
  581. #define TLS1_RFC_RSA_PSK_WITH_NULL_SHA "TLS_RSA_PSK_WITH_NULL_SHA"
  582. #define TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA "TLS_PSK_WITH_3DES_EDE_CBC_SHA"
  583. #define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA "TLS_PSK_WITH_AES_128_CBC_SHA"
  584. #define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA "TLS_PSK_WITH_AES_256_CBC_SHA"
  585. #define TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"
  586. #define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"
  587. #define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"
  588. #define TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"
  589. #define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"
  590. #define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"
  591. #define TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256 "TLS_PSK_WITH_AES_128_GCM_SHA256"
  592. #define TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384 "TLS_PSK_WITH_AES_256_GCM_SHA384"
  593. #define TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256 "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256"
  594. #define TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384 "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384"
  595. #define TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256 "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256"
  596. #define TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384 "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384"
  597. #define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256 "TLS_PSK_WITH_AES_128_CBC_SHA256"
  598. #define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384 "TLS_PSK_WITH_AES_256_CBC_SHA384"
  599. #define TLS1_RFC_PSK_WITH_NULL_SHA256 "TLS_PSK_WITH_NULL_SHA256"
  600. #define TLS1_RFC_PSK_WITH_NULL_SHA384 "TLS_PSK_WITH_NULL_SHA384"
  601. #define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256"
  602. #define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384"
  603. #define TLS1_RFC_DHE_PSK_WITH_NULL_SHA256 "TLS_DHE_PSK_WITH_NULL_SHA256"
  604. #define TLS1_RFC_DHE_PSK_WITH_NULL_SHA384 "TLS_DHE_PSK_WITH_NULL_SHA384"
  605. #define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256 "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256"
  606. #define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384 "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384"
  607. #define TLS1_RFC_RSA_PSK_WITH_NULL_SHA256 "TLS_RSA_PSK_WITH_NULL_SHA256"
  608. #define TLS1_RFC_RSA_PSK_WITH_NULL_SHA384 "TLS_RSA_PSK_WITH_NULL_SHA384"
  609. #define TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA"
  610. #define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA"
  611. #define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA"
  612. #define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256"
  613. #define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384"
  614. #define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA "TLS_ECDHE_PSK_WITH_NULL_SHA"
  615. #define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256 "TLS_ECDHE_PSK_WITH_NULL_SHA256"
  616. #define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384 "TLS_ECDHE_PSK_WITH_NULL_SHA384"
  617. #define TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA"
  618. #define TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA"
  619. #define TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA"
  620. #define TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_WITH_AES_128_CBC_SHA"
  621. #define TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA"
  622. #define TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA"
  623. #define TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_WITH_AES_256_CBC_SHA"
  624. #define TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA"
  625. #define TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA"
  626. #define TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305 "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
  627. #define TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"
  628. #define TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"
  629. #define TLS1_RFC_PSK_WITH_CHACHA20_POLY1305 "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256"
  630. #define TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305 "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256"
  631. #define TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305 "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256"
  632. #define TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305 "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256"
  633. #define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256"
  634. #define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256"
  635. #define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"
  636. #define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256"
  637. #define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256"
  638. #define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256"
  639. #define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256"
  640. #define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256"
  641. #define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"
  642. #define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA"
  643. #define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA"
  644. #define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA"
  645. #define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA"
  646. #define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA"
  647. #define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA"
  648. #define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA"
  649. #define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256"
  650. #define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384"
  651. #define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256"
  652. #define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384"
  653. #define TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256"
  654. #define TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384"
  655. #define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"
  656. #define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"
  657. #define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256"
  658. #define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384"
  659. #define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256"
  660. #define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384"
  661. #define TLS1_RFC_RSA_WITH_SEED_SHA "TLS_RSA_WITH_SEED_CBC_SHA"
  662. #define TLS1_RFC_DHE_DSS_WITH_SEED_SHA "TLS_DHE_DSS_WITH_SEED_CBC_SHA"
  663. #define TLS1_RFC_DHE_RSA_WITH_SEED_SHA "TLS_DHE_RSA_WITH_SEED_CBC_SHA"
  664. #define TLS1_RFC_ADH_WITH_SEED_SHA "TLS_DH_anon_WITH_SEED_CBC_SHA"
  665. #define TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA "TLS_ECDHE_PSK_WITH_RC4_128_SHA"
  666. #define TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA "TLS_ECDH_anon_WITH_RC4_128_SHA"
  667. #define TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA"
  668. #define TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA "TLS_ECDHE_RSA_WITH_RC4_128_SHA"
  669. #define TLS1_RFC_PSK_WITH_RC4_128_SHA "TLS_PSK_WITH_RC4_128_SHA"
  670. #define TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA "TLS_RSA_PSK_WITH_RC4_128_SHA"
  671. #define TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA "TLS_DHE_PSK_WITH_RC4_128_SHA"
  672. #define TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_WITH_ARIA_128_GCM_SHA256"
  673. #define TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_WITH_ARIA_256_GCM_SHA384"
  674. #define TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256"
  675. #define TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384"
  676. #define TLS1_RFC_DH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256"
  677. #define TLS1_RFC_DH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384"
  678. #define TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256"
  679. #define TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384"
  680. #define TLS1_RFC_DH_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256"
  681. #define TLS1_RFC_DH_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384"
  682. #define TLS1_RFC_DH_anon_WITH_ARIA_128_GCM_SHA256 "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256"
  683. #define TLS1_RFC_DH_anon_WITH_ARIA_256_GCM_SHA384 "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384"
  684. #define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256"
  685. #define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384"
  686. #define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256"
  687. #define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384"
  688. #define TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256"
  689. #define TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384"
  690. #define TLS1_RFC_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256"
  691. #define TLS1_RFC_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384"
  692. #define TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_PSK_WITH_ARIA_128_GCM_SHA256"
  693. #define TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_PSK_WITH_ARIA_256_GCM_SHA384"
  694. #define TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256"
  695. #define TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384"
  696. #define TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256"
  697. #define TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384"
  698. /*
  699. * XXX Backward compatibility alert: Older versions of OpenSSL gave some DHE
  700. * ciphers names with "EDH" instead of "DHE". Going forward, we should be
  701. * using DHE everywhere, though we may indefinitely maintain aliases for
  702. * users or configurations that used "EDH"
  703. */
  704. #define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA"
  705. #define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA"
  706. #define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA"
  707. #define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA"
  708. /* AES ciphersuites from RFC3268 */
  709. #define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA"
  710. #define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA"
  711. #define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA"
  712. #define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA"
  713. #define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA"
  714. #define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA"
  715. #define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA"
  716. #define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA"
  717. #define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA"
  718. #define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA"
  719. #define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA"
  720. #define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA"
  721. /* ECC ciphersuites from RFC4492 */
  722. #define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA"
  723. #define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA"
  724. #define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA"
  725. #define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA"
  726. #define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA"
  727. #define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA"
  728. #define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA"
  729. #define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA"
  730. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA"
  731. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA"
  732. #define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA"
  733. #define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA"
  734. #define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA"
  735. #define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA"
  736. #define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA"
  737. #define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA"
  738. #define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA"
  739. #define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA"
  740. #define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA"
  741. #define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA"
  742. #define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA"
  743. #define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA"
  744. #define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA"
  745. #define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA"
  746. #define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA"
  747. /* PSK ciphersuites from RFC 4279 */
  748. #define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA"
  749. #define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA"
  750. #define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA"
  751. #define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA"
  752. #define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA"
  753. #define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA"
  754. #define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA"
  755. #define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA"
  756. #define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA"
  757. #define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA"
  758. #define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA"
  759. #define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA"
  760. /* PSK ciphersuites from RFC 5487 */
  761. #define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256"
  762. #define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384"
  763. #define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256"
  764. #define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384"
  765. #define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256"
  766. #define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384"
  767. #define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256"
  768. #define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384"
  769. #define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256"
  770. #define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384"
  771. #define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256"
  772. #define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384"
  773. #define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256"
  774. #define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384"
  775. #define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256"
  776. #define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384"
  777. #define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256"
  778. #define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384"
  779. /* SRP ciphersuite from RFC 5054 */
  780. #define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA"
  781. #define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA"
  782. #define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA"
  783. #define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA"
  784. #define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA"
  785. #define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA"
  786. #define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA"
  787. #define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA"
  788. #define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA"
  789. /* Camellia ciphersuites from RFC4132 */
  790. #define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA"
  791. #define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA"
  792. #define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA"
  793. #define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA"
  794. #define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA"
  795. #define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA"
  796. #define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA"
  797. #define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA"
  798. #define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA"
  799. #define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA"
  800. #define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA"
  801. #define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA"
  802. /* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */
  803. #define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256"
  804. #define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256"
  805. #define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256"
  806. #define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256"
  807. #define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256"
  808. #define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256"
  809. #define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256"
  810. #define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256"
  811. #define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256"
  812. #define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256"
  813. #define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256"
  814. #define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256"
  815. #define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256"
  816. #define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384"
  817. #define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256"
  818. #define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384"
  819. #define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256"
  820. #define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384"
  821. #define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256"
  822. #define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384"
  823. /* SEED ciphersuites from RFC4162 */
  824. #define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA"
  825. #define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA"
  826. #define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA"
  827. #define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA"
  828. #define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA"
  829. #define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA"
  830. /* TLS v1.2 ciphersuites */
  831. #define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256"
  832. #define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256"
  833. #define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256"
  834. #define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256"
  835. #define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256"
  836. #define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256"
  837. #define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256"
  838. #define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256"
  839. #define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256"
  840. #define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256"
  841. #define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256"
  842. #define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256"
  843. #define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256"
  844. /* TLS v1.2 GCM ciphersuites from RFC5288 */
  845. #define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256"
  846. #define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384"
  847. #define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256"
  848. #define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384"
  849. #define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256"
  850. #define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384"
  851. #define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256"
  852. #define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384"
  853. #define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256"
  854. #define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384"
  855. #define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256"
  856. #define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384"
  857. /* CCM ciphersuites from RFC6655 */
  858. #define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM"
  859. #define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM"
  860. #define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM"
  861. #define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM"
  862. #define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8"
  863. #define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8"
  864. #define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8"
  865. #define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8"
  866. #define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM"
  867. #define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM"
  868. #define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM"
  869. #define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM"
  870. #define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8"
  871. #define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8"
  872. #define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8"
  873. #define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8"
  874. /* CCM ciphersuites from RFC7251 */
  875. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM"
  876. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM"
  877. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8"
  878. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8"
  879. /* ECDH HMAC based ciphersuites from RFC5289 */
  880. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256"
  881. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384"
  882. #define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256"
  883. #define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384"
  884. #define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256"
  885. #define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384"
  886. #define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256"
  887. #define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384"
  888. /* ECDH GCM based ciphersuites from RFC5289 */
  889. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256"
  890. #define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384"
  891. #define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256"
  892. #define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384"
  893. #define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256"
  894. #define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384"
  895. #define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256"
  896. #define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384"
  897. /* TLS v1.2 PSK GCM ciphersuites from RFC5487 */
  898. #define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256"
  899. #define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384"
  900. /* ECDHE PSK ciphersuites from RFC 5489 */
  901. #define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA"
  902. #define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA"
  903. #define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA"
  904. #define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA"
  905. #define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256"
  906. #define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384"
  907. #define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA"
  908. #define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256"
  909. #define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384"
  910. /* Camellia-CBC ciphersuites from RFC6367 */
  911. #define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256"
  912. #define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384"
  913. #define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256"
  914. #define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384"
  915. #define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256"
  916. #define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384"
  917. #define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256"
  918. #define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384"
  919. /* draft-ietf-tls-chacha20-poly1305-03 */
  920. #define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305"
  921. #define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305"
  922. #define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305"
  923. #define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305"
  924. #define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305"
  925. #define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305"
  926. #define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305"
  927. /* Aria ciphersuites from RFC6209 */
  928. #define TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256 "ARIA128-GCM-SHA256"
  929. #define TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384 "ARIA256-GCM-SHA384"
  930. #define TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "DHE-RSA-ARIA128-GCM-SHA256"
  931. #define TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "DHE-RSA-ARIA256-GCM-SHA384"
  932. #define TLS1_TXT_DH_RSA_WITH_ARIA_128_GCM_SHA256 "DH-RSA-ARIA128-GCM-SHA256"
  933. #define TLS1_TXT_DH_RSA_WITH_ARIA_256_GCM_SHA384 "DH-RSA-ARIA256-GCM-SHA384"
  934. #define TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "DHE-DSS-ARIA128-GCM-SHA256"
  935. #define TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "DHE-DSS-ARIA256-GCM-SHA384"
  936. #define TLS1_TXT_DH_DSS_WITH_ARIA_128_GCM_SHA256 "DH-DSS-ARIA128-GCM-SHA256"
  937. #define TLS1_TXT_DH_DSS_WITH_ARIA_256_GCM_SHA384 "DH-DSS-ARIA256-GCM-SHA384"
  938. #define TLS1_TXT_DH_anon_WITH_ARIA_128_GCM_SHA256 "ADH-ARIA128-GCM-SHA256"
  939. #define TLS1_TXT_DH_anon_WITH_ARIA_256_GCM_SHA384 "ADH-ARIA256-GCM-SHA384"
  940. #define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ECDSA-ARIA128-GCM-SHA256"
  941. #define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ECDSA-ARIA256-GCM-SHA384"
  942. #define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ECDSA-ARIA128-GCM-SHA256"
  943. #define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ECDSA-ARIA256-GCM-SHA384"
  944. #define TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ARIA128-GCM-SHA256"
  945. #define TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ARIA256-GCM-SHA384"
  946. #define TLS1_TXT_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ARIA128-GCM-SHA256"
  947. #define TLS1_TXT_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ARIA256-GCM-SHA384"
  948. #define TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256 "PSK-ARIA128-GCM-SHA256"
  949. #define TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384 "PSK-ARIA256-GCM-SHA384"
  950. #define TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "DHE-PSK-ARIA128-GCM-SHA256"
  951. #define TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "DHE-PSK-ARIA256-GCM-SHA384"
  952. #define TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "RSA-PSK-ARIA128-GCM-SHA256"
  953. #define TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "RSA-PSK-ARIA256-GCM-SHA384"
  954. #define TLS_CT_RSA_SIGN 1
  955. #define TLS_CT_DSS_SIGN 2
  956. #define TLS_CT_RSA_FIXED_DH 3
  957. #define TLS_CT_DSS_FIXED_DH 4
  958. #define TLS_CT_ECDSA_SIGN 64
  959. #define TLS_CT_RSA_FIXED_ECDH 65
  960. #define TLS_CT_ECDSA_FIXED_ECDH 66
  961. #define TLS_CT_GOST01_SIGN 22
  962. #define TLS_CT_GOST12_IANA_SIGN 67
  963. #define TLS_CT_GOST12_IANA_512_SIGN 68
  964. #define TLS_CT_GOST12_LEGACY_SIGN 238
  965. #define TLS_CT_GOST12_LEGACY_512_SIGN 239
  966. #ifndef OPENSSL_NO_DEPRECATED_3_0
  967. #define TLS_CT_GOST12_SIGN TLS_CT_GOST12_LEGACY_SIGN
  968. #define TLS_CT_GOST12_512_SIGN TLS_CT_GOST12_LEGACY_512_SIGN
  969. #endif
  970. /*
  971. * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see
  972. * comment there)
  973. */
  974. #define TLS_CT_NUMBER 12
  975. #if defined(SSL3_CT_NUMBER)
  976. #if TLS_CT_NUMBER != SSL3_CT_NUMBER
  977. #error "SSL/TLS CT_NUMBER values do not match"
  978. #endif
  979. #endif
  980. #define TLS1_FINISH_MAC_LENGTH 12
  981. #define TLS_MD_MAX_CONST_SIZE 22
  982. #define TLS_MD_CLIENT_FINISH_CONST "client finished"
  983. #define TLS_MD_CLIENT_FINISH_CONST_SIZE 15
  984. #define TLS_MD_SERVER_FINISH_CONST "server finished"
  985. #define TLS_MD_SERVER_FINISH_CONST_SIZE 15
  986. #define TLS_MD_KEY_EXPANSION_CONST "key expansion"
  987. #define TLS_MD_KEY_EXPANSION_CONST_SIZE 13
  988. #define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key"
  989. #define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16
  990. #define TLS_MD_SERVER_WRITE_KEY_CONST "server write key"
  991. #define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16
  992. #define TLS_MD_IV_BLOCK_CONST "IV block"
  993. #define TLS_MD_IV_BLOCK_CONST_SIZE 8
  994. #define TLS_MD_MASTER_SECRET_CONST "master secret"
  995. #define TLS_MD_MASTER_SECRET_CONST_SIZE 13
  996. #define TLS_MD_EXTENDED_MASTER_SECRET_CONST "extended master secret"
  997. #define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22
  998. #ifdef CHARSET_EBCDIC
  999. #undef TLS_MD_CLIENT_FINISH_CONST
  1000. /*
  1001. * client finished
  1002. */
  1003. #define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64"
  1004. #undef TLS_MD_SERVER_FINISH_CONST
  1005. /*
  1006. * server finished
  1007. */
  1008. #define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64"
  1009. #undef TLS_MD_SERVER_WRITE_KEY_CONST
  1010. /*
  1011. * server write key
  1012. */
  1013. #define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"
  1014. #undef TLS_MD_KEY_EXPANSION_CONST
  1015. /*
  1016. * key expansion
  1017. */
  1018. #define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e"
  1019. #undef TLS_MD_CLIENT_WRITE_KEY_CONST
  1020. /*
  1021. * client write key
  1022. */
  1023. #define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"
  1024. #undef TLS_MD_SERVER_WRITE_KEY_CONST
  1025. /*
  1026. * server write key
  1027. */
  1028. #define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79"
  1029. #undef TLS_MD_IV_BLOCK_CONST
  1030. /*
  1031. * IV block
  1032. */
  1033. #define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b"
  1034. #undef TLS_MD_MASTER_SECRET_CONST
  1035. /*
  1036. * master secret
  1037. */
  1038. #define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74"
  1039. #undef TLS_MD_EXTENDED_MASTER_SECRET_CONST
  1040. /*
  1041. * extended master secret
  1042. */
  1043. #define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74"
  1044. #endif
  1045. /* TLS Session Ticket extension struct */
  1046. struct tls_session_ticket_ext_st
  1047. {
  1048. unsigned short length;
  1049. void* data;
  1050. };
  1051. #ifdef __cplusplus
  1052. }
  1053. #endif
  1054. #endif