parent
6461af1baa
commit
21724ecaec
@ -36,7 +36,7 @@ try {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function Credentials(secureProtocol) {
|
function Credentials(secureProtocol, context) {
|
||||||
if (!(this instanceof Credentials)) {
|
if (!(this instanceof Credentials)) {
|
||||||
return new Credentials(secureProtocol);
|
return new Credentials(secureProtocol);
|
||||||
}
|
}
|
||||||
@ -45,22 +45,28 @@ function Credentials(secureProtocol) {
|
|||||||
throw new Error('node.js not compiled with openssl crypto support.');
|
throw new Error('node.js not compiled with openssl crypto support.');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.context = new SecureContext();
|
if (context) {
|
||||||
|
this.context = context;
|
||||||
if (secureProtocol) {
|
this.reuseContext = true;
|
||||||
this.context.init(secureProtocol);
|
|
||||||
} else {
|
} else {
|
||||||
this.context.init();
|
this.context = new SecureContext();
|
||||||
}
|
|
||||||
|
|
||||||
|
if (secureProtocol) {
|
||||||
|
this.context.init(secureProtocol);
|
||||||
|
} else {
|
||||||
|
this.context.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.Credentials = Credentials;
|
exports.Credentials = Credentials;
|
||||||
|
|
||||||
|
|
||||||
exports.createCredentials = function(options) {
|
exports.createCredentials = function(options, context) {
|
||||||
if (!options) options = {};
|
if (!options) options = {};
|
||||||
var c = new Credentials(options.secureProtocol);
|
var c = new Credentials(options.secureProtocol, context);
|
||||||
|
|
||||||
|
if (context) return c;
|
||||||
|
|
||||||
if (options.key) c.context.setKey(options.key);
|
if (options.key) c.context.setKey(options.key);
|
||||||
|
|
||||||
|
23
lib/tls.js
23
lib/tls.js
@ -713,16 +713,23 @@ function Server(/* [options], listener */) {
|
|||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
// Handle option defaults:
|
||||||
|
this.setOptions(options);
|
||||||
|
|
||||||
|
var sharedCreds = crypto.createCredentials({
|
||||||
|
key: self.key,
|
||||||
|
cert: self.cert,
|
||||||
|
ca: self.ca,
|
||||||
|
ciphers: self.ciphers,
|
||||||
|
secureProtocol: self.secureProtocol,
|
||||||
|
crl: self.crl
|
||||||
|
});
|
||||||
|
|
||||||
|
sharedCreds.context.setCiphers('RC4-SHA:AES128-SHA:AES256-SHA');
|
||||||
|
|
||||||
// constructor call
|
// constructor call
|
||||||
net.Server.call(this, function(socket) {
|
net.Server.call(this, function(socket) {
|
||||||
var creds = crypto.createCredentials({
|
var creds = crypto.createCredentials(null, sharedCreds.context);
|
||||||
key: self.key,
|
|
||||||
cert: self.cert,
|
|
||||||
ca: self.ca,
|
|
||||||
secureProtocol: self.secureProtocol,
|
|
||||||
crl: self.crl
|
|
||||||
});
|
|
||||||
creds.context.setCiphers('RC4-SHA:AES128-SHA:AES256-SHA');
|
|
||||||
|
|
||||||
var pair = new SecurePair(creds,
|
var pair = new SecurePair(creds,
|
||||||
true,
|
true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user