ec: refactor.
This commit is contained in:
parent
8471ce165d
commit
9ccac80ad6
@ -104,7 +104,8 @@ ec.random = function random(size) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ec.rand = function rand(min, max) {
|
ec.rand = function rand(min, max) {
|
||||||
return Math.floor((ec.random(1)[0] / 256) * (max - min) + min);
|
var num = ec.random(4).readUInt32LE(0, true);
|
||||||
|
return Math.floor((num / 0x100000000) * (max - min) + min);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -252,10 +253,9 @@ ec.sign = function sign(msg, key) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ec.normalizeLength = function normalizeLength(sig) {
|
ec.normalizeLength = function normalizeLength(sig) {
|
||||||
var data, p, len, rlen, slen;
|
var data = sig;
|
||||||
|
var p = { place: 0 };
|
||||||
data = sig.slice();
|
var len, rlen, slen;
|
||||||
p = { place: 0 };
|
|
||||||
|
|
||||||
if (data[p.place++] !== 0x30)
|
if (data[p.place++] !== 0x30)
|
||||||
return sig;
|
return sig;
|
||||||
@ -283,16 +283,21 @@ ec.normalizeLength = function normalizeLength(sig) {
|
|||||||
|
|
||||||
function getLength(buf, p) {
|
function getLength(buf, p) {
|
||||||
var initial = buf[p.place++];
|
var initial = buf[p.place++];
|
||||||
if (!(initial & 0x80)) {
|
var octetLen, val, i, off;
|
||||||
|
|
||||||
|
if (!(initial & 0x80))
|
||||||
return initial;
|
return initial;
|
||||||
}
|
|
||||||
var octetLen = initial & 0xf;
|
octetLen = initial & 0xf;
|
||||||
var val = 0;
|
val = 0;
|
||||||
for (var i = 0, off = p.place; i < octetLen; i++, off++) {
|
|
||||||
|
for (i = 0, off = p.place; i < octetLen; i++, off++) {
|
||||||
val <<= 8;
|
val <<= 8;
|
||||||
val |= buf[off];
|
val |= buf[off];
|
||||||
}
|
}
|
||||||
|
|
||||||
p.place = off;
|
p.place = off;
|
||||||
|
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -303,9 +308,7 @@ function getLength(buf, p) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ec.isLowS = function isLowS(sig) {
|
ec.isLowS = function isLowS(sig) {
|
||||||
if (!sig.s) {
|
if (Buffer.isBuffer(sig)) {
|
||||||
assert(Buffer.isBuffer(sig));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
sig = new ec.signature(sig);
|
sig = new ec.signature(sig);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@ -313,9 +316,6 @@ ec.isLowS = function isLowS(sig) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sig.s.cmpn(0) <= 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// If S is greater than half the order,
|
// If S is greater than half the order,
|
||||||
// it's too high.
|
// it's too high.
|
||||||
if (sig.s.cmp(ec.elliptic.nh) > 0)
|
if (sig.s.cmp(ec.elliptic.nh) > 0)
|
||||||
@ -332,9 +332,7 @@ ec.isLowS = function isLowS(sig) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ec.toLowS = function toLowS(sig) {
|
ec.toLowS = function toLowS(sig) {
|
||||||
if (!sig.s) {
|
if (Buffer.isBuffer(sig)) {
|
||||||
assert(Buffer.isBuffer(sig));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
sig = new ec.signature(sig);
|
sig = new ec.signature(sig);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user