diff --git a/lib/expmt/stealth.js b/lib/expmt/stealth.js index 87d0431..20fe407 100644 --- a/lib/expmt/stealth.js +++ b/lib/expmt/stealth.js @@ -1,6 +1,7 @@ var Key = require('../key'); var Privkey = require('../privkey'); var Pubkey = require('../pubkey'); +var Point = require('../point'); var Hash = require('../hash'); var KDF = require('../kdf'); var base58check = require('../base58check'); @@ -76,7 +77,7 @@ Stealth.prototype.getReceivePubkeyAsSender = function(senderKey) { Stealth.prototype.getReceiveKey = function(senderPubkey) { var sharedKey = this.getSharedKeyAsReceiver(senderPubkey); - var privkey = Privkey(this.payloadKey.privkey.bn.add(sharedKey.privkey.bn)); + var privkey = Privkey(this.payloadKey.privkey.bn.add(sharedKey.privkey.bn).mod(Point.getN())); var key = Key(privkey); key.privkey2pubkey(); diff --git a/test/test.stealth.js b/test/test.stealth.js index 7ebbf7d..6bacacd 100644 --- a/test/test.stealth.js +++ b/test/test.stealth.js @@ -141,6 +141,11 @@ describe('Stealth', function() { key.pubkey.toString().should.equal(pubkey.toString()); }); + it('should return private key with length 32 or less', function() { + var key = stealth.getReceiveKey(senderKey.pubkey); + key.privkey.bn.toBuffer().length.should.be.below(33); + }); + }); describe('#isForMe', function() {