mirror of https://github.com/lukechilds/node.git
Browse Source
PR-URL: https://github.com/nodejs/node/pull/10389 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>v6
2 changed files with 96 additions and 0 deletions
@ -0,0 +1,50 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
|
|||
// Check cert chain is received by client, and is completed with the ca cert
|
|||
// known to the client.
|
|||
|
|||
const join = require('path').join; |
|||
const { |
|||
assert, connect, debug, keys |
|||
} = require(join(common.fixturesDir, 'tls-connect'))(); |
|||
|
|||
// agent6-cert.pem includes cert for agent6 and ca3
|
|||
connect({ |
|||
client: { |
|||
checkServerIdentity: (servername, cert) => { }, |
|||
ca: keys.agent6.ca, |
|||
}, |
|||
server: { |
|||
cert: keys.agent6.cert, |
|||
key: keys.agent6.key, |
|||
}, |
|||
}, function(err, pair, cleanup) { |
|||
assert.ifError(err); |
|||
|
|||
const peer = pair.client.conn.getPeerCertificate(); |
|||
debug('peer:\n', peer); |
|||
assert.strictEqual(peer.subject.emailAddress, 'adam.lippai@tresorit.com'); |
|||
assert.strictEqual(peer.subject.CN, 'Ádám Lippai'), |
|||
assert.strictEqual(peer.issuer.CN, 'ca3'); |
|||
assert.strictEqual(peer.serialNumber, 'C4CD893EF9A75DCC'); |
|||
|
|||
const next = pair.client.conn.getPeerCertificate(true).issuerCertificate; |
|||
const root = next.issuerCertificate; |
|||
delete next.issuerCertificate; |
|||
debug('next:\n', next); |
|||
assert.strictEqual(next.subject.CN, 'ca3'); |
|||
assert.strictEqual(next.issuer.CN, 'ca1'); |
|||
assert.strictEqual(next.serialNumber, '9A84ABCFB8A72ABF'); |
|||
|
|||
debug('root:\n', root); |
|||
assert.strictEqual(root.subject.CN, 'ca1'); |
|||
assert.strictEqual(root.issuer.CN, 'ca1'); |
|||
assert.strictEqual(root.serialNumber, '8DF21C01468AF393'); |
|||
|
|||
// No client cert, so empty object returned.
|
|||
assert.deepStrictEqual(pair.server.conn.getPeerCertificate(), {}); |
|||
assert.deepStrictEqual(pair.server.conn.getPeerCertificate(true), {}); |
|||
|
|||
return cleanup(); |
|||
}); |
@ -0,0 +1,46 @@ |
|||
'use strict'; |
|||
const common = require('../common'); |
|||
|
|||
// Check cert chain is received by client, and is completed with the ca cert
|
|||
// known to the client.
|
|||
|
|||
const join = require('path').join; |
|||
const { |
|||
assert, connect, debug, keys |
|||
} = require(join(common.fixturesDir, 'tls-connect'))(); |
|||
|
|||
|
|||
// agent6-cert.pem includes cert for agent6 and ca3, split it apart and
|
|||
// provide ca3 in the .ca property.
|
|||
const agent6Chain = keys.agent6.cert.split('-----END CERTIFICATE-----') |
|||
.map((c) => { return c + '-----END CERTIFICATE-----'; }); |
|||
const agent6End = agent6Chain[0]; |
|||
const agent6Middle = agent6Chain[1]; |
|||
connect({ |
|||
client: { |
|||
checkServerIdentity: (servername, cert) => { }, |
|||
ca: keys.agent6.ca, |
|||
}, |
|||
server: { |
|||
cert: agent6End, |
|||
key: keys.agent6.key, |
|||
ca: agent6Middle, |
|||
}, |
|||
}, function(err, pair, cleanup) { |
|||
assert.ifError(err); |
|||
|
|||
const peer = pair.client.conn.getPeerCertificate(); |
|||
debug('peer:\n', peer); |
|||
assert.strictEqual(peer.serialNumber, 'C4CD893EF9A75DCC'); |
|||
|
|||
const next = pair.client.conn.getPeerCertificate(true).issuerCertificate; |
|||
const root = next.issuerCertificate; |
|||
delete next.issuerCertificate; |
|||
debug('next:\n', next); |
|||
assert.strictEqual(next.serialNumber, '9A84ABCFB8A72ABF'); |
|||
|
|||
debug('root:\n', root); |
|||
assert.strictEqual(root.serialNumber, '8DF21C01468AF393'); |
|||
|
|||
return cleanup(); |
|||
}); |
Loading…
Reference in new issue