@@ -106,15 +106,86 @@ def test_context_ciphers
106106 context = OpenSSL ::SSL ::SSLContext . new
107107 context . ciphers = "ALL"
108108
109- all_ciphers = context . ciphers . map { |cipher_array | cipher_array [ 0 ] }
110-
111- expected_ciphers = [ "ECDHE-ECDSA-AES256-SHA" ,
112- "ECDHE-RSA-AES256-SHA" ,
113- "AES256-SHA" ,
114- "ECDH-ECDSA-AES256-SHA" ,
115- "ECDH-RSA-AES256-SHA" ,
116- "DHE-RSA-AES256-SHA" ,
117- "DHE-DSS-AES256-SHA" ,
109+ all_ciphers = context . ciphers . map { |cipher_array | cipher_array [ 0 ] }
110+
111+ # Java 8 (1.8.0_112-b15) :
112+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
113+ # Ignoring unavailable cipher suite: TLS_DH_anon_WITH_AES_256_CBC_SHA
114+ # Ignoring unavailable cipher suite: TLS_DH_anon_WITH_AES_256_CBC_SHA256
115+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA
116+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
117+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
118+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
119+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
120+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA
121+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
122+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
123+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384
124+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
125+ # Ignoring unavailable cipher suite: TLS_ECDH_anon_WITH_AES_256_CBC_SHA
126+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
127+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
128+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
129+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
130+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
131+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
132+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
133+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA
134+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
135+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
136+ # Ignoring unavailable cipher suite: TLS_DH_anon_WITH_AES_256_GCM_SHA384
137+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
138+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA
139+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
140+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
141+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
142+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
143+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA
144+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
145+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
146+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384
147+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
148+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
149+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
150+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
151+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
152+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
153+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
154+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
155+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA
156+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
157+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
158+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
159+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA
160+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
161+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
162+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
163+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_CBC_SHA256
164+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA
165+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
166+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
167+ # Ignoring unavailable cipher suite: TLS_RSA_WITH_AES_256_GCM_SHA384
168+ # Ignoring unavailable cipher suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
169+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
170+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
171+ # Ignoring unavailable cipher suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
172+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
173+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
174+ # Ignoring unavailable cipher suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
175+ # Ignoring unavailable cipher suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
176+ # Ignoring unavailable cipher suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA
177+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
178+ # Ignoring unavailable cipher suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
179+
180+ java_8 = ( ENV_JAVA [ 'java.version' ] == '1.8' ) || nil
181+
182+ expected_ciphers = [ java_8 && "ECDHE-ECDSA-AES256-SHA" ,
183+ java_8 && "ECDHE-RSA-AES256-SHA" ,
184+ java_8 && "AES256-SHA" ,
185+ java_8 && "ECDH-ECDSA-AES256-SHA" ,
186+ java_8 && "ECDH-RSA-AES256-SHA" ,
187+ java_8 && "DHE-RSA-AES256-SHA" ,
188+ java_8 && "DHE-DSS-AES256-SHA" ,
118189 "ECDHE-ECDSA-AES128-SHA256" ,
119190 "ECDHE-RSA-AES128-SHA256" ,
120191 "ECDH-ECDSA-AES128-SHA256" ,
@@ -133,15 +204,19 @@ def test_context_ciphers
133204 "ECDH-RSA-DES-CBC3-SHA" ,
134205 "EDH-RSA-DES-CBC3-SHA" ,
135206 "EDH-DSS-DES-CBC3-SHA" ,
136- "AECDH-AES256-SHA" ,
137- "ADH-AES256-SHA" ,
207+ java_8 && "AECDH-AES256-SHA" ,
208+ java_8 && "ADH-AES256-SHA" ,
138209 "AECDH-AES128-SHA" ,
139210 "ADH-AES128-SHA" ,
140211 "AECDH-DES-CBC3-SHA" ,
141212 "ADH-DES-CBC3-SHA" ]
142213
143- expected_ciphers . each do |cipher |
144- assert all_ciphers . include? ( cipher ) , "#{ cipher } should have been included"
145- end
214+ #expected_ciphers.compact.each do |cipher|
215+ # assert all_ciphers.include?(cipher), "#{cipher} should have been included"
216+ #end
217+
218+ diff = ( expected_ciphers - all_ciphers ) . compact
219+ assert_equal [ ] , diff
220+
146221 end if RUBY_VERSION > '1.9'
147222end
0 commit comments