#pragma pack(1)\r
\r
///\r
-/// TLS Cipher Suite, refers to A.5 of rfc-2246, rfc-4346 and rfc-5246.\r
+/// TLS Cipher Suite, refers to A.5 of rfc-2246, rfc-4346, rfc-5246, rfc-5288 and rfc-5289.\r
///\r
-#define TLS_RSA_WITH_NULL_MD5 {0x00, 0x01}\r
-#define TLS_RSA_WITH_NULL_SHA {0x00, 0x02}\r
-#define TLS_RSA_WITH_RC4_128_MD5 {0x00, 0x04}\r
-#define TLS_RSA_WITH_RC4_128_SHA {0x00, 0x05}\r
-#define TLS_RSA_WITH_IDEA_CBC_SHA {0x00, 0x07}\r
-#define TLS_RSA_WITH_DES_CBC_SHA {0x00, 0x09}\r
-#define TLS_RSA_WITH_3DES_EDE_CBC_SHA {0x00, 0x0A}\r
-#define TLS_DH_DSS_WITH_DES_CBC_SHA {0x00, 0x0C}\r
-#define TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA {0x00, 0x0D}\r
-#define TLS_DH_RSA_WITH_DES_CBC_SHA {0x00, 0x0F}\r
-#define TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA {0x00, 0x10}\r
-#define TLS_DHE_DSS_WITH_DES_CBC_SHA {0x00, 0x12}\r
-#define TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA {0x00, 0x13}\r
-#define TLS_DHE_RSA_WITH_DES_CBC_SHA {0x00, 0x15}\r
-#define TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA {0x00, 0x16}\r
-#define TLS_RSA_WITH_AES_128_CBC_SHA {0x00, 0x2F}\r
-#define TLS_DH_DSS_WITH_AES_128_CBC_SHA {0x00, 0x30}\r
-#define TLS_DH_RSA_WITH_AES_128_CBC_SHA {0x00, 0x31}\r
-#define TLS_DHE_DSS_WITH_AES_128_CBC_SHA {0x00, 0x32}\r
-#define TLS_DHE_RSA_WITH_AES_128_CBC_SHA {0x00, 0x33}\r
-#define TLS_RSA_WITH_AES_256_CBC_SHA {0x00, 0x35}\r
-#define TLS_DH_DSS_WITH_AES_256_CBC_SHA {0x00, 0x36}\r
-#define TLS_DH_RSA_WITH_AES_256_CBC_SHA {0x00, 0x37}\r
-#define TLS_DHE_DSS_WITH_AES_256_CBC_SHA {0x00, 0x38}\r
-#define TLS_DHE_RSA_WITH_AES_256_CBC_SHA {0x00, 0x39}\r
-#define TLS_RSA_WITH_NULL_SHA256 {0x00, 0x3B}\r
-#define TLS_RSA_WITH_AES_128_CBC_SHA256 {0x00, 0x3C}\r
-#define TLS_RSA_WITH_AES_256_CBC_SHA256 {0x00, 0x3D}\r
-#define TLS_DH_DSS_WITH_AES_128_CBC_SHA256 {0x00, 0x3E}\r
-#define TLS_DH_RSA_WITH_AES_128_CBC_SHA256 {0x00, 0x3F}\r
-#define TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 {0x00, 0x40}\r
-#define TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 {0x00, 0x67}\r
-#define TLS_DH_DSS_WITH_AES_256_CBC_SHA256 {0x00, 0x68}\r
-#define TLS_DH_RSA_WITH_AES_256_CBC_SHA256 {0x00, 0x69}\r
-#define TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 {0x00, 0x6A}\r
-#define TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 {0x00, 0x6B}\r
+#define TLS_RSA_WITH_NULL_MD5 {0x00, 0x01}\r
+#define TLS_RSA_WITH_NULL_SHA {0x00, 0x02}\r
+#define TLS_RSA_WITH_RC4_128_MD5 {0x00, 0x04}\r
+#define TLS_RSA_WITH_RC4_128_SHA {0x00, 0x05}\r
+#define TLS_RSA_WITH_IDEA_CBC_SHA {0x00, 0x07}\r
+#define TLS_RSA_WITH_DES_CBC_SHA {0x00, 0x09}\r
+#define TLS_RSA_WITH_3DES_EDE_CBC_SHA {0x00, 0x0A}\r
+#define TLS_DH_DSS_WITH_DES_CBC_SHA {0x00, 0x0C}\r
+#define TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA {0x00, 0x0D}\r
+#define TLS_DH_RSA_WITH_DES_CBC_SHA {0x00, 0x0F}\r
+#define TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA {0x00, 0x10}\r
+#define TLS_DHE_DSS_WITH_DES_CBC_SHA {0x00, 0x12}\r
+#define TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA {0x00, 0x13}\r
+#define TLS_DHE_RSA_WITH_DES_CBC_SHA {0x00, 0x15}\r
+#define TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA {0x00, 0x16}\r
+#define TLS_RSA_WITH_AES_128_CBC_SHA {0x00, 0x2F}\r
+#define TLS_DH_DSS_WITH_AES_128_CBC_SHA {0x00, 0x30}\r
+#define TLS_DH_RSA_WITH_AES_128_CBC_SHA {0x00, 0x31}\r
+#define TLS_DHE_DSS_WITH_AES_128_CBC_SHA {0x00, 0x32}\r
+#define TLS_DHE_RSA_WITH_AES_128_CBC_SHA {0x00, 0x33}\r
+#define TLS_RSA_WITH_AES_256_CBC_SHA {0x00, 0x35}\r
+#define TLS_DH_DSS_WITH_AES_256_CBC_SHA {0x00, 0x36}\r
+#define TLS_DH_RSA_WITH_AES_256_CBC_SHA {0x00, 0x37}\r
+#define TLS_DHE_DSS_WITH_AES_256_CBC_SHA {0x00, 0x38}\r
+#define TLS_DHE_RSA_WITH_AES_256_CBC_SHA {0x00, 0x39}\r
+#define TLS_RSA_WITH_NULL_SHA256 {0x00, 0x3B}\r
+#define TLS_RSA_WITH_AES_128_CBC_SHA256 {0x00, 0x3C}\r
+#define TLS_RSA_WITH_AES_256_CBC_SHA256 {0x00, 0x3D}\r
+#define TLS_DH_DSS_WITH_AES_128_CBC_SHA256 {0x00, 0x3E}\r
+#define TLS_DH_RSA_WITH_AES_128_CBC_SHA256 {0x00, 0x3F}\r
+#define TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 {0x00, 0x40}\r
+#define TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 {0x00, 0x67}\r
+#define TLS_DH_DSS_WITH_AES_256_CBC_SHA256 {0x00, 0x68}\r
+#define TLS_DH_RSA_WITH_AES_256_CBC_SHA256 {0x00, 0x69}\r
+#define TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 {0x00, 0x6A}\r
+#define TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 {0x00, 0x6B}\r
+#define TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 {0x00, 0x9F}\r
+#define TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 {0xC0, 0x2B}\r
+#define TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 {0xC0, 0x2C}\r
+#define TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 {0xC0, 0x30}\r
\r
///\r
/// TLS Version, refers to A.1 of rfc-2246, rfc-4346 and rfc-5246.\r
//\r
#define TLS_CIPHERTEXT_RECORD_MAX_PAYLOAD_LENGTH 18432\r
\r
+///\r
+/// TLS Hash algorithm, refers to section 7.4.1.4.1. of rfc-5246.\r
+///\r
+typedef enum {\r
+ TlsHashAlgoNone = 0,\r
+ TlsHashAlgoMd5 = 1,\r
+ TlsHashAlgoSha1 = 2,\r
+ TlsHashAlgoSha224 = 3,\r
+ TlsHashAlgoSha256 = 4,\r
+ TlsHashAlgoSha384 = 5,\r
+ TlsHashAlgoSha512 = 6,\r
+} TLS_HASH_ALGO;\r
+\r
+///\r
+/// TLS Signature algorithm, refers to section 7.4.1.4.1. of rfc-5246.\r
+///\r
+typedef enum {\r
+ TlsSignatureAlgoAnonymous = 0,\r
+ TlsSignatureAlgoRsa = 1,\r
+ TlsSignatureAlgoDsa = 2,\r
+ TlsSignatureAlgoEcdsa = 3,\r
+} TLS_SIGNATURE_ALGO;\r
+\r
+///\r
+/// TLS Supported Elliptic Curves Extensions, refers to section 5.1.1 of rfc-8422.\r
+///\r
+typedef enum {\r
+ TlsEcNamedCurveSecp256r1 = 23,\r
+ TlsEcNamedCurveSecp384r1 = 24,\r
+ TlsEcNamedCurveSecp521r1 = 25,\r
+ TlsEcNamedCurveX25519 = 29,\r
+ TlsEcNamedCurveX448 = 30,\r
+} TLS_EC_NAMED_CURVE;\r
+\r
#pragma pack()\r
\r
#endif\r