diff options
author | Yury Popov <github@phoenix.dj> | 2017-08-12 19:06:35 +0300 |
---|---|---|
committer | Ruben Bridgewater <ruben@bridgewater.de> | 2017-09-07 21:48:46 -0300 |
commit | 372dc86af5f17d7a8756df6458c41d2538e03e4e (patch) | |
tree | f2a22e42139b65ca5c6027ab5dba89e61df1fcd7 /test/parallel/test-tls-multi-pfx.js | |
parent | 2ffc8ac3017eb2246deb99019aacd618e5c088c3 (diff) | |
download | android-node-v8-372dc86af5f17d7a8756df6458c41d2538e03e4e.tar.gz android-node-v8-372dc86af5f17d7a8756df6458c41d2538e03e4e.tar.bz2 android-node-v8-372dc86af5f17d7a8756df6458c41d2538e03e4e.zip |
tls: multiple PFX in createSecureContext
Add support for multiple PFX files in tls.createSecureContext.
Also added support for object-style PFX pass.
PR-URL: https://github.com/nodejs/node/pull/14793
Fixes: https://github.com/nodejs/node/issues/14756
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'test/parallel/test-tls-multi-pfx.js')
-rw-r--r-- | test/parallel/test-tls-multi-pfx.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/parallel/test-tls-multi-pfx.js b/test/parallel/test-tls-multi-pfx.js new file mode 100644 index 0000000000..f750aec325 --- /dev/null +++ b/test/parallel/test-tls-multi-pfx.js @@ -0,0 +1,50 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const tls = require('tls'); +const fixtures = require('../common/fixtures'); + +const options = { + pfx: [ + { + buf: fixtures.readKey('agent1-pfx.pem'), + passphrase: 'sample' + }, + fixtures.readKey('ec-pfx.pem') + ] +}; + +const ciphers = []; + +const server = tls.createServer(options, function(conn) { + conn.end('ok'); +}).listen(0, function() { + const ecdsa = tls.connect(this.address().port, { + ciphers: 'ECDHE-ECDSA-AES256-GCM-SHA384', + rejectUnauthorized: false + }, common.mustCall(function() { + ciphers.push(ecdsa.getCipher()); + const rsa = tls.connect(server.address().port, { + ciphers: 'ECDHE-RSA-AES256-GCM-SHA384', + rejectUnauthorized: false + }, common.mustCall(function() { + ciphers.push(rsa.getCipher()); + ecdsa.end(); + rsa.end(); + server.close(); + })); + })); +}); + +process.on('exit', function() { + assert.deepStrictEqual(ciphers, [{ + name: 'ECDHE-ECDSA-AES256-GCM-SHA384', + version: 'TLSv1/SSLv3' + }, { + name: 'ECDHE-RSA-AES256-GCM-SHA384', + version: 'TLSv1/SSLv3' + }]); +}); |