%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common'); const fixtures = require('../common/fixtures'); // This test starts an https server and tries // to connect to it using a self-signed certificate. // This certificate´s keyUsage does not include the keyCertSign // bit, which used to crash node. The test ensures node // will not crash. Key and certificate are from #37889. // Note: This test assumes that the connection will succeed. if (!common.hasCrypto) common.skip('missing crypto'); const crypto = require('crypto'); // See #37990 for details on why this is problematic with FIPS. if (process.config.variables.openssl_is_fips) common.skip('Skipping as test uses non-fips compliant EC curve'); // This test will fail for OpenSSL < 1.1.1h const minOpenSSL = 269488271; if (crypto.constants.OPENSSL_VERSION_NUMBER < minOpenSSL) common.skip('OpenSSL < 1.1.1h'); const https = require('https'); const path = require('path'); const key = fixtures.readKey(path.join('selfsigned-no-keycertsign', 'key.pem')); const cert = fixtures.readKey(path.join('selfsigned-no-keycertsign', 'cert.pem')); const serverOptions = { key: key, cert: cert }; // Start the server const httpsServer = https.createServer(serverOptions, (req, res) => { res.writeHead(200); res.end('hello world\n'); }); httpsServer.listen(0); httpsServer.on('listening', () => { // Once the server started listening, built the client config // with the server´s used port const clientOptions = { hostname: '127.0.0.1', port: httpsServer.address().port, ca: cert }; // Try to connect const req = https.request(clientOptions, common.mustCall((res) => { httpsServer.close(); })); req.on('error', common.mustNotCall()); req.end(); });