Index: openssl/ssl/s3_lib.c |
diff --git a/openssl/ssl/s3_lib.c b/openssl/ssl/s3_lib.c |
index a71d05a7e17af4842a5710951ad3842ed99e06be..605979bb80a8380ddf2cb0c1aee47330ba27d765 100644 |
--- a/openssl/ssl/s3_lib.c |
+++ b/openssl/ssl/s3_lib.c |
@@ -166,6 +166,11 @@ const char ssl3_version_str[]="SSLv3" OPENSSL_VERSION_PTEXT; |
#define SSL3_NUM_CIPHERS (sizeof(ssl3_ciphers)/sizeof(SSL_CIPHER)) |
+/* FIXED_NONCE_LEN is a macro that results in the correct value to set the |
+ * fixed nonce length in SSL_CIPHER.algorithms2. It's the inverse of |
+ * SSL_CIPHER_AEAD_FIXED_NONCE_LEN. */ |
+#define FIXED_NONCE_LEN(x) ((x/2)<<24) |
+ |
/* list of available SSLv3 ciphers (sorted by id) */ |
OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
@@ -1836,7 +1841,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -1868,7 +1874,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -1900,7 +1907,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -1932,7 +1940,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -1964,7 +1973,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -1996,7 +2006,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -2709,7 +2720,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -2741,7 +2753,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -2773,7 +2786,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -2805,7 +2819,8 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
SSL_AEAD, |
SSL_TLSV1_2, |
SSL_NOT_EXP|SSL_HIGH|SSL_FIPS, |
- SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4)| |
+ SSL_CIPHER_ALGORITHM2_VARIABLE_NONCE_INCLUDED_IN_RECORD, |
128, |
128, |
}, |
@@ -2889,6 +2904,51 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={ |
}, |
#endif |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305, |
+ TLS1_CK_ECDHE_RSA_CHACHA20_POLY1305, |
+ SSL_kEECDH, |
+ SSL_aRSA, |
+ SSL_CHACHA20POLY1305, |
+ SSL_AEAD, |
+ SSL_TLSV1_2, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(0), |
+ 256, |
+ 0, |
+ }, |
+ |
+ { |
+ 1, |
+ TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, |
+ TLS1_CK_ECDHE_ECDSA_CHACHA20_POLY1305, |
+ SSL_kEECDH, |
+ SSL_aECDSA, |
+ SSL_CHACHA20POLY1305, |
+ SSL_AEAD, |
+ SSL_TLSV1_2, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(0), |
+ 256, |
+ 0, |
+ }, |
+ |
+ { |
+ 1, |
+ TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305, |
+ TLS1_CK_DHE_RSA_CHACHA20_POLY1305, |
+ SSL_kEDH, |
+ SSL_aRSA, |
+ SSL_CHACHA20POLY1305, |
+ SSL_AEAD, |
+ SSL_TLSV1_2, |
+ SSL_NOT_EXP|SSL_HIGH, |
+ SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(0), |
+ 256, |
+ 0, |
+ }, |
+ |
/* end of list */ |
}; |