diff --git a/lib/PayPro.js b/lib/PayPro.js index 7edd8631c..01cb65592 100644 --- a/lib/PayPro.js +++ b/lib/PayPro.js @@ -243,6 +243,7 @@ PayPro.prototype.verify = function() { PayPro.prototype.x509Sign = function(key) { var crypto = require('crypto'); + var pki_type = this.get('pki_type'); var pki_data = this.get('pki_data'); // contains one or more x509 certs var details = this.get('serialized_payment_details'); var type = pki_type.split('+')[1].toUpperCase(); @@ -267,6 +268,7 @@ PayPro.prototype.x509Sign = function(key) { PayPro.prototype.x509Verify = function() { var crypto = require('crypto'); + var pki_type = this.get('pki_type'); var sig = this.get('signature'); var pki_data = this.get('pki_data'); var details = this.get('serialized_payment_details'); diff --git a/test/test.PayPro.js b/test/test.PayPro.js index f8c930980..0ba51ac70 100644 --- a/test/test.PayPro.js +++ b/test/test.PayPro.js @@ -9,6 +9,13 @@ var fs = require('fs'); var PayPro = bitcore.PayPro; var Key = bitcore.Key; +var x509 = { + priv: fs.readFileSync(__dirname + '/data/x509.key'), + pub: fs.readFileSync(__dirname + '/data/x509.pub'), + crt: fs.readFileSync(__dirname + '/data/x509.der'), + sig: new Buffer(0) +}; + describe('PayPro', function() { it('should be able to create class', function() { @@ -348,53 +355,4 @@ describe('PayPro', function() { }); - var x509 = { - priv: fs.readFileSync(__dirname + '/data/x509.key'), - pub: fs.readFileSync(__dirname + '/data/x509.pub'), - crt: fs.readFileSync(__dirname + '/data/x509.der'), - sig: new Buffer(0) - }; - - describe('#x509Sign', function() { - it('should sign assuming pki_type is x509', function() { - var pd = new PayPro.PaymentDetails(); - pd.set('time', 0); - - var pdbuf = pd.toBuffer(); - - var paypro = new PayPro(); - paypro.makePaymentRequest(); - - paypro.set('serialized_payment_details', pdbuf); - paypro.set('pki_type', 'x509+sha256'); - paypro.set('pki_data', x509.crt); - - paypro.x509Sign(x509.priv); - - x509.sig = paypro.get('signature'); - x509.sig.length.should.be.greaterThan(0); - }); - }); - - describe('#x509Verify', function() { - it('should verify assuming pki_type is x509', function() { - var pd = new PayPro.PaymentDetails(); - pd.set('time', 0); - - var pdbuf = pd.toBuffer(); - - var paypro = new PayPro(); - paypro.makePaymentRequest(); - - paypro.set('serialized_payment_details', pdbuf); - paypro.set('pki_type', 'x509+sha256'); - - paypro.set('signature', x509.sig); // sig buffer - paypro.set('pki_data', x509.crt); // contains one or more x509 certs - - var verify = paypro.x509Verify(); - verify.should.equal(true); - }); - - }); });