mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:47:44 +00:00
LibTLS: Add DHE_RSA AES GCM cipher suites
This adds the following cipher suites: * DHE_RSA_WITH_AES_128_GCM_SHA256 * DHE_RSA_WITH_AES_256_GCM_SHA384
This commit is contained in:
parent
b288016bbc
commit
7089135a07
2 changed files with 17 additions and 7 deletions
|
@ -12,6 +12,7 @@ enum class CipherSuite {
|
||||||
Invalid = 0,
|
Invalid = 0,
|
||||||
|
|
||||||
// Weak cipher suites, but we support them
|
// Weak cipher suites, but we support them
|
||||||
|
|
||||||
// RFC 5246 - Original TLS v1.2 ciphers
|
// RFC 5246 - Original TLS v1.2 ciphers
|
||||||
RSA_WITH_AES_128_CBC_SHA = 0x002F,
|
RSA_WITH_AES_128_CBC_SHA = 0x002F,
|
||||||
RSA_WITH_AES_256_CBC_SHA = 0x0035,
|
RSA_WITH_AES_256_CBC_SHA = 0x0035,
|
||||||
|
@ -22,7 +23,14 @@ enum class CipherSuite {
|
||||||
RSA_WITH_AES_128_GCM_SHA256 = 0x009C,
|
RSA_WITH_AES_128_GCM_SHA256 = 0x009C,
|
||||||
RSA_WITH_AES_256_GCM_SHA384 = 0x009D,
|
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,
|
||||||
|
|
||||||
// All recommended cipher suites (according to https://ciphersuite.info/cs/)
|
// All recommended cipher suites (according to https://ciphersuite.info/cs/)
|
||||||
|
|
||||||
// RFC 5288 - DH, DHE and RSA for AES-GCM
|
// RFC 5288 - DH, DHE and RSA for AES-GCM
|
||||||
DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2,
|
DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2,
|
||||||
DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3,
|
DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3,
|
||||||
|
|
|
@ -164,13 +164,15 @@ enum ClientVerificationStaus {
|
||||||
// 4 bytes of fixed IV, 8 random (nonce) bytes, 4 bytes for counter
|
// 4 bytes of fixed IV, 8 random (nonce) bytes, 4 bytes for counter
|
||||||
// GCM specifically asks us to transmit only the nonce, the counter is zero
|
// GCM specifically asks us to transmit only the nonce, the counter is zero
|
||||||
// and the fixed IV is derived from the premaster key.
|
// and the fixed IV is derived from the premaster key.
|
||||||
#define ENUMERATE_CIPHERS(C) \
|
#define ENUMERATE_CIPHERS(C) \
|
||||||
C(true, CipherSuite::RSA_WITH_AES_128_CBC_SHA, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_128_CBC, Crypto::Hash::SHA1, 16, false) \
|
C(true, CipherSuite::RSA_WITH_AES_128_CBC_SHA, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_128_CBC, Crypto::Hash::SHA1, 16, false) \
|
||||||
C(true, CipherSuite::RSA_WITH_AES_256_CBC_SHA, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_256_CBC, Crypto::Hash::SHA1, 16, false) \
|
C(true, CipherSuite::RSA_WITH_AES_256_CBC_SHA, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_256_CBC, Crypto::Hash::SHA1, 16, false) \
|
||||||
C(true, CipherSuite::RSA_WITH_AES_128_CBC_SHA256, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_128_CBC, Crypto::Hash::SHA256, 16, false) \
|
C(true, CipherSuite::RSA_WITH_AES_128_CBC_SHA256, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_128_CBC, Crypto::Hash::SHA256, 16, false) \
|
||||||
C(true, CipherSuite::RSA_WITH_AES_256_CBC_SHA256, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_256_CBC, Crypto::Hash::SHA256, 16, false) \
|
C(true, CipherSuite::RSA_WITH_AES_256_CBC_SHA256, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_256_CBC, Crypto::Hash::SHA256, 16, false) \
|
||||||
C(true, CipherSuite::RSA_WITH_AES_128_GCM_SHA256, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_128_GCM, Crypto::Hash::SHA256, 8, true) \
|
C(true, CipherSuite::RSA_WITH_AES_128_GCM_SHA256, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_128_GCM, Crypto::Hash::SHA256, 8, true) \
|
||||||
C(true, CipherSuite::RSA_WITH_AES_256_GCM_SHA384, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_256_GCM, Crypto::Hash::SHA384, 8, true)
|
C(true, CipherSuite::RSA_WITH_AES_256_GCM_SHA384, KeyExchangeAlgorithm::RSA, CipherAlgorithm::AES_256_GCM, Crypto::Hash::SHA384, 8, true) \
|
||||||
|
C(true, CipherSuite::DHE_RSA_WITH_AES_128_GCM_SHA256, KeyExchangeAlgorithm::DHE_RSA, CipherAlgorithm::AES_128_GCM, Crypto::Hash::SHA256, 8, true) \
|
||||||
|
C(true, CipherSuite::DHE_RSA_WITH_AES_256_GCM_SHA384, KeyExchangeAlgorithm::DHE_RSA, CipherAlgorithm::AES_256_GCM, Crypto::Hash::SHA384, 8, true)
|
||||||
|
|
||||||
constexpr KeyExchangeAlgorithm get_key_exchange_algorithm(CipherSuite suite)
|
constexpr KeyExchangeAlgorithm get_key_exchange_algorithm(CipherSuite suite)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue