1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 01:17:35 +00:00

LibTLS: Move CipherSuite to Extensions.h

Also add missing values from the IANA registry
This commit is contained in:
stelar7 2023-04-14 00:22:24 +02:00 committed by Sam Atkins
parent da8edece29
commit e8945f15f4
4 changed files with 384 additions and 96 deletions

View file

@ -11,90 +11,6 @@
namespace TLS {
enum class CipherSuite {
Invalid = 0,
// Weak cipher suites, but we support them
// RFC 5246 - Original TLS v1.2 ciphers
RSA_WITH_AES_128_CBC_SHA = 0x002F,
RSA_WITH_AES_256_CBC_SHA = 0x0035,
RSA_WITH_AES_128_CBC_SHA256 = 0x003C,
RSA_WITH_AES_256_CBC_SHA256 = 0x003D,
// RFC 5288 - DH, DHE and RSA for AES-GCM
RSA_WITH_AES_128_GCM_SHA256 = 0x009C,
RSA_WITH_AES_256_GCM_SHA384 = 0x009D,
// Secure cipher suites, but not recommended
// RFC 5288 - DH, DHE and RSA for AES-GCM
DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009E,
DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009F,
// RFC 5289 - ECDHE for AES-GCM
ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F,
ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030,
// All recommended cipher suites (according to https://ciphersuite.info/cs/)
// RFC 5288 - DH, DHE and RSA for AES-GCM
DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2,
DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3,
// RFC 5289 - ECDHE for AES-GCM
ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B,
ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C,
// RFC 5487 - Pre-shared keys
DHE_PSK_WITH_AES_128_GCM_SHA256 = 0x00AA,
DHE_PSK_WITH_AES_256_GCM_SHA384 = 0x00AB,
// RFC 6209 - ARIA suites
DHE_DSS_WITH_ARIA_128_GCM_SHA256 = 0xC056,
DHE_DSS_WITH_ARIA_256_GCM_SHA384 = 0xC057,
ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 = 0xC05C,
ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 = 0xC05D,
DHE_PSK_WITH_ARIA_128_GCM_SHA256 = 0xC06C,
DHE_PSK_WITH_ARIA_256_GCM_SHA384 = 0xC06D,
// RFC 6367 - Camellia Cipher Suites
DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 0xC080,
DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 0xC081,
ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC086,
ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC087,
DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 0xC090,
DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 0xC091,
// RFC 6655 - DHE, PSK and RSA with AES-CCM
DHE_PSK_WITH_AES_128_CCM = 0xC0A6,
DHE_PSK_WITH_AES_256_CCM = 0xC0A7,
// RFC 7251 - ECDHE with AES-CCM
ECDHE_ECDSA_WITH_AES_128_CCM = 0xC0AC,
ECDHE_ECDSA_WITH_AES_256_CCM = 0xC0AD,
ECDHE_ECDSA_WITH_AES_128_CCM_8 = 0xC0AE,
ECDHE_ECDSA_WITH_AES_256_CCM_8 = 0xC0AF,
// RFC 7905 - ChaCha20-Poly1305 Cipher Suites
ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA9,
ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 0xCCAC,
DHE_PSK_WITH_CHACHA20_POLY1305 = 0xCCAD,
// RFC 8442 - ECDHE_PSK with AES-GCM and AES-CCM
ECDHE_PSK_WITH_AES_128_GCM_SHA256 = 0xD001,
ECDHE_PSK_WITH_AES_256_GCM_SHA384 = 0xD002,
ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = 0xD003,
ECDHE_PSK_WITH_AES_128_CCM_SHA256 = 0xD005,
// RFC 8446 - TLS v1.3
AES_128_GCM_SHA256 = 0x1301,
AES_256_GCM_SHA384 = 0x1302,
CHACHA20_POLY1305_SHA256 = 0x1303,
AES_128_CCM_SHA256 = 0x1304,
AES_128_CCM_8_SHA256 = 0x1305,
};
// Defined in RFC 5246 section 7.4.1.4.1
struct SignatureAndHashAlgorithm {
HashAlgorithm hash;