mirror of https://github.com/nodejs/node.git
59 lines
1.9 KiB
JavaScript
59 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
// This tests the basic functionality of tls.setDefaultCACertificates().
|
|
|
|
const common = require('../common');
|
|
if (!common.hasCrypto) common.skip('missing crypto');
|
|
|
|
const tls = require('tls');
|
|
const fixtures = require('../common/fixtures');
|
|
const { assertEqualCerts } = require('../common/tls');
|
|
|
|
const originalBundled = tls.getCACertificates('bundled');
|
|
const originalSystem = tls.getCACertificates('system');
|
|
const fixtureCert = fixtures.readKey('fake-startcom-root-cert.pem');
|
|
|
|
function testSetCertificates(certs) {
|
|
// Test setting it can be verified with tls.getCACertificates().
|
|
tls.setDefaultCACertificates(certs);
|
|
const result = tls.getCACertificates('default');
|
|
assertEqualCerts(result, certs);
|
|
|
|
// Verify that other certificate types are unchanged
|
|
const newBundled = tls.getCACertificates('bundled');
|
|
const newSystem = tls.getCACertificates('system');
|
|
assertEqualCerts(newBundled, originalBundled);
|
|
assertEqualCerts(newSystem, originalSystem);
|
|
|
|
// Test implicit defaults.
|
|
const implicitDefaults = tls.getCACertificates();
|
|
assertEqualCerts(implicitDefaults, certs);
|
|
|
|
// Test cached results.
|
|
const cachedResult = tls.getCACertificates('default');
|
|
assertEqualCerts(cachedResult, certs);
|
|
const cachedImplicitDefaults = tls.getCACertificates();
|
|
assertEqualCerts(cachedImplicitDefaults, certs);
|
|
}
|
|
|
|
// Test setting with fixture certificate.
|
|
testSetCertificates([fixtureCert]);
|
|
|
|
// Test setting with empty array.
|
|
testSetCertificates([]);
|
|
|
|
// Test setting with bundled certificates
|
|
testSetCertificates(originalBundled);
|
|
|
|
// Test combining bundled and extra certificates.
|
|
testSetCertificates([...originalBundled, fixtureCert]);
|
|
|
|
// Test setting with a subset of bundled certificates
|
|
if (originalBundled.length >= 3) {
|
|
testSetCertificates(originalBundled.slice(0, 3));
|
|
}
|
|
|
|
// Test duplicate certificates
|
|
tls.setDefaultCACertificates([fixtureCert, fixtureCert, fixtureCert]);
|
|
assertEqualCerts(tls.getCACertificates('default'), [fixtureCert]);
|