• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1From 7156ca9ce97c1084d7fd010146c522633ad73e7a Mon Sep 17 00:00:00 2001
2From: Adam Langley <agl@chromium.org>
3Date: Wed, 4 Sep 2013 12:21:12 -0400
4Subject: [PATCH 42/50] use_aead_for_aes_gcm.
5
6Switches AES-GCM ciphersuites to use AEAD interfaces.
7---
8 ssl/s3_lib.c | 25 +++++++++++++++----------
9 1 file changed, 15 insertions(+), 10 deletions(-)
10
11diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
12index 2cd1654..75b6560 100644
13--- a/ssl/s3_lib.c
14+++ b/ssl/s3_lib.c
15@@ -166,6 +166,11 @@ const char ssl3_version_str[]="SSLv3" OPENSSL_VERSION_PTEXT;
16
17 #define SSL3_NUM_CIPHERS	(sizeof(ssl3_ciphers)/sizeof(SSL_CIPHER))
18
19+/* FIXED_NONCE_LEN is a macro that results in the correct value to set the
20+ * fixed nonce length in SSL_CIPHER.algorithms2. It's the inverse of
21+ * SSL_CIPHER_AEAD_FIXED_NONCE_LEN. */
22+#define FIXED_NONCE_LEN(x) ((x/2)<<24)
23+
24 /* list of available SSLv3 ciphers (sorted by id) */
25 OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
26
27@@ -1836,7 +1841,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
28 	SSL_AEAD,
29 	SSL_TLSV1_2,
30 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
31-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
32+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
33 	128,
34 	128,
35 	},
36@@ -1868,7 +1873,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
37 	SSL_AEAD,
38 	SSL_TLSV1_2,
39 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
40-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
41+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
42 	128,
43 	128,
44 	},
45@@ -1900,7 +1905,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
46 	SSL_AEAD,
47 	SSL_TLSV1_2,
48 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
49-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
50+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
51 	128,
52 	128,
53 	},
54@@ -1932,7 +1937,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
55 	SSL_AEAD,
56 	SSL_TLSV1_2,
57 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
58-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
59+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
60 	128,
61 	128,
62 	},
63@@ -1964,7 +1969,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
64 	SSL_AEAD,
65 	SSL_TLSV1_2,
66 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
67-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
68+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
69 	128,
70 	128,
71 	},
72@@ -1996,7 +2001,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
73 	SSL_AEAD,
74 	SSL_TLSV1_2,
75 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
76-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
77+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
78 	128,
79 	128,
80 	},
81@@ -2709,7 +2714,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
82 	SSL_AEAD,
83 	SSL_TLSV1_2,
84 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
85-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
86+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
87 	128,
88 	128,
89 	},
90@@ -2741,7 +2746,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
91 	SSL_AEAD,
92 	SSL_TLSV1_2,
93 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
94-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
95+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
96 	128,
97 	128,
98 	},
99@@ -2773,7 +2778,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
100 	SSL_AEAD,
101 	SSL_TLSV1_2,
102 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
103-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
104+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
105 	128,
106 	128,
107 	},
108@@ -2805,7 +2810,7 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
109 	SSL_AEAD,
110 	SSL_TLSV1_2,
111 	SSL_NOT_EXP|SSL_HIGH|SSL_FIPS,
112-	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256,
113+	SSL_HANDSHAKE_MAC_SHA256|TLS1_PRF_SHA256|SSL_CIPHER_ALGORITHM2_AEAD|FIXED_NONCE_LEN(4),
114 	128,
115 	128,
116 	},
117--
1181.8.4.1
119
120