paypro: add PayPro.verifyCertChain.

This commit is contained in:
Christopher Jeffrey 2014-08-29 20:05:35 -07:00
parent 4e883ceba6
commit a73699ba64
2 changed files with 36 additions and 28 deletions

View File

@ -107,7 +107,24 @@ PayPro.prototype.x509Verify = function(returnTrust) {
return verified;
}
var chainVerified = chain.every(function(cert, i) {
var chainVerified = PayPro.verifyCertChain(chain, type);
if (returnTrust) {
return {
selfSigned: 0, // no
isChain: true,
verified: verified,
caTrusted: !!caName,
caName: caName || null,
chainVerified: chainVerified
};
}
return verified && chainVerified;
};
PayPro.verifyCertChain = function(chain, type) {
return chain.every(function(cert, i) {
var der = cert.toString('hex');
var pem = PayPro.DERtoPEM(der, 'CERTIFICATE');
var name = RootCerts.getTrusted(pem);
@ -168,19 +185,6 @@ PayPro.prototype.x509Verify = function(returnTrust) {
&& issuerVerified
&& sigVerified;
});
if (returnTrust) {
return {
selfSigned: 0, // no
isChain: true,
verified: verified,
caTrusted: !!caName,
caName: caName || null,
chainVerified: chainVerified
};
}
return verified && chainVerified;
};
module.exports = PayPro;

View File

@ -122,7 +122,24 @@ PayPro.prototype.x509Verify = function(returnTrust) {
return verified;
}
var chainVerified = chain.every(function(cert, i) {
var chainVerified = PayPro.verifyCertChain(chain, type);
if (returnTrust) {
return {
selfSigned: 0, // no
isChain: true,
verified: verified,
caTrusted: !!caName,
caName: caName || null,
chainVerified: chainVerified
};
}
return verified && chainVerified;
};
PayPro.verifyCertChain = function(chain, type) {
return chain.every(function(cert, i) {
var der = cert.toString('hex');
// var pem = self._DERtoPEM(der, 'CERTIFICATE');
var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex(der, 'CERTIFICATE');
@ -200,19 +217,6 @@ PayPro.prototype.x509Verify = function(returnTrust) {
&& issuerVerified
&& sigVerified;
});
if (returnTrust) {
return {
selfSigned: 0, // no
isChain: true,
verified: verified,
caTrusted: !!caName,
caName: caName || null,
chainVerified: chainVerified
};
}
return verified && chainVerified;
};
module.exports = PayPro;