@@ -120,23 +120,27 @@ test(U, U, 'TLS_method', U, U, 'TLSv1_2_method', 'TLSv1.2');
120120test ( U , U , 'TLS_method' , U , U , 'TLSv1_1_method' , 'TLSv1.1' ) ;
121121test ( U , U , 'TLS_method' , U , U , 'TLSv1_method' , 'TLSv1' ) ;
122122
123+ // OpenSSL 1.1.1 and 3.0 use a different error code and alert (sent to the
124+ // client) when no protocols are enabled on the server.
125+ const NO_PROTOCOLS_AVAILABLE_SERVER = common . hasOpenSSL3 ?
126+ 'ERR_SSL_NO_PROTOCOLS_AVAILABLE' : 'ERR_SSL_INTERNAL_ERROR' ;
127+ const NO_PROTOCOLS_AVAILABLE_SERVER_ALERT = common . hasOpenSSL3 ?
128+ 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' : 'ERR_SSL_TLSV1_ALERT_INTERNAL_ERROR' ;
129+
123130// SSLv23 also means "any supported protocol" greater than the default
124131// minimum (which is configurable via command line).
125132if ( DEFAULT_MIN_VERSION === 'TLSv1.3' ) {
126133 test ( U , U , 'TLSv1_2_method' , U , U , 'SSLv23_method' ,
127- U , 'ECONNRESET' , common . hasOpenSSL3 ?
128- 'ERR_SSL_NO_PROTOCOLS_AVAILABLE' : 'ERR_SSL_INTERNAL_ERROR' ) ;
134+ U , NO_PROTOCOLS_AVAILABLE_SERVER_ALERT , NO_PROTOCOLS_AVAILABLE_SERVER ) ;
129135} else {
130136 test ( U , U , 'TLSv1_2_method' , U , U , 'SSLv23_method' , 'TLSv1.2' ) ;
131137}
132138
133139if ( DEFAULT_MIN_VERSION === 'TLSv1.3' ) {
134140 test ( U , U , 'TLSv1_1_method' , U , U , 'SSLv23_method' ,
135- U , 'ECONNRESET' , common . hasOpenSSL3 ?
136- 'ERR_SSL_NO_PROTOCOLS_AVAILABLE' : 'ERR_SSL_INTERNAL_ERROR' ) ;
141+ U , NO_PROTOCOLS_AVAILABLE_SERVER_ALERT , NO_PROTOCOLS_AVAILABLE_SERVER ) ;
137142 test ( U , U , 'TLSv1_method' , U , U , 'SSLv23_method' ,
138- U , 'ECONNRESET' , common . hasOpenSSL3 ?
139- 'ERR_SSL_NO_PROTOCOLS_AVAILABLE' : 'ERR_SSL_INTERNAL_ERROR' ) ;
143+ U , NO_PROTOCOLS_AVAILABLE_SERVER_ALERT , NO_PROTOCOLS_AVAILABLE_SERVER ) ;
140144 test ( U , U , 'SSLv23_method' , U , U , 'TLSv1_1_method' ,
141145 U , 'ERR_SSL_NO_PROTOCOLS_AVAILABLE' , 'ERR_SSL_UNEXPECTED_MESSAGE' ) ;
142146 test ( U , U , 'SSLv23_method' , U , U , 'TLSv1_method' ,
@@ -145,9 +149,11 @@ if (DEFAULT_MIN_VERSION === 'TLSv1.3') {
145149
146150if ( DEFAULT_MIN_VERSION === 'TLSv1.2' ) {
147151 test ( U , U , 'TLSv1_1_method' , U , U , 'SSLv23_method' ,
148- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
152+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
153+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
149154 test ( U , U , 'TLSv1_method' , U , U , 'SSLv23_method' ,
150- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
155+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
156+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
151157 test ( U , U , 'SSLv23_method' , U , U , 'TLSv1_1_method' ,
152158 U , 'ERR_SSL_UNSUPPORTED_PROTOCOL' , 'ERR_SSL_WRONG_VERSION_NUMBER' ) ;
153159 test ( U , U , 'SSLv23_method' , U , U , 'TLSv1_method' ,
@@ -157,7 +163,8 @@ if (DEFAULT_MIN_VERSION === 'TLSv1.2') {
157163if ( DEFAULT_MIN_VERSION === 'TLSv1.1' ) {
158164 test ( U , U , 'TLSv1_1_method' , U , U , 'SSLv23_method' , 'TLSv1.1' ) ;
159165 test ( U , U , 'TLSv1_method' , U , U , 'SSLv23_method' ,
160- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
166+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
167+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
161168 test ( U , U , 'SSLv23_method' , U , U , 'TLSv1_1_method' , 'TLSv1.1' ) ;
162169 test ( U , U , 'SSLv23_method' , U , U , 'TLSv1_method' ,
163170 U , 'ERR_SSL_UNSUPPORTED_PROTOCOL' , 'ERR_SSL_WRONG_VERSION_NUMBER' ) ;
@@ -179,9 +186,11 @@ test(U, U, 'TLSv1_method', U, U, 'TLSv1_method', 'TLSv1');
179186// The default default.
180187if ( DEFAULT_MIN_VERSION === 'TLSv1.2' ) {
181188 test ( U , U , 'TLSv1_1_method' , U , U , U ,
182- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
189+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
190+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
183191 test ( U , U , 'TLSv1_method' , U , U , U ,
184- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
192+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
193+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
185194
186195 if ( DEFAULT_MAX_VERSION === 'TLSv1.2' ) {
187196 test ( U , U , U , U , U , 'TLSv1_1_method' ,
@@ -191,17 +200,20 @@ if (DEFAULT_MIN_VERSION === 'TLSv1.2') {
191200 } else {
192201 // TLS1.3 client hellos are are not understood by TLS1.1 or below.
193202 test ( U , U , U , U , U , 'TLSv1_1_method' ,
194- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
203+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
204+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
195205 test ( U , U , U , U , U , 'TLSv1_method' ,
196- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
206+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
207+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
197208 }
198209}
199210
200211// The default with --tls-v1.1.
201212if ( DEFAULT_MIN_VERSION === 'TLSv1.1' ) {
202213 test ( U , U , 'TLSv1_1_method' , U , U , U , 'TLSv1.1' ) ;
203214 test ( U , U , 'TLSv1_method' , U , U , U ,
204- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
215+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
216+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
205217 test ( U , U , U , U , U , 'TLSv1_1_method' , 'TLSv1.1' ) ;
206218
207219 if ( DEFAULT_MAX_VERSION === 'TLSv1.2' ) {
@@ -210,7 +222,8 @@ if (DEFAULT_MIN_VERSION === 'TLSv1.1') {
210222 } else {
211223 // TLS1.3 client hellos are are not understood by TLS1.1 or below.
212224 test ( U , U , U , U , U , 'TLSv1_method' ,
213- U , 'ECONNRESET' , 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
225+ U , 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ,
226+ 'ERR_SSL_UNSUPPORTED_PROTOCOL' ) ;
214227 }
215228}
216229
0 commit comments