node/test/parallel/test-tls-getcipher.js
Stefan Budeanu e499ea849c test: skip/replace weak crypto tests in FIPS mode
FIPS 140-2 does not permit the use of MD5 and RC4, skip or tests
that use them, or substitute with stronger crypto where applicable.

PR-URL: https://github.com/nodejs/node/pull/3757
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: James Snell <jasnell@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-11-19 16:31:11 -05:00

45 lines
1.1 KiB
JavaScript

'use strict';
var common = require('../common');
var assert = require('assert');
if (!common.hasCrypto) {
console.log('1..0 # Skipped: missing crypto');
return;
}
var tls = require('tls');
var fs = require('fs');
var cipher_list = ['AES128-SHA256', 'AES256-SHA256'];
var cipher_version_pattern = /TLS|SSL/;
var options = {
key: fs.readFileSync(common.fixturesDir + '/keys/agent2-key.pem'),
cert: fs.readFileSync(common.fixturesDir + '/keys/agent2-cert.pem'),
ciphers: cipher_list.join(':'),
honorCipherOrder: true
};
var nconns = 0;
process.on('exit', function() {
assert.equal(nconns, 1);
});
var server = tls.createServer(options, function(cleartextStream) {
nconns++;
});
server.listen(common.PORT, '127.0.0.1', function() {
var client = tls.connect({
host: '127.0.0.1',
port: common.PORT,
ciphers: cipher_list.join(':'),
rejectUnauthorized: false
}, function() {
var cipher = client.getCipher();
assert.equal(cipher.name, cipher_list[0]);
assert(cipher_version_pattern.test(cipher.version));
client.end();
server.close();
});
});