From 63b58fe47709b25515aa6a6c59c9276838961d5b Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 25 Aug 2014 11:31:58 -0700 Subject: [PATCH] paypro: refactor verification. --- lib/PayPro.js | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/lib/PayPro.js b/lib/PayPro.js index 4dfe6c6..9bd4097 100644 --- a/lib/PayPro.js +++ b/lib/PayPro.js @@ -198,28 +198,32 @@ PayPro.prototype.x509Verify = function() { } } - var rejectUnknown = !!extensions.unknown.filter(function(ext) { + var extensionsVerified = !extensions.unknown.filter(function(ext) { return ext.critical; }).length; - print(c); - print(nc); - print(extensions); - print('issuerVerified: %s', issuerVerified); - print('rejectUnknown: %s', rejectUnknown); - print('validityVerified: %s', validityVerified); - - // - // Create a To-Be-Signed Certificate to verify using asn1.js: - // - var tbs = rfc3280.TBSCertificate.encode(c.tbsCertificate, 'der'); - // // Verify current certificate signature: // + + // Create a To-Be-Signed Certificate to verify using asn1.js: + var tbs = rfc3280.TBSCertificate.encode(c.tbsCertificate, 'der'); var verifier = crypto.createVerify('RSA-' + sigAlg); verifier.update(tbs); - return verifier.verify(npubKey, sig) && issuerVerified; + var sigVerified = verifier.verify(npubKey, sig); + + print(c); + print(nc); + print(extensions); + print('validityVerified: %s', validityVerified); + print('issuerVerified: %s', issuerVerified); + print('extensionsVerified: %s', extensionsVerified); + print('sigVerified: %s', validityVerified); + + return validityVerified + && issuerVerified + && extensionsVerified + && sigVerified; }); return verified && chainVerified;