ssl.publickey.checker
Version:
This plugin can be used to add an extra layer of security by preventing 'Man in the Middle' attacks.
62 lines (55 loc) • 2.31 kB
JavaScript
;
var exec = require('cordova/exec');
function SSLPublicKeyChecker() {
}
SSLPublicKeyChecker.prototype.check = function (successCallback, errorCallback, serverURL, allowedSHA1FingerprintOrArray, allowedSHA1FingerprintAlt) {
if (typeof errorCallback != "function") {
console.log("SSLPublicKeyChecker.find failure: errorCallback parameter must be a function");
return
}
if (typeof successCallback != "function") {
console.log("SSLPublicKeyChecker.find failure: successCallback parameter must be a function");
return
}
// if an array is not passed, transform the input into one
var fpArr = [];
if (allowedSHA1FingerprintOrArray !== undefined) {
if (typeof allowedSHA1FingerprintOrArray == "string") {
fpArr.push(allowedSHA1FingerprintOrArray);
} else {
fpArr = allowedSHA1FingerprintOrArray.slice(0);
}
}
if (allowedSHA1FingerprintAlt !== undefined) {
fpArr.push(allowedSHA1FingerprintAlt);
}
exec(successCallback, errorCallback, "SSLPublicKeyChecker", "check", [serverURL, false, fpArr]);
};
SSLPublicKeyChecker.prototype.checkInCertChain = function (successCallback, errorCallback, serverURL, allowedSHA1FingerprintOrArray, allowedSHA1FingerprintAlt) {
if (typeof errorCallback != "function") {
console.log("SSLPublicKeyChecker.find failure: errorCallback parameter must be a function");
return
}
errorCallback("This function has been removed in versions higher than 4.0.0 because it's considered too insecure.");
/*
if (typeof successCallback != "function") {
console.log("SSLPublicKeyChecker.find failure: successCallback parameter must be a function");
return
}
// if an array is not passed, transform the input into one
var fpArr = [];
if (allowedSHA1FingerprintOrArray !== undefined) {
if (typeof allowedSHA1FingerprintOrArray == "string") {
fpArr.push(allowedSHA1FingerprintOrArray);
} else {
fpArr = allowedSHA1FingerprintOrArray.slice(0);
}
}
if (allowedSHA1FingerprintAlt !== undefined) {
fpArr.push(allowedSHA1FingerprintAlt);
}
cordova.exec(successCallback, errorCallback, "SSLPublicKeyChecker", "check", [serverURL, true, fpArr]);
*/
};
var sslPublicKeyChecker = new SSLPublicKeyChecker();
module.exports = sslPublicKeyChecker;