| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -6,7 +6,6 @@ if (!common.hasCrypto) { | |||
| 6 | 6 | } | |
| 7 | 7 | ||
| 8 | 8 | const { | |
| 9 | - hasOpenSSL, | ||
| 10 | 9 | hasOpenSSL3, | |
| 11 | 10 | } = require('../common/crypto'); | |
| 12 | 11 | ||
@@ -34,18 +33,15 @@ const max_iter = 20; | |||
| 34 | 33 | let iter = 0; | |
| 35 | 34 | ||
| 36 | 35 | const errorHandler = common.mustCall((err) => { | |
| 37 | - let expectedErrorCode = 'ERR_SSL_WRONG_VERSION_NUMBER'; | ||
| 38 | - let expectedErrorReason = /wrong[\s_]version[\s_]number/i; | ||
| 39 | - if (hasOpenSSL(3, 2)) { | ||
| 40 | - expectedErrorCode = 'ERR_SSL_PACKET_LENGTH_TOO_LONG'; | ||
| 41 | - expectedErrorReason = /packet[\s_]length[\s_]too[\s_]long/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 | + /ERR_SSL_(WRONG_VERSION_NUMBER|PACKET_LENGTH_TOO_LONG|BAD_RECORD_TYPE)/); | ||
| 45 | 40 | assert.strictEqual(err.library, 'SSL routines'); | |
| 46 | 41 | if (!hasOpenSSL3 && !process.features.openssl_is_boringssl) | |
| 47 | 42 | assert.strictEqual(err.function, 'ssl3_get_record'); | |
| 48 | - assert.match(err.reason, expectedErrorReason); | ||
| 43 | + assert.match(err.reason, | ||
| 44 | + /wrong[\s_]version[\s_]number|packet[\s_]length[\s_]too[\s_]long|bad[\s_]record[\s_]type/i); | ||
| 49 | 45 | errorReceived = true; | |
| 50 | 46 | if (canCloseServer()) | |
| 51 | 47 | server.close(); | |
@@ -98,16 +94,14 @@ function sendBADTLSRecord() { | |||
| 98 | 94 | }); | |
| 99 | 95 | })); | |
| 100 | 96 | client.on('error', common.mustCall((err) => { | |
| 101 | - let expectedErrorCode = 'ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION'; | ||
| 102 | - let expectedErrorReason = /tlsv1[\s_]alert[\s_]protocol[\s_]version/i; | ||
| 103 | - if (hasOpenSSL(3, 2)) { | ||
| 104 | - expectedErrorCode = 'ERR_SSL_TLSV1_ALERT_RECORD_OVERFLOW'; | ||
| 105 | - expectedErrorReason = /tlsv1[\s_]alert[\s_]record[\s_]overflow/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 | + /ERR_SSL_(TLSV1_ALERT_PROTOCOL_VERSION|TLSV1_ALERT_RECORD_OVERFLOW|SSL\/TLS_ALERT_UNEXPECTED_MESSAGE)/); | ||
| 108 | 101 | assert.strictEqual(err.library, 'SSL routines'); | |
| 109 | 102 | if (!hasOpenSSL3 && !process.features.openssl_is_boringssl) | |
| 110 | 103 | assert.strictEqual(err.function, 'ssl3_read_bytes'); | |
| 111 | - assert.match(err.reason, expectedErrorReason); | ||
| 104 | + assert.match(err.reason, | ||
| 105 | + /tlsv1[\s_]alert[\s_]protocol[\s_]version|tlsv1[\s_]alert[\s_]record[\s_]overflow|ssl\/tls[\s_]alert[\s_]unexpected[\s_]message/i); | ||
| 112 | 106 | })); | |
| 113 | 107 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -5,8 +5,6 @@ if (!common.hasCrypto) { | |||
| 5 | 5 | common.skip('missing crypto'); | |
| 6 | 6 | } | |
| 7 | 7 | ||
| 8 | - const { hasOpenSSL } = require('../common/crypto'); | ||
| 9 | - | ||
| 10 | 8 | const assert = require('assert'); | |
| 11 | 9 | const https = require('https'); | |
| 12 | 10 | const net = require('net'); | |
@@ -23,10 +21,10 @@ server.listen(0, common.mustCall(function() { | |||
| 23 | 21 | const req = https.request({ port: this.address().port }); | |
| 24 | 22 | req.end(); | |
| 25 | 23 | ||
| 26 | - let expectedErrorMessage = new RegExp('wrong version number'); | ||
| 27 | - if (hasOpenSSL(3, 2)) { | ||
| 28 | - expectedErrorMessage = new RegExp('packet length too long'); | ||
| 29 | - }; | ||
| 24 | + // Different OpenSSL versions report different errors for junk data on a | ||
| 25 | + // TLS connection, depending on which record validation check fires first. | ||
| 26 | + const expectedErrorMessage = | ||
| 27 | + /wrong version number|packet length too long|bad record type/; | ||
| 30 | 28 | req.once('error', common.mustCall(function(err) { | |
| 31 | 29 | assert.match(err.message, expectedErrorMessage); | |
| 32 | 30 | server.close(); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments