33 lines
1.1 KiB
JavaScript
33 lines
1.1 KiB
JavaScript
|
'use strict';
|
||
|
// Flags: --use-system-ca
|
||
|
// This tests that tls.getCACertificates() returns the system
|
||
|
// certificates correctly.
|
||
|
|
||
|
const common = require('../common');
|
||
|
if (!common.hasCrypto) common.skip('missing crypto');
|
||
|
|
||
|
const assert = require('assert');
|
||
|
const tls = require('tls');
|
||
|
const { assertIsCAArray } = require('../common/tls');
|
||
|
|
||
|
const systemCerts = tls.getCACertificates('system');
|
||
|
// Usually Windows come with some certificates installed by default.
|
||
|
// This can't be said about other systems, in that case check that
|
||
|
// at least systemCerts is an array (which may be empty).
|
||
|
if (common.isWindows) {
|
||
|
assertIsCAArray(systemCerts);
|
||
|
} else {
|
||
|
assert(Array.isArray(systemCerts));
|
||
|
}
|
||
|
|
||
|
// When --use-system-ca is true, default is a superset of system
|
||
|
// certificates.
|
||
|
const defaultCerts = tls.getCACertificates('default');
|
||
|
assert(defaultCerts.length >= systemCerts.length);
|
||
|
const defaultSet = new Set(defaultCerts);
|
||
|
const systemSet = new Set(systemCerts);
|
||
|
assert.deepStrictEqual(defaultSet.intersection(systemSet), systemSet);
|
||
|
|
||
|
// It's cached on subsequent accesses.
|
||
|
assert.strictEqual(systemCerts, tls.getCACertificates('system'));
|