mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
1402fef098
Currently when node is build --without-ssl and the test are run, there are a number of failing test due to tests expecting crypto support to be available. This commit fixes fixes the failure and instead skips the tests that expect crypto to be available. PR-URL: https://github.com/nodejs/node/pull/11631 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
'use strict';
|
|
const common = require('../common');
|
|
|
|
// Adding a CA certificate to contextWithCert should not also add it to
|
|
// contextWithoutCert. This is tested by trying to connect to a server that
|
|
// depends on that CA using contextWithoutCert.
|
|
|
|
const join = require('path').join;
|
|
const {
|
|
assert, connect, keys, tls
|
|
} = require(join(common.fixturesDir, 'tls-connect'));
|
|
|
|
const contextWithoutCert = tls.createSecureContext({});
|
|
const contextWithCert = tls.createSecureContext({});
|
|
contextWithCert.context.addCACert(keys.agent1.ca);
|
|
|
|
const serverOptions = {
|
|
key: keys.agent1.key,
|
|
cert: keys.agent1.cert,
|
|
};
|
|
|
|
const clientOptions = {
|
|
ca: [keys.agent1.ca],
|
|
servername: 'agent1',
|
|
rejectUnauthorized: true,
|
|
};
|
|
|
|
// This client should fail to connect because it doesn't trust the CA
|
|
// certificate.
|
|
clientOptions.secureContext = contextWithoutCert;
|
|
|
|
connect({
|
|
client: clientOptions,
|
|
server: serverOptions,
|
|
}, function(err, pair, cleanup) {
|
|
assert(err);
|
|
assert.strictEqual(err.message, 'unable to verify the first certificate');
|
|
cleanup();
|
|
|
|
// This time it should connect because contextWithCert includes the needed CA
|
|
// certificate.
|
|
clientOptions.secureContext = contextWithCert;
|
|
connect({
|
|
client: clientOptions,
|
|
server: serverOptions,
|
|
}, function(err, pair, cleanup) {
|
|
assert.ifError(err);
|
|
cleanup();
|
|
});
|
|
});
|