openpgp
Version:
OpenPGP.js is a Javascript implementation of the OpenPGP protocol. This is defined in RFC 4880.
1 lines • 66 kB
Source Map (JSON)
{"version":3,"file":"nacl-fast.min.mjs","sources":["../../node_modules/@openpgp/tweetnacl/cryptoBrowser.js","../../node_modules/@openpgp/tweetnacl/nacl-fast.js"],"sourcesContent":["// declare const globalThis: Record<string, any> | undefined;\nexport const crypto =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n","import { crypto } from './crypto.js';\n\n'use strict';\nconst nacl = {};\nexport default nacl;\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32;\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.box = {};\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n if (crypto && crypto.getRandomValues) {\n // Browsers and Node v16+\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n})();\n"],"names":["crypto","globalThis","undefined","nacl","gf","init","i","r","Float64Array","length","randombytes","Error","_9","Uint8Array","gf0","gf1","_121665","D","D2","X","Y","I","ts64","x","h","l","crypto_verify_32","xi","y","yi","n","d","vn","set25519","a","car25519","o","v","c","Math","floor","sel25519","p","q","b","t","pack25519","j","m","neq25519","par25519","unpack25519","A","Z","M","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","b10","b11","b12","b13","b14","b15","S","inv25519","crypto_scalarmult","z","e","f","x32","subarray","x16","crypto_scalarmult_base","K","crypto_hashblocks_hl","hh","hl","bh0","bh1","bh2","bh3","bh4","bh5","bh6","bh7","bl0","bl1","bl2","bl3","bl4","bl5","bl6","bl7","th","tl","wh","Int32Array","wl","ah0","ah1","ah2","ah3","ah4","ah5","ah6","ah7","al0","al1","al2","al3","al4","al5","al6","al7","pos","crypto_hash","out","add","g","cswap","pack","tx","ty","zi","scalarmult","s","scalarbase","crypto_sign_keypair","pk","sk","seeded","L","modL","carry","k","reduce","unpackneg","chk","num","den","den2","den4","den6","pow2523","crypto_sign_BYTES","checkArrayTypes","arguments","TypeError","scalarMult","box","keyPair","publicKey","secretKey","fromSecretKey","sign","msg","signedMsg","sm","smlen","crypto_sign","detached","sig","verify","crypto_sign_open","fromSeed","seed","setPRNG","fn","getRandomValues","min","arr","cleanup"],"mappings":"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","x_google_ignoreList":[0,1]}