libtls: Add missing cipher suite and TLS extension constants

- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256

- Encrypt then MAC
- Extended master secret
- Session ticket

and also add missing suites in the unit test.
This commit is contained in:
Pascal Knecht
2021-02-12 14:35:23 +01:00
committed by Tobias Brunner
parent d107198fcb
commit f81c04e9e3
5 changed files with 251 additions and 209 deletions
+11
View File
@@ -1,4 +1,7 @@
/* /*
* Copyright (C) 2020 Pascal Knecht
* HSR Hochschule fuer Technik Rapperswil
*
* Copyright (C) 2014 Martin Willi * Copyright (C) 2014 Martin Willi
* Copyright (C) 2014 revosec AG * Copyright (C) 2014 revosec AG
* *
@@ -170,6 +173,11 @@ START_TEST(test_cipher_names)
CHECK_NAME(TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256); CHECK_NAME(TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256);
CHECK_NAME(TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256); CHECK_NAME(TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256);
CHECK_NAME(TLS_EMPTY_RENEGOTIATION_INFO_SCSV); CHECK_NAME(TLS_EMPTY_RENEGOTIATION_INFO_SCSV);
CHECK_NAME(TLS_AES_128_GCM_SHA256);
CHECK_NAME(TLS_AES_256_GCM_SHA384);
CHECK_NAME(TLS_CHACHA20_POLY1305_SHA256);
CHECK_NAME(TLS_AES_128_CCM_SHA256);
CHECK_NAME(TLS_AES_128_CCM_8_SHA256);
CHECK_NAME(TLS_ECDH_ECDSA_WITH_NULL_SHA); CHECK_NAME(TLS_ECDH_ECDSA_WITH_NULL_SHA);
CHECK_NAME(TLS_ECDH_ECDSA_WITH_RC4_128_SHA); CHECK_NAME(TLS_ECDH_ECDSA_WITH_RC4_128_SHA);
CHECK_NAME(TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA); CHECK_NAME(TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA);
@@ -229,6 +237,9 @@ START_TEST(test_cipher_names)
CHECK_NAME(TLS_ECDHE_PSK_WITH_NULL_SHA); CHECK_NAME(TLS_ECDHE_PSK_WITH_NULL_SHA);
CHECK_NAME(TLS_ECDHE_PSK_WITH_NULL_SHA256); CHECK_NAME(TLS_ECDHE_PSK_WITH_NULL_SHA256);
CHECK_NAME(TLS_ECDHE_PSK_WITH_NULL_SHA384); CHECK_NAME(TLS_ECDHE_PSK_WITH_NULL_SHA384);
CHECK_NAME(TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256);
CHECK_NAME(TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256);
CHECK_NAME(TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256);
} }
END_TEST END_TEST
+13 -1
View File
@@ -1,4 +1,7 @@
/* /*
* Copyright (C) 2020 Pascal Knecht
* HSR Hochschule fuer Technik Rapperswil
*
* Copyright (C) 2010 Martin Willi * Copyright (C) 2010 Martin Willi
* Copyright (C) 2010 revosec AG * Copyright (C) 2010 revosec AG
* *
@@ -101,8 +104,17 @@ ENUM_NEXT(tls_extension_names,
"client certificate type", "client certificate type",
"server certificate type"); "server certificate type");
ENUM_NEXT(tls_extension_names, ENUM_NEXT(tls_extension_names,
TLS_EXT_PRE_SHARED_KEY, TLS_EXT_PSK_KEY_EXCHANGE_MODES, TLS_EXT_ENCRYPT_THEN_MAC, TLS_EXT_EXTENDED_MASTER_SECRET,
TLS_SERVER_CERTIFICATE_TYPE, TLS_SERVER_CERTIFICATE_TYPE,
"encrypt-then-mac",
"extended master secret");
ENUM_NEXT(tls_extension_names,
TLS_EXT_SESSION_TICKET, TLS_EXT_SESSION_TICKET,
TLS_EXT_EXTENDED_MASTER_SECRET,
"session ticket");
ENUM_NEXT(tls_extension_names,
TLS_EXT_PRE_SHARED_KEY, TLS_EXT_PSK_KEY_EXCHANGE_MODES,
TLS_EXT_SESSION_TICKET,
"pre-shared key", "pre-shared key",
"early data", "early data",
"supported versions", "supported versions",
+9
View File
@@ -1,4 +1,7 @@
/* /*
* Copyright (C) 2020 Pascal Knecht
* HSR Hochschule fuer Technik Rapperswil
*
* Copyright (C) 2010 Martin Willi * Copyright (C) 2010 Martin Willi
* Copyright (C) 2010 revosec AG * Copyright (C) 2010 revosec AG
* *
@@ -156,6 +159,12 @@ enum tls_extension_t {
TLS_CLIENT_CERTIFICATE_TYPE = 19, TLS_CLIENT_CERTIFICATE_TYPE = 19,
/** exchange raw public key, server side*/ /** exchange raw public key, server side*/
TLS_SERVER_CERTIFICATE_TYPE = 20, TLS_SERVER_CERTIFICATE_TYPE = 20,
/** use encrypt-then-MAC security mechanism RFC 7366 */
TLS_EXT_ENCRYPT_THEN_MAC = 22,
/** bind master secret to handshake data RFC 7627 */
TLS_EXT_EXTENDED_MASTER_SECRET = 23,
/** session resumption without server-side state RFC 5077 */
TLS_EXT_SESSION_TICKET = 35,
/** negotiate identity of the psk **/ /** negotiate identity of the psk **/
TLS_EXT_PRE_SHARED_KEY = 41, TLS_EXT_PRE_SHARED_KEY = 41,
/** send data in 0-RTT when psk is used and early data is allowed **/ /** send data in 0-RTT when psk is used and early data is allowed **/
+8 -1
View File
@@ -251,7 +251,14 @@ ENUM_NEXT(tls_cipher_suite_names, TLS_ECDH_ECDSA_WITH_NULL_SHA,
"TLS_ECDHE_PSK_WITH_NULL_SHA", "TLS_ECDHE_PSK_WITH_NULL_SHA",
"TLS_ECDHE_PSK_WITH_NULL_SHA256", "TLS_ECDHE_PSK_WITH_NULL_SHA256",
"TLS_ECDHE_PSK_WITH_NULL_SHA384"); "TLS_ECDHE_PSK_WITH_NULL_SHA384");
ENUM_END(tls_cipher_suite_names, TLS_ECDHE_PSK_WITH_NULL_SHA384); ENUM_NEXT(tls_cipher_suite_names, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_ECDHE_PSK_WITH_NULL_SHA384,
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
"TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256");
ENUM_END(tls_cipher_suite_names, TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256);
ENUM(tls_hash_algorithm_names, TLS_HASH_NONE, TLS_HASH_SHA512, ENUM(tls_hash_algorithm_names, TLS_HASH_NONE, TLS_HASH_SHA512,
"NONE", "NONE",
+4 -1
View File
@@ -260,7 +260,10 @@ enum tls_cipher_suite_t {
TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 0xC038, TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 0xC038,
TLS_ECDHE_PSK_WITH_NULL_SHA = 0xC039, TLS_ECDHE_PSK_WITH_NULL_SHA = 0xC039,
TLS_ECDHE_PSK_WITH_NULL_SHA256 = 0xC03A, TLS_ECDHE_PSK_WITH_NULL_SHA256 = 0xC03A,
TLS_ECDHE_PSK_WITH_NULL_SHA384 = 0xC03B TLS_ECDHE_PSK_WITH_NULL_SHA384 = 0xC03B,
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA8,
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA9,
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCAA,
}; };
/** /**