1 line
12 KiB
JSON
1 line
12 KiB
JSON
{"ast":null,"code":"'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\n\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature) return options;\n if (this._importDER(options, enc)) return;\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined) this.recoveryParam = null;else this.recoveryParam = options.recoveryParam;\n}\n\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n\n if (!(initial & 0x80)) {\n return initial;\n }\n\n var octetLen = initial & 0xf; // Indefinite length or overflow\n\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n } // Leading zeroes\n\n\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n\n if (i === 0) {\n return buf;\n }\n\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n\n if (data[p.place++] !== 0x30) {\n return false;\n }\n\n var len = getLength(data, p);\n\n if (len === false) {\n return false;\n }\n\n if (len + p.place !== data.length) {\n return false;\n }\n\n if (data[p.place++] !== 0x02) {\n return false;\n }\n\n var rlen = getLength(data, p);\n\n if (rlen === false) {\n return false;\n }\n\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n\n if (data[p.place++] !== 0x02) {\n return false;\n }\n\n var slen = getLength(data, p);\n\n if (slen === false) {\n return false;\n }\n\n if (data.length !== slen + p.place) {\n return false;\n }\n\n var s = data.slice(p.place, slen + p.place);\n\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n\n while (--octets) {\n arr.push(len >>> (octets << 3) & 0xff);\n }\n\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray(); // Pad values\n\n if (r[0] & 0x80) r = [0].concat(r); // Pad values\n\n if (s[0] & 0x80) s = [0].concat(s);\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n\n var arr = [0x02];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [0x30];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};","map":{"version":3,"sources":["/Users/tylerkoenig/Code/personal/react-scss2/node_modules/elliptic/lib/elliptic/ec/signature.js"],"names":["BN","require","utils","assert","Signature","options","enc","_importDER","r","s","recoveryParam","undefined","module","exports","Position","place","getLength","buf","p","initial","octetLen","val","i","off","rmPadding","len","length","slice","prototype","data","toArray","rlen","slen","constructLength","arr","push","octets","Math","log","LN2","toDER","concat","backHalf","res","encode"],"mappings":"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","sourcesContent":["'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n"]},"metadata":{},"sourceType":"script"} |