@@ -6,7 +6,6 @@ if (!common.hasCrypto) {
66}
77
88const {
9- hasOpenSSL,
109 hasOpenSSL3,
1110} = require ( '../common/crypto' ) ;
1211
@@ -34,18 +33,15 @@ const max_iter = 20;
3433let iter = 0 ;
3534
3635const errorHandler = common . mustCall ( ( err ) => {
37- let expectedErrorCode = 'ERR_SSL_WRONG_VERSION_NUMBER' ;
38- let expectedErrorReason = / w r o n g [ \s _ ] v e r s i o n [ \s _ ] n u m b e r / i;
39- if ( hasOpenSSL ( 3 , 2 ) ) {
40- expectedErrorCode = 'ERR_SSL_PACKET_LENGTH_TOO_LONG' ;
41- expectedErrorReason = / p a c k e t [ \s _ ] l e n g t h [ \s _ ] t o o [ \s _ ] l o n g / i;
42- } ;
43-
44- assert . strictEqual ( err . code , expectedErrorCode ) ;
36+ // Different OpenSSL versions report different errors for junk data on a
37+ // TLS connection, depending on which record validation check fires first.
38+ assert . match ( err . code ,
39+ / E R R _ S S L _ ( W R O N G _ V E R S I O N _ N U M B E R | P A C K E T _ L E N G T H _ T O O _ L O N G | B A D _ R E C O R D _ T Y P E ) / ) ;
4540 assert . strictEqual ( err . library , 'SSL routines' ) ;
4641 if ( ! hasOpenSSL3 && ! process . features . openssl_is_boringssl )
4742 assert . strictEqual ( err . function , 'ssl3_get_record' ) ;
48- assert . match ( err . reason , expectedErrorReason ) ;
43+ assert . match ( err . reason ,
44+ / w r o n g [ \s _ ] v e r s i o n [ \s _ ] n u m b e r | p a c k e t [ \s _ ] l e n g t h [ \s _ ] t o o [ \s _ ] l o n g | b a d [ \s _ ] r e c o r d [ \s _ ] t y p e / i) ;
4945 errorReceived = true ;
5046 if ( canCloseServer ( ) )
5147 server . close ( ) ;
@@ -98,16 +94,14 @@ function sendBADTLSRecord() {
9894 } ) ;
9995 } ) ) ;
10096 client . on ( 'error' , common . mustCall ( ( err ) => {
101- let expectedErrorCode = 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION' ;
102- let expectedErrorReason = / t l s v 1 [ \s _ ] a l e r t [ \s _ ] p r o t o c o l [ \s _ ] v e r s i o n / i;
103- if ( hasOpenSSL ( 3 , 2 ) ) {
104- expectedErrorCode = 'ERR_SSL_TLSV1_ALERT_RECORD_OVERFLOW' ;
105- expectedErrorReason = / t l s v 1 [ \s _ ] a l e r t [ \s _ ] r e c o r d [ \s _ ] o v e r f l o w / i;
106- }
107- assert . strictEqual ( err . code , expectedErrorCode ) ;
97+ // Different OpenSSL versions send different TLS alerts when the peer
98+ // receives an invalid record on an established connection.
99+ assert . match ( err . code ,
100+ / E R R _ S S L _ ( T L S V 1 _ A L E R T _ P R O T O C O L _ V E R S I O N | T L S V 1 _ A L E R T _ R E C O R D _ O V E R F L O W | S S L \/ T L S _ A L E R T _ U N E X P E C T E D _ M E S S A G E ) / ) ;
108101 assert . strictEqual ( err . library , 'SSL routines' ) ;
109102 if ( ! hasOpenSSL3 && ! process . features . openssl_is_boringssl )
110103 assert . strictEqual ( err . function , 'ssl3_read_bytes' ) ;
111- assert . match ( err . reason , expectedErrorReason ) ;
104+ assert . match ( err . reason ,
105+ / t l s v 1 [ \s _ ] a l e r t [ \s _ ] p r o t o c o l [ \s _ ] v e r s i o n | t l s v 1 [ \s _ ] a l e r t [ \s _ ] r e c o r d [ \s _ ] o v e r f l o w | s s l \/ t l s [ \s _ ] a l e r t [ \s _ ] u n e x p e c t e d [ \s _ ] m e s s a g e / i) ;
112106 } ) ) ;
113107}
0 commit comments