%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'); if (!common.hasCrypto) common.skip('missing crypto'); const fixtures = require('../common/fixtures'); // Test sigalgs: option for TLS. const { assert, connect, keys } = require(fixtures.path('tls-connect')); function assert_arrays_equal(left, right) { assert.strictEqual(left.length, right.length); for (let i = 0; i < left.length; i++) { assert.strictEqual(left[i], right[i]); } } function test(csigalgs, ssigalgs, shared_sigalgs, cerr, serr) { assert(shared_sigalgs || serr || cerr, 'test missing any expectations'); connect({ client: { checkServerIdentity: (servername, cert) => { }, ca: `${keys.agent1.cert}\n${keys.agent6.ca}`, cert: keys.agent2.cert, key: keys.agent2.key, sigalgs: csigalgs }, server: { cert: keys.agent6.cert, key: keys.agent6.key, ca: keys.agent2.ca, context: { requestCert: true, rejectUnauthorized: true }, sigalgs: ssigalgs }, }, common.mustCall((err, pair, cleanup) => { if (shared_sigalgs) { assert.ifError(err); assert.ifError(pair.server.err); assert.ifError(pair.client.err); assert(pair.server.conn); assert(pair.client.conn); assert_arrays_equal(pair.server.conn.getSharedSigalgs(), shared_sigalgs); } else { if (serr) { assert(pair.server.err); assert(pair.server.err.code, serr); } if (cerr) { assert(pair.client.err); assert(pair.client.err.code, cerr); } } return cleanup(); })); } // Have shared sigalgs test('RSA-PSS+SHA384', 'RSA-PSS+SHA384', ['RSA-PSS+SHA384']); test('RSA-PSS+SHA256:RSA-PSS+SHA512:ECDSA+SHA256', 'RSA-PSS+SHA256:ECDSA+SHA256', ['RSA-PSS+SHA256', 'ECDSA+SHA256']); // Do not have shared sigalgs. test('RSA-PSS+SHA384', 'ECDSA+SHA256', undefined, 'ECONNRESET', 'ERR_SSL_NO_SHARED_SIGNATURE_ALGORITMS'); test('RSA-PSS+SHA384:ECDSA+SHA256', 'ECDSA+SHA384:RSA-PSS+SHA256', undefined, 'ECONNRESET', 'ERR_SSL_NO_SHARED_SIGNATURE_ALGORITMS');