bug: should mod bn addition
when adding two private keys to get a new private key, you should mod the result with N so that it is always less than N.
This commit is contained in:
parent
381481fb7c
commit
f11ed4d20b
|
@ -1,6 +1,7 @@
|
||||||
var Key = require('../key');
|
var Key = require('../key');
|
||||||
var Privkey = require('../privkey');
|
var Privkey = require('../privkey');
|
||||||
var Pubkey = require('../pubkey');
|
var Pubkey = require('../pubkey');
|
||||||
|
var Point = require('../point');
|
||||||
var Hash = require('../hash');
|
var Hash = require('../hash');
|
||||||
var KDF = require('../kdf');
|
var KDF = require('../kdf');
|
||||||
var base58check = require('../base58check');
|
var base58check = require('../base58check');
|
||||||
|
@ -76,7 +77,7 @@ Stealth.prototype.getReceivePubkeyAsSender = function(senderKey) {
|
||||||
|
|
||||||
Stealth.prototype.getReceiveKey = function(senderPubkey) {
|
Stealth.prototype.getReceiveKey = function(senderPubkey) {
|
||||||
var sharedKey = this.getSharedKeyAsReceiver(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);
|
var key = Key(privkey);
|
||||||
key.privkey2pubkey();
|
key.privkey2pubkey();
|
||||||
|
|
||||||
|
|
|
@ -141,6 +141,11 @@ describe('Stealth', function() {
|
||||||
key.pubkey.toString().should.equal(pubkey.toString());
|
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() {
|
describe('#isForMe', function() {
|
||||||
|
|
Loading…
Reference in New Issue