@polkadot/util-crypto
Version:
A collection of useful crypto utilities for @polkadot
551 lines (532 loc) • 568 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@polkadot/util')) :
typeof define === 'function' && define.amd ? define(['exports', '@polkadot/util'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.polkadotUtilCrypto = {}, global.polkadotUtil));
})(this, (function (exports, util) { 'use strict';
const global = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : window;
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
const packageInfo$2 = { name: '@polkadot/x-global', path: (({ url: (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src || new URL('bundle-polkadot-util-crypto.js', document.baseURI).href)) }) && (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src || new URL('bundle-polkadot-util-crypto.js', document.baseURI).href))) ? new URL((typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src || new URL('bundle-polkadot-util-crypto.js', document.baseURI).href))).pathname.substring(0, new URL((typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src || new URL('bundle-polkadot-util-crypto.js', document.baseURI).href))).pathname.lastIndexOf('/') + 1) : 'auto', type: 'esm', version: '13.5.6' };
function evaluateThis(fn) {
return fn('return this');
}
const xglobal = (typeof globalThis !== 'undefined'
? globalThis
: typeof global !== 'undefined'
? global
: typeof self !== 'undefined'
? self
: typeof window !== 'undefined'
? window
: evaluateThis(Function));
function extractGlobal(name, fallback) {
return typeof xglobal[name] === 'undefined'
? fallback
: xglobal[name];
}
function exposeGlobal(name, fallback) {
if (typeof xglobal[name] === 'undefined') {
xglobal[name] = fallback;
}
}
const build = /*#__PURE__*/Object.freeze({
__proto__: null,
exposeGlobal: exposeGlobal,
extractGlobal: extractGlobal,
packageInfo: packageInfo$2,
xglobal: xglobal
});
function invalidFallback() {
return Number.NaN;
}
const BigInt$1 = extractGlobal('BigInt', invalidFallback);
exposeGlobal('BigInt', BigInt$1);
function getDefaultExportFromCjs (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
function getAugmentedNamespace(n) {
if (n.__esModule) return n;
var f = n.default;
if (typeof f == "function") {
var a = function a () {
if (this instanceof a) {
return Reflect.construct(f, arguments, this.constructor);
}
return f.apply(this, arguments);
};
a.prototype = f.prototype;
} else a = {};
Object.defineProperty(a, '__esModule', {value: true});
Object.keys(n).forEach(function (k) {
var d = Object.getOwnPropertyDescriptor(n, k);
Object.defineProperty(a, k, d.get ? d : {
enumerable: true,
get: function () {
return n[k];
}
});
});
return a;
}
var browser = {};
const require$$0 = /*@__PURE__*/getAugmentedNamespace(build);
var packageInfo$1 = {};
Object.defineProperty(packageInfo$1, "__esModule", { value: true });
packageInfo$1.packageInfo = void 0;
packageInfo$1.packageInfo = { name: '@polkadot/x-randomvalues', path: typeof __dirname === 'string' ? __dirname : 'auto', type: 'cjs', version: '13.5.6' };
(function (exports) {
Object.defineProperty(exports, "__esModule", { value: true });
exports.crypto = exports.packageInfo = void 0;
exports.getRandomValues = getRandomValues;
const x_global_1 = require$$0;
var packageInfo_js_1 = packageInfo$1;
Object.defineProperty(exports, "packageInfo", { enumerable: true, get: function () { return packageInfo_js_1.packageInfo; } });
exports.crypto = x_global_1.xglobal.crypto;
function getRandomValues(arr) {
return exports.crypto.getRandomValues(arr);
}
} (browser));
getDefaultExportFromCjs(browser);
const DEFAULT_CRYPTO = { getRandomValues: browser.getRandomValues };
const DEFAULT_SELF = { crypto: DEFAULT_CRYPTO };
class Wbg {
#bridge;
constructor(bridge) {
this.#bridge = bridge;
}
abort = () => {
throw new Error('abort');
};
__wbindgen_is_undefined = (idx) => {
return this.#bridge.getObject(idx) === undefined;
};
__wbindgen_throw = (ptr, len) => {
throw new Error(this.#bridge.getString(ptr, len));
};
__wbg_self_1b7a39e3a92c949c = () => {
return this.#bridge.addObject(DEFAULT_SELF);
};
__wbg_require_604837428532a733 = (ptr, len) => {
throw new Error(`Unable to require ${this.#bridge.getString(ptr, len)}`);
};
__wbg_crypto_968f1772287e2df0 = (_idx) => {
return this.#bridge.addObject(DEFAULT_CRYPTO);
};
__wbg_getRandomValues_a3d34b4fee3c2869 = (_idx) => {
return this.#bridge.addObject(DEFAULT_CRYPTO.getRandomValues);
};
__wbg_getRandomValues_f5e14ab7ac8e995d = (_arg0, ptr, len) => {
DEFAULT_CRYPTO.getRandomValues(this.#bridge.getU8a(ptr, len));
};
__wbg_randomFillSync_d5bd2d655fdf256a = (_idx, _ptr, _len) => {
throw new Error('randomFillsync is not available');
};
__wbindgen_object_drop_ref = (idx) => {
this.#bridge.takeObject(idx);
};
}
class Bridge {
#createWasm;
#heap;
#wbg;
#cachegetInt32;
#cachegetUint8;
#heapNext;
#wasm;
#wasmError;
#wasmPromise;
#type;
constructor(createWasm) {
this.#createWasm = createWasm;
this.#cachegetInt32 = null;
this.#cachegetUint8 = null;
this.#heap = new Array(32)
.fill(undefined)
.concat(undefined, null, true, false);
this.#heapNext = this.#heap.length;
this.#type = 'none';
this.#wasm = null;
this.#wasmError = null;
this.#wasmPromise = null;
this.#wbg = { ...new Wbg(this) };
}
get error() {
return this.#wasmError;
}
get type() {
return this.#type;
}
get wasm() {
return this.#wasm;
}
async init(createWasm) {
if (!this.#wasmPromise || createWasm) {
this.#wasmPromise = (createWasm || this.#createWasm)(this.#wbg);
}
const { error, type, wasm } = await this.#wasmPromise;
this.#type = type;
this.#wasm = wasm;
this.#wasmError = error;
return this.#wasm;
}
getObject(idx) {
return this.#heap[idx];
}
dropObject(idx) {
if (idx < 36) {
return;
}
this.#heap[idx] = this.#heapNext;
this.#heapNext = idx;
}
takeObject(idx) {
const ret = this.getObject(idx);
this.dropObject(idx);
return ret;
}
addObject(obj) {
if (this.#heapNext === this.#heap.length) {
this.#heap.push(this.#heap.length + 1);
}
const idx = this.#heapNext;
this.#heapNext = this.#heap[idx];
this.#heap[idx] = obj;
return idx;
}
getInt32() {
if (this.#cachegetInt32 === null || this.#cachegetInt32.buffer !== this.#wasm.memory.buffer) {
this.#cachegetInt32 = new Int32Array(this.#wasm.memory.buffer);
}
return this.#cachegetInt32;
}
getUint8() {
if (this.#cachegetUint8 === null || this.#cachegetUint8.buffer !== this.#wasm.memory.buffer) {
this.#cachegetUint8 = new Uint8Array(this.#wasm.memory.buffer);
}
return this.#cachegetUint8;
}
getU8a(ptr, len) {
return this.getUint8().subarray(ptr / 1, ptr / 1 + len);
}
getString(ptr, len) {
return util.u8aToString(this.getU8a(ptr, len));
}
allocU8a(arg) {
const ptr = this.#wasm.__wbindgen_malloc(arg.length * 1);
this.getUint8().set(arg, ptr / 1);
return [ptr, arg.length];
}
allocString(arg) {
return this.allocU8a(util.stringToU8a(arg));
}
resultU8a() {
const r0 = this.getInt32()[8 / 4 + 0];
const r1 = this.getInt32()[8 / 4 + 1];
const ret = this.getU8a(r0, r1).slice();
this.#wasm.__wbindgen_free(r0, r1 * 1);
return ret;
}
resultString() {
return util.u8aToString(this.resultU8a());
}
}
function createWasmFn(root, wasmBytes, asmFn) {
return async (wbg) => {
const result = {
error: null,
type: 'none',
wasm: null
};
try {
if (!wasmBytes?.length) {
throw new Error('No WebAssembly provided for initialization');
}
else if (typeof WebAssembly !== 'object' || typeof WebAssembly.instantiate !== 'function') {
throw new Error('WebAssembly is not available in your environment');
}
const source = await WebAssembly.instantiate(wasmBytes, { wbg });
result.wasm = source.instance.exports;
result.type = 'wasm';
}
catch (error) {
if (typeof asmFn === 'function') {
result.wasm = asmFn(wbg);
result.type = 'asm';
}
else {
result.error = `FATAL: Unable to initialize @polkadot/wasm-${root}:: ${error.message}`;
console.error(result.error);
}
}
return result;
};
}
const CHR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
const map = new Array(256);
for (let i = 0, count = CHR.length; i < count; i++) {
map[CHR.charCodeAt(i)] = i;
}
function base64Decode$1(data, out) {
let byte = 0;
let bits = 0;
let pos = -1;
for (let i = 0, last = out.length - 1; pos !== last; i++) {
byte = (byte << 6) | map[data.charCodeAt(i)];
if ((bits += 6) >= 8) {
out[++pos] = (byte >>> (bits -= 8)) & 0xff;
}
}
return out;
}
const u8 = Uint8Array, u16 = Uint16Array, u32$1 = Uint32Array;
const clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
const fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0]);
const fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0]);
const freb = (eb, start) => {
const b = new u16(31);
for (let i = 0; i < 31; ++i) {
b[i] = start += 1 << eb[i - 1];
}
const r = new u32$1(b[30]);
for (let i = 1; i < 30; ++i) {
for (let j = b[i]; j < b[i + 1]; ++j) {
r[j] = ((j - b[i]) << 5) | i;
}
}
return [b, r];
};
const [fl, revfl] = freb(fleb, 2);
fl[28] = 258, revfl[258] = 28;
const [fd] = freb(fdeb, 0);
const rev = new u16(32768);
for (let i = 0; i < 32768; ++i) {
let x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);
x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);
x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);
rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;
}
const hMap = ((cd, mb, r) => {
const s = cd.length;
let i = 0;
const l = new u16(mb);
for (; i < s; ++i) {
if (cd[i])
++l[cd[i] - 1];
}
const le = new u16(mb);
for (i = 1; i < mb; ++i) {
le[i] = (le[i - 1] + l[i - 1]) << 1;
}
let co;
if (r) {
co = new u16(1 << mb);
const rvb = 15 - mb;
for (i = 0; i < s; ++i) {
if (cd[i]) {
const sv = (i << 4) | cd[i];
const r = mb - cd[i];
let v = le[cd[i] - 1]++ << r;
for (const m = v | ((1 << r) - 1); v <= m; ++v) {
co[rev[v] >> rvb] = sv;
}
}
}
}
else {
co = new u16(s);
for (i = 0; i < s; ++i) {
if (cd[i]) {
co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);
}
}
}
return co;
});
const flt = new u8(288);
for (let i = 0; i < 144; ++i)
flt[i] = 8;
for (let i = 144; i < 256; ++i)
flt[i] = 9;
for (let i = 256; i < 280; ++i)
flt[i] = 7;
for (let i = 280; i < 288; ++i)
flt[i] = 8;
const fdt = new u8(32);
for (let i = 0; i < 32; ++i)
fdt[i] = 5;
const flrm = hMap(flt, 9, 1);
const fdrm = hMap(fdt, 5, 1);
const bits = (d, p, m) => {
const o = p >>> 3;
return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;
};
const bits16 = (d, p) => {
const o = p >>> 3;
return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));
};
const shft = (p) => (p >>> 3) + (p & 7 && 1);
const slc = (v, s, e) => {
if (s == null || s < 0)
s = 0;
if (e == null || e > v.length)
e = v.length;
const n = new (v instanceof u16 ? u16 : v instanceof u32$1 ? u32$1 : u8)(e - s);
n.set(v.subarray(s, e));
return n;
};
const max = (a) => {
let m = a[0];
for (let i = 1, count = a.length; i < count; ++i) {
if (a[i] > m)
m = a[i];
}
return m;
};
const inflt = (dat, buf, st) => {
const noSt = !st || st.i;
if (!st)
st = {};
const sl = dat.length;
const noBuf = !buf || !noSt;
if (!buf)
buf = new u8(sl * 3);
const cbuf = (l) => {
let bl = buf.length;
if (l > bl) {
const nbuf = new u8(Math.max(bl << 1, l));
nbuf.set(buf);
buf = nbuf;
}
};
let final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;
if (final && !lm)
return buf;
const tbts = sl << 3;
do {
if (!lm) {
st.f = final = bits(dat, pos, 1);
const type = bits(dat, pos + 1, 3);
pos += 3;
if (!type) {
const s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;
if (t > sl) {
if (noSt)
throw 'unexpected EOF';
break;
}
if (noBuf)
cbuf(bt + l);
buf.set(dat.subarray(s, t), bt);
st.b = bt += l, st.p = pos = t << 3;
continue;
}
else if (type == 1)
lm = flrm, dm = fdrm, lbt = 9, dbt = 5;
else if (type == 2) {
const hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;
const tl = hLit + bits(dat, pos + 5, 31) + 1;
pos += 14;
const ldt = new u8(tl);
const clt = new u8(19);
for (let i = 0; i < hcLen; ++i) {
clt[clim[i]] = bits(dat, pos + i * 3, 7);
}
pos += hcLen * 3;
const clb = max(clt), clbmsk = (1 << clb) - 1;
if (!noSt && pos + tl * (clb + 7) > tbts)
break;
const clm = hMap(clt, clb, 1);
for (let i = 0; i < tl;) {
const r = clm[bits(dat, pos, clbmsk)];
pos += r & 15;
const s = r >>> 4;
if (s < 16) {
ldt[i++] = s;
}
else {
let c = 0, n = 0;
if (s == 16)
n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];
else if (s == 17)
n = 3 + bits(dat, pos, 7), pos += 3;
else if (s == 18)
n = 11 + bits(dat, pos, 127), pos += 7;
while (n--)
ldt[i++] = c;
}
}
const lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);
lbt = max(lt);
dbt = max(dt);
lm = hMap(lt, lbt, 1);
dm = hMap(dt, dbt, 1);
}
else
throw 'invalid block type';
if (pos > tbts)
throw 'unexpected EOF';
}
if (noBuf)
cbuf(bt + 131072);
const lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
const mxa = lbt + dbt + 18;
while (noSt || pos + mxa < tbts) {
const c = lm[bits16(dat, pos) & lms], sym = c >>> 4;
pos += c & 15;
if (pos > tbts)
throw 'unexpected EOF';
if (!c)
throw 'invalid length/literal';
if (sym < 256)
buf[bt++] = sym;
else if (sym == 256) {
lm = undefined;
break;
}
else {
let add = sym - 254;
if (sym > 264) {
const i = sym - 257, b = fleb[i];
add = bits(dat, pos, (1 << b) - 1) + fl[i];
pos += b;
}
const d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;
if (!d)
throw 'invalid distance';
pos += d & 15;
let dt = fd[dsym];
if (dsym > 3) {
const b = fdeb[dsym];
dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;
}
if (pos > tbts)
throw 'unexpected EOF';
if (noBuf)
cbuf(bt + 131072);
const end = bt + add;
for (; bt < end; bt += 4) {
buf[bt] = buf[bt - dt];
buf[bt + 1] = buf[bt + 1 - dt];
buf[bt + 2] = buf[bt + 2 - dt];
buf[bt + 3] = buf[bt + 3 - dt];
}
bt = end;
}
}
st.l = lm, st.p = pos, st.b = bt;
if (lm)
final = 1, st.m = lbt, st.d = dm, st.n = dbt;
} while (!final);
return bt == buf.length ? buf : slc(buf, 0, bt);
};
const zlv = (d) => {
if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))
throw 'invalid zlib data';
if (d[1] & 32)
throw 'invalid zlib data: preset dictionaries not supported';
};
function unzlibSync(data, out) {
return inflt((zlv(data), data.subarray(2, -4)), out);
}
var lenIn = 176940;
var lenOut = 355100;
var bytes_1 = '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