@ -0,0 +1,87 @@ |
|||
const bigInt = require("big-integer"); |
|||
|
|||
module.exports.leBuff2int = leBuff2int; |
|||
module.exports.leInt2Buff = leInt2Buff; |
|||
module.exports.beBuff2int = beBuff2int; |
|||
module.exports.beInt2Buff = beInt2Buff; |
|||
module.exports.stringifyBigInts = stringifyBigInts; |
|||
module.exports.unstringifyBigInts = unstringifyBigInts; |
|||
|
|||
function leBuff2int (buff) { |
|||
let res = bigInt.zero; |
|||
for (let i=0; i<buff.length; i++) { |
|||
const n = bigInt(buff[i]); |
|||
res = res.add(n.shiftLeft(i*8)); |
|||
} |
|||
return res; |
|||
} |
|||
|
|||
function leInt2Buff(n, len) { |
|||
let r = n; |
|||
let o =0; |
|||
const buff = Buffer.alloc(len); |
|||
while ((r.gt(bigInt.zero))&&(o<buff.length)) { |
|||
let c = Number(r.and(bigInt(255))); |
|||
buff[o] = c; |
|||
o++; |
|||
r = r.shiftRight(8); |
|||
} |
|||
if (r.gt(bigInt.zero)) throw new Error("Number does not feed in buffer"); |
|||
return buff; |
|||
} |
|||
|
|||
function beBuff2int (buff) { |
|||
let res = bigInt.zero; |
|||
for (let i=0; i<buff.length; i++) { |
|||
const n = bigInt(buff[buff.length - i - 1]); |
|||
res = res.add(n.shiftLeft(i*8)); |
|||
} |
|||
return res; |
|||
} |
|||
|
|||
function beInt2Buff(n, len) { |
|||
let r = n; |
|||
let o =len-1; |
|||
const buff = Buffer.alloc(len); |
|||
while ((r.greater(bigInt.zero))&&(o>=0)) { |
|||
let c = Number(r.and(bigInt(255))); |
|||
buff[o] = c; |
|||
o--; |
|||
r = r.shiftRight(8); |
|||
} |
|||
if (r.gt(bigInt.zero)) throw new Error("Number does not feed in buffer"); |
|||
return buff; |
|||
} |
|||
|
|||
|
|||
function stringifyBigInts(o) { |
|||
if ((typeof(o) == "bigint") || o.isZero !== undefined) { |
|||
return o.toString(10); |
|||
} else if (Array.isArray(o)) { |
|||
return o.map(stringifyBigInts); |
|||
} else if (typeof o == "object") { |
|||
const res = {}; |
|||
for (let k in o) { |
|||
res[k] = stringifyBigInts(o[k]); |
|||
} |
|||
return res; |
|||
} else { |
|||
return o; |
|||
} |
|||
} |
|||
|
|||
function unstringifyBigInts(o) { |
|||
if ((typeof(o) == "string") && (/^[0-9]+$/.test(o) )) { |
|||
return bigInt(o); |
|||
} else if (Array.isArray(o)) { |
|||
return o.map(unstringifyBigInts); |
|||
} else if (typeof o == "object") { |
|||
const res = {}; |
|||
for (let k in o) { |
|||
res[k] = unstringifyBigInts(o[k]); |
|||
} |
|||
return res; |
|||
} else { |
|||
return o; |
|||
} |
|||
} |
@ -1 +1 @@ |
|||
{"in":[0,1,1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,0,1,0,0,1,1,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,0,0,1,1,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,1,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,1,0,0,1,1,0,1,0,0,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,1,0,1,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,0,1,1,0,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,0,1,1,0,1,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1]} |
|||
{"in":"3876493977147089964395646989418653640709890493868463039177063670701706079087","Ax":"7544364404313686108640297486043592597084907953513982229886192880342666171487","Ay":"2721089742146723067451923493488918617350881493409568860627491866568993834336"} |