oxedyne/daimond/www/js/vendor/noble-curves.min.js
37.2 KiB, 1 run
created by r2519314175:1469, which is this file's identity for as long as the history lasts, whatever it is later renamed to
download · who wrote it · its history
| 1 | /* ============================================================ |
| 2 | Vendored: @noble/curves — ed25519 + x25519 (pure JS) |
| 3 | ------------------------------------------------------------ |
| 4 | Package: @noble/curves 2.4.0 (bundles @noble/hashes 2.4.0) |
| 5 | Source: https://github.com/paulmillr/noble-curves |
| 6 | https://www.npmjs.com/package/@noble/curves |
| 7 | Licence: MIT (c) Paul Miller (paulmillr.com) |
| 8 | Audited: yes — see the noble-curves repository for the audit |
| 9 | reports. Zero runtime dependencies. |
| 10 | |
| 11 | Built with esbuild 0.24.2: |
| 12 | esbuild entry.mjs --bundle --format=iife \ |
| 13 | --global-name=DaimondNoble --minify --target=es2019 |
| 14 | where entry.mjs is: |
| 15 | import { ed25519, x25519 } from '@noble/curves/ed25519.js'; |
| 16 | export { ed25519, x25519 }; |
| 17 | |
| 18 | Attaches the classic-script global `window.DaimondNoble` with |
| 19 | `{ ed25519, x25519 }`. Used ONLY as a fallback by |
| 20 | curvefallback.js when this browser's WebCrypto lacks Ed25519 or |
| 21 | X25519. Do not edit by hand — re-bundle from the pinned version. |
| 22 | ============================================================ */ |
| 23 | var DaimondNoble=(()=>{var Tt=Object.defineProperty;var Sn=Object.getOwnPropertyDescriptor;var On=Object.getOwnPropertyNames;var Tn=Object.prototype.hasOwnProperty;var _n=(e,t,n)=>t in e?Tt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var vn=(e,t)=>{for(var n in t)Tt(e,n,{get:t[n],enumerable:!0})},Rn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of On(t))!Tn.call(e,r)&&r!==n&&Tt(e,r,{get:()=>t[r],enumerable:!(o=Sn(t,r))||o.enumerable});return e};var An=e=>Rn(Tt({},"__esModule",{value:!0}),e);var h=(e,t,n)=>_n(e,typeof t!="symbol"?t+"":t,n);var wr={};vn(wr,{ed25519:()=>yn,x25519:()=>wn});var _t=BigInt(4294967295),Se=BigInt(32);function In(e,t=!1){return t?{h:Number(e&_t),l:Number(e>>Se&_t)}:{h:Number(e>>Se&_t)|0,l:Number(e&_t)|0}}function Oe(e,t=!1){let n=e.length,o=new Uint32Array(n),r=new Uint32Array(n);for(let s=0;s<n;s++){let{h:i,l:c}=In(e[s],t);[o[s],r[s]]=[i,c]}return[o,r]}var Nn=e=>e/2**32|0,Ln=e=>e>>>0;function Te(e,t,n,o){let r=Nn(n),s=Ln(n);e.setUint32(t,o?s:r,o),e.setUint32(t+4,o?r:s,o)}var Pt=(e,t,n)=>e>>>n,Kt=(e,t,n)=>e<<32-n|t>>>n,st=(e,t,n)=>e>>>n|t<<32-n,it=(e,t,n)=>e<<32-n|t>>>n,pt=(e,t,n)=>e<<64-n|t>>>n-32,xt=(e,t,n)=>e>>>n-32|t<<64-n;function G(e,t,n,o){let r=(t>>>0)+(o>>>0);return{h:e+n+(r/2**32|0)|0,l:r|0}}var _e=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),ve=(e,t,n,o)=>t+n+o+(e/2**32|0)|0,Re=(e,t,n,o)=>(e>>>0)+(t>>>0)+(n>>>0)+(o>>>0),Ae=(e,t,n,o,r)=>t+n+o+r+(e/2**32|0)|0,Ie=(e,t,n,o,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(o>>>0)+(r>>>0),Ne=(e,t,n,o,r,s)=>t+n+o+r+s+(e/2**32|0)|0;function vt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}var Vt=e=>e?`"${e}" `:"";function bt(e,t=""){if(typeof e!="number")throw new TypeError(Vt(t)+"expected number, got "+typeof e);if(!Number.isSafeInteger(e)||e<0)throw new RangeError(Vt(t)+"expected integer >= 0, got "+e);return e}function W(e,t,n=""){if(vt(e)&&(t===void 0||e.length===t))return e;t!==void 0&&bt(t,"length");let o=vt(e),r=t!==void 0?` of length ${t}`:"",s=o?`length=${e.length}`:`type=${typeof e}`,i=Vt(n)+"expected Uint8Array"+r+", got "+s;throw o?new RangeError(i):new TypeError(i)}var Fn=(e,t)=>{if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError((t==="object"?"":`"${t}" `)+"expected object, got type="+typeof e)},Le=(e,t)=>{Fn(e,t);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&n!==null)throw new TypeError(`"${t}" expected plain object`);if(Object.hasOwn(e,"__proto__"))throw new TypeError(`"${t}.__proto__" is not allowed`)};function Qt(e,t=!0){if(e.destroyed)throw new Error("hash was destroyed");if(t&&e.finished)throw new Error("digest() was already called")}function Fe(e,t){W(e,void 0,"output");let n=t.outputLen;if(!(e.length>=n))throw new RangeError('"output" expected length >= '+n)}function Jt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Rt(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var De=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Dn=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function At(e){if(W(e),De)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Dn[e[n]];return t}function qe(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function It(e){if(typeof e!="string")throw new TypeError("hex string expected, got "+typeof e);if(De)try{return Uint8Array.fromHex(e)}catch(r){throw r instanceof SyntaxError?new RangeError(r.message):r}let t=e.length,n=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let o=new Uint8Array(n);for(let r=0,s=0;r<n;r++,s+=2){let i=qe(e.charCodeAt(s)),c=qe(e.charCodeAt(s+1));if(i===void 0||c===void 0){let f=e[s]+e[s+1];throw new RangeError('hex string expected, got non-hex character "'+f+'" at index '+s)}o[r]=i*16+c}return o}function te(...e){let t=0;for(let o=0;o<e.length;o++){let r=e[o];W(r),t+=r.length}let n=new Uint8Array(t);for(let o=0,r=0;o<e.length;o++){let s=e[o];n.set(s,r),r+=s.length}return n}function Mn(e,t,n="opts"){return Le(e,"defaults"),t!==void 0&&Le(t,n),Object.assign(Object.create(null),e,t)}function Me(e,t={}){if(typeof e!="function")throw new TypeError('"hashCons" expected function, got type='+typeof e);t=Mn({},t,"info");let n=(r,s)=>e(s).update(r).digest(),o=e(void 0);return n.outputLen=o.outputLen,n.blockLen=o.blockLen,n.canXOF=o.canXOF,n.create=r=>e(r),Object.assign(n,t),Object.freeze(n)}function He(e=32){bt(e,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof(t==null?void 0:t.getRandomValues)!="function")throw new Error("crypto.getRandomValues must be defined");if(e>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${e}`);return t.getRandomValues(new Uint8Array(e))}var Ce=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});var Nt=class{constructor(t,n,o,r){h(this,"blockLen");h(this,"outputLen");h(this,"canXOF",!1);h(this,"padOffset");h(this,"isLE");h(this,"buffer");h(this,"view");h(this,"finished",!1);h(this,"length",0);h(this,"pos",0);h(this,"destroyed",!1);this.blockLen=t,this.outputLen=n,this.padOffset=o,this.isLE=r,this.buffer=new Uint8Array(t),this.view=Rt(this.buffer)}update(t){Qt(this),W(t);let{view:n,buffer:o,blockLen:r}=this,s=t.length,i=!1;for(let c=0;c<s;){let f=Math.min(r-this.pos,s-c);if(f===r){let a=Rt(t);for(;r<=s-c;c+=r)this.process(a,c);i=!0;continue}o.set(c===0&&f===s?t:t.subarray(c,c+f),this.pos),this.pos+=f,c+=f,this.pos===r&&(this.process(n,0),this.pos=0,i=!0)}return this.length+=t.length,i&&this.roundClean(),this}digestInto(t){Qt(this),Fe(t,this),this.finished=!0;let{buffer:n,view:o,blockLen:r,isLE:s}=this,{pos:i}=this;n[i++]=128,n.fill(0,i),this.padOffset>r-i&&(this.process(o,0),n.fill(0)),Te(o,r-8,this.length*8,s),this.process(o,0),this.roundClean();let c=t===n?o:Rt(t),f=this.outputLen,a=f/4,d=this.get();if(f%4||a>d.length)throw new Error("invalid outputLen");for(let g=0;g<a;g++)c.setUint32(4*g,d[g],s)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let o=t.slice(0,n);return this.destroy(),o}_cloneIntoMeta(t){let{buffer:n,length:o,finished:r,destroyed:s,pos:i}=this;return t.destroyed=s,t.finished=r,t.length=o,t.pos=i,i&&t.buffer.set(n),t}clone(){return this._cloneInto()}};var Ue=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var je=Oe(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Hn=je[0],Cn=je[1],J=new Uint32Array(80),tt=new Uint32Array(80),ee=class extends Nt{constructor(n,o){super(128,n,16,!1);h(this,"Ah",0);h(this,"Al",0);h(this,"Bh",0);h(this,"Bl",0);h(this,"Ch",0);h(this,"Cl",0);h(this,"Dh",0);h(this,"Dl",0);h(this,"Eh",0);h(this,"El",0);h(this,"Fh",0);h(this,"Fl",0);h(this,"Gh",0);h(this,"Gl",0);h(this,"Hh",0);h(this,"Hl",0);this.Ah=o[0]|0,this.Al=o[1]|0,this.Bh=o[2]|0,this.Bl=o[3]|0,this.Ch=o[4]|0,this.Cl=o[5]|0,this.Dh=o[6]|0,this.Dl=o[7]|0,this.Eh=o[8]|0,this.El=o[9]|0,this.Fh=o[10]|0,this.Fl=o[11]|0,this.Gh=o[12]|0,this.Gl=o[13]|0,this.Hh=o[14]|0,this.Hl=o[15]|0}get(){let{Ah:n,Al:o,Bh:r,Bl:s,Ch:i,Cl:c,Dh:f,Dl:a,Eh:d,El:g,Fh:x,Fl:b,Gh:v,Gl:B,Hh:T,Hl:R}=this;return[n,o,r,s,i,c,f,a,d,g,x,b,v,B,T,R]}set(n,o,r,s,i,c,f,a,d,g,x,b,v,B,T,R){this.Ah=n|0,this.Al=o|0,this.Bh=r|0,this.Bl=s|0,this.Ch=i|0,this.Cl=c|0,this.Dh=f|0,this.Dl=a|0,this.Eh=d|0,this.El=g|0,this.Fh=x|0,this.Fl=b|0,this.Gh=v|0,this.Gl=B|0,this.Hh=T|0,this.Hl=R|0}_cloneInto(n){return(n||(n=new this.constructor)).set(...this.get()),this._cloneIntoMeta(n)}process(n,o){for(let u=0;u<16;u++,o+=4)J[u]=n.getUint32(o),tt[u]=n.getUint32(o+=4);for(let u=16;u<80;u++){let w=J[u-15]|0,m=tt[u-15]|0,D=st(w,m,1)^st(w,m,8)^Pt(w,m,7),I=it(w,m,1)^it(w,m,8)^Kt(w,m,7),E=J[u-2]|0,_=tt[u-2]|0,M=st(E,_,19)^pt(E,_,61)^Pt(E,_,6),C=it(E,_,19)^xt(E,_,61)^Kt(E,_,6),N=Re(I,C,tt[u-7],tt[u-16]),l=Ae(N,D,M,J[u-7],J[u-16]);J[u]=l|0,tt[u]=N|0}let{Ah:r,Al:s,Bh:i,Bl:c,Ch:f,Cl:a,Dh:d,Dl:g,Eh:x,El:b,Fh:v,Fl:B,Gh:T,Gl:R,Hh:y,Hl:A}=this;for(let u=0;u<80;u++){let w=st(x,b,14)^st(x,b,18)^pt(x,b,41),m=it(x,b,14)^it(x,b,18)^xt(x,b,41),D=x&v^~x&T,I=b&B^~b&R,E=Ie(A,m,I,Cn[u],tt[u]),_=Ne(E,y,w,D,Hn[u],J[u]),M=E|0,C=st(r,s,28)^pt(r,s,34)^pt(r,s,39),N=it(r,s,28)^xt(r,s,34)^xt(r,s,39),l=r&i^r&f^i&f,S=s&c^s&a^c&a;y=T|0,A=R|0,T=v|0,R=B|0,v=x|0,B=b|0,{h:x,l:b}=G(d|0,g|0,_|0,M|0),d=f|0,g=a|0,f=i|0,a=c|0,i=r|0,c=s|0;let p=_e(M,N,S);r=ve(p,_,C,l),s=p|0}({h:r,l:s}=G(this.Ah|0,this.Al|0,r|0,s|0)),{h:i,l:c}=G(this.Bh|0,this.Bl|0,i|0,c|0),{h:f,l:a}=G(this.Ch|0,this.Cl|0,f|0,a|0),{h:d,l:g}=G(this.Dh|0,this.Dl|0,d|0,g|0),{h:x,l:b}=G(this.Eh|0,this.El|0,x|0,b|0),{h:v,l:B}=G(this.Fh|0,this.Fl|0,v|0,B|0),{h:T,l:R}=G(this.Gh|0,this.Gl|0,T|0,R|0),{h:y,l:A}=G(this.Hh|0,this.Hl|0,y|0,A|0),this.set(r,s,i,c,f,a,d,g,x,b,v,B,T,R,y,A)}roundClean(){Jt(J,tt)}destroy(){this.destroyed=!0,Jt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},ne=class extends ee{constructor(){super(64,Ue)}};var re=Me(()=>new ne,Ce(3));function qt(e,t,n=()=>{}){if(!Array.isArray(e))throw new TypeError(`"${t}" expected array, got type=${typeof e}`);for(let o=0;o<e.length;o++)n(e[o],`${t}[${o}]`);return e}var j=(e,t,n)=>W(e,t,n),oe=bt;function et(e,t="object"){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(t==="object"?"expected valid options object":`"${t}" expected object, got type=${typeof e}`);return e}function ct(e,t){if(typeof e!="function")throw new TypeError(`"${t}" is invalid: expected function, got ${typeof e}`);return e}var ze=At,se=(...e)=>te(...e),Ye=e=>It(e),mt=vt,gt=e=>He(e),Lt=BigInt(0),Ze=BigInt(1),Un=e=>e?`"${e}" `:"";function V(e,t=""){if(typeof e!="boolean")throw new TypeError(Un(t)+"expected boolean, got type="+typeof e);return e}function jn(e){if(typeof e=="bigint"){if(!nt(e))throw new RangeError("positive bigint expected, got "+e)}else oe(e);return e}function dt(e,t=""){if(typeof e!="number"){let n=t&&`"${t}" `;throw new TypeError(n+"expected number, got type="+typeof e)}if(!Number.isSafeInteger(e)){let n=t&&`"${t}" `;throw new RangeError(n+"expected safe integer, got "+e)}}function ke(e){if(typeof e!="string")throw new TypeError("hex string expected, got "+typeof e);return e===""?Lt:BigInt("0x"+e)}function Ft(e){return ke(At(e))}function Q(e){return ke(At(rt(W(e)).reverse()))}function ie(e,t){if(bt(t),t===0)throw new Error("zero output length is invalid");e=jn(e);let n=t*2,o=e.toString(16);if(o.length>n)throw new RangeError("number is too large");return It(o.padStart(n,"0"))}function Dt(e,t){return ie(e,t).reverse()}function rt(e){return Uint8Array.from(j(e))}function nt(e){return typeof e=="bigint"&&Lt<=e}function ce(e,t,n){return nt(e)&&nt(t)&&nt(n)&&t<=e&&e<n}function ft(e,t,n,o){if(!ce(t,n,o))throw new RangeError("expected valid "+e+": "+n+" <= n < "+o+", got "+t)}function fe(e){if(e<Lt)throw new Error("expected non-negative bigint, got "+e);return e===Lt?0:e.toString(2).length}var $e=e=>(dt(e,"n"),(Ze<<BigInt(e))-Ze);function P(e,t={},n={},o="object"){et(e,o),et(t,"fields"),et(n,"optFields");function r(i,c,f){let a=o==="object"?`param "${String(i)}"`:`"${o}.${String(i)}"`,d=e[i];if(!Object.hasOwn(e,i)&&(f?d!==void 0:c!=="function"))throw new TypeError(`${a} is invalid: expected own property`);if(f&&d===void 0)return;let g=typeof d;if(g!==c||d===null)throw new TypeError(`${a} is invalid: expected ${c}, got ${g}`)}let s=(i,c)=>Object.entries(i).forEach(([f,a])=>r(f,a,c));s(t,!1),s(n,!0)}var Z=BigInt(0),H=BigInt(1),at=BigInt(2),We=BigInt(3),ae=BigInt(4),Pe=BigInt(5),Zn=BigInt(7),Ke=BigInt(8),zn=BigInt(9),Yn=BigInt(15),Ve=BigInt(16),kn=BigInt("0x10000000000000000");function F(e,t){if(t<=Z)throw new Error("mod: expected positive modulus, got "+t);let n=e%t;return n>=Z?n:t+n}function $n(e,t,n){if(n<=H)throw new Error("pow: expected modulus > 1, got "+n);if(typeof t!="bigint")throw new TypeError("invalid exponent: expected bigint, got "+typeof t);if(t<Z)throw new Error("invalid exponent, negatives unsupported");if(t===Z)return H;if(t===H)return e;let o=e%n;if(o<Z&&(o+=n),t<kn){let c=H;for(;t>Z;)t&H&&(c=c*o%n),o=o*o%n,t>>=H;return c}let r=[];for(;t>Z;)r.push(Number(t&Yn)),t>>=ae;let s=new Array(16);s[0]=H,s[1]=o;for(let c=2;c<16;c++)s[c]=s[c-1]*o%n;let i=s[r[r.length-1]];for(let c=r.length-2;c>=0;c--){i=i*i%n,i=i*i%n,i=i*i%n,i=i*i%n;let f=r[c];f!==0&&(i=i*s[f]%n)}return i}function $(e,t,n){if(n<=H)throw new Error("pow2: expected modulus > 1, got "+n);if(t<Z)throw new Error("pow2: expected non-negative exponent, got "+t);let o=e;for(;t-- >Z;)o*=o,o%=n;return o}function Xe(e,t){if(e===Z)throw new Error("invert: expected non-zero number");if(t<=H)throw new Error("invert: expected modulus > 1, got "+t);let n=F(e,t),o=t,r=Z,s=H;for(;n!==Z;){let c=o/n,f=o-n*c,a=r-s*c;o=n,n=f,r=s,s=a}if(o!==H)throw new Error("invert: does not exist");return F(r,t)}function ue(e,t,n){let o=e;if(!o.eql(o.sqr(t),n))throw new Error("Cannot find square root")}function de(e,t){if((e&H)===Z)throw new Error(t+": expected odd modulus, got "+e)}function Qe(e,t){let n=e,o=(n.ORDER+H)/ae,r=n.pow(t,o);return ue(n,r,t),r}function Xn(e,t){let n=e,o=(n.ORDER-Pe)/Ke,r=n.mul(t,at),s=n.pow(r,o),i=n.mul(t,s),c=n.mul(n.mul(i,at),s),f=n.mul(i,n.sub(c,n.ONE));return ue(n,f,t),f}function Gn(e){let t=Ct(e),n=Je(e),o=n(t,t.neg(t.ONE)),r=n(t,o),s=n(t,t.neg(o)),i=(e+Zn)/Ve;return(c,f)=>{let a=c,d=a.pow(f,i),g=a.mul(d,o),x=a.mul(d,r),b=a.mul(d,s),v=a.eql(a.sqr(g),f),B=a.eql(a.sqr(x),f);d=a.cmov(d,g,v),g=a.cmov(b,x,B);let T=a.eql(a.sqr(g),f),R=a.cmov(d,g,T);return ue(a,R,f),R}}function Je(e){if(e<We)throw new Error("sqrt is not defined for small field");de(e,"tonelliShanks");let t=e-H,n=0;for(;t%at===Z;)t/=at,n++;let o=at,r=Ct(e);for(;yt(r,o)===1;)if(o++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Qe;let s=r.pow(o,t),i=(t+H)/at;return function(f,a){let d=f;if(d.is0(a))return a;if(yt(d,a)!==1)throw new Error("Cannot find square root");let g=n,x=d.mul(d.ONE,s),b=d.pow(a,t),v=d.pow(a,i);for(;!d.eql(b,d.ONE);){if(d.is0(b))throw new Error("Cannot find square root: probably non-prime P");let B=1,T=d.sqr(b);for(;!d.eql(T,d.ONE);)if(B++,T=d.sqr(T),B===g)throw new Error("Cannot find square root");let R=H<<BigInt(g-B-1),y=d.pow(x,R);g=B,x=d.sqr(y),b=d.mul(b,x),v=d.mul(v,y)}return v}}function Wn(e){return de(e,"Fp.sqrt"),e%ae===We?Qe:e%Ke===Pe?Xn:e%Ve===zn?Gn(e):Je(e)}var tn=(e,t)=>(F(e,t)&H)===H,Pn=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function lt(e){if(et(e,"field"),typeof e.ORDER!="bigint")throw new TypeError('param "ORDER" is invalid: expected bigint, got '+typeof e.ORDER);dt(e.BYTES,"BYTES"),dt(e.BITS,"BITS");for(let t of Pn)ct(e[t],"field."+t);if(e.BYTES<1||e.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(e.ORDER<=H)throw new Error("invalid field: expected ORDER > 1, got "+e.ORDER);return e}function Ht(e,t,n=!1){lt(e),qt(t,"nums"),V(n,"passZero");let o=e,r=new Array(t.length).fill(n?o.ZERO:void 0),s=t.reduce((c,f,a)=>o.is0(f)?c:(r[a]=c,o.mul(c,f)),o.ONE),i=o.inv(s);return t.reduceRight((c,f,a)=>o.is0(f)?c:(r[a]=o.mul(c,r[a]),o.mul(c,f)),i),r}function yt(e,t){lt(e);let n=e;de(n.ORDER,"FpLegendre");let o=(n.ORDER-H)/at,r=n.pow(t,o),s=n.eql(r,n.ONE),i=n.eql(r,n.ZERO),c=n.eql(r,n.neg(n.ONE));if(!s&&!i&&!c)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function Kn(e,t){if(t!==void 0&&oe(t),e<=Z)throw new Error("invalid n length: expected positive n, got "+e);if(t!==void 0&&t<1)throw new Error("invalid n length: expected positive bit length, got "+t);let n=fe(e);if(t!==void 0&&t<n)throw new Error(`invalid n length: expected nBitLength (${t}) >= bitLen(n) (${n})`);let o=t!==void 0?t:n,r=Math.ceil(o/8);return{nBitLength:o,nByteLength:r}}var Ge=new WeakMap,Mt=class{constructor(t,n={}){h(this,"ORDER");h(this,"BITS");h(this,"BYTES");h(this,"isLE");h(this,"ZERO",Z);h(this,"ONE",H);h(this,"_lengths");h(this,"_mod");if(t<=H)throw new Error("invalid field: expected ORDER > 1, got "+t);let o;this.isLE=!1,n!=null&&typeof n=="object"&&(typeof n.BITS=="number"&&(o=n.BITS),typeof n.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:n.sqrt,enumerable:!0}),typeof n.isLE=="boolean"&&(this.isLE=n.isLE),n.allowedLengths&&(this._lengths=Object.freeze(n.allowedLengths.slice())),typeof n.modFromBytes=="boolean"&&(this._mod=n.modFromBytes));let{nBitLength:r,nByteLength:s}=Kn(t,o);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=r,this.BYTES=s,Object.freeze(this)}create(t){return F(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof t);return Z<=t&&t<this.ORDER}is0(t){return t===Z}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&H)===H}neg(t){return F(-t,this.ORDER)}eql(t,n){return t===n}sqr(t){return F(t*t,this.ORDER)}add(t,n){return F(t+n,this.ORDER)}sub(t,n){return F(t-n,this.ORDER)}mul(t,n){return F(t*n,this.ORDER)}pow(t,n){return $n(t,n,this.ORDER)}div(t,n){return F(t*Xe(n,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,n){return t+n}subN(t,n){return t-n}mulN(t,n){return t*n}inv(t){return Xe(t,this.ORDER)}sqrt(t){let n=Ge.get(this);return n||Ge.set(this,n=Wn(this.ORDER)),n(this,t)}toBytes(t){return this.isLE?Dt(t,this.BYTES):ie(t,this.BYTES)}fromBytes(t,n=!1){j(t);let{_lengths:o,BYTES:r,isLE:s,ORDER:i,_mod:c}=this;if(o){if(t.length<1||!o.includes(t.length)||t.length>r)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let a=new Uint8Array(r);a.set(t,s?0:a.length-t.length),t=a}if(t.length!==r)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+t.length);let f=s?Q(t):Ft(t);if(c&&(f=F(f,i)),!n&&!this.isValid(f))throw new Error("invalid field element: outside of range 0..ORDER");return f}invertBatch(t){return Ht(this,t,!0)}cmov(t,n,o){return V(o,"condition"),o?n:t}};function Ct(e,t={}){return Object.freeze(Mt.prototype),new Mt(e,t)}var pe=BigInt(0),wt=BigInt(1),Vn=BigInt(4),le=16,en=128,Qn=5,nn=2**31;function Et(e){let t=e;if(typeof t!="function")throw new TypeError('"Point" expected constructor, got type='+typeof e);ct(t.fromAffine,"Point.fromAffine"),ct(t.fromBytes,"Point.fromBytes"),ct(t.fromHex,"Point.fromHex"),et(t.BASE,"Point.BASE"),et(t.ZERO,"Point.ZERO"),lt(t.Fp),lt(t.Fn)}function on(e,t){Et(e),sn(t,e);let n=Ht(e.Fp,t.map(o=>o.Z));return t.map((o,r)=>e.fromAffine(o.toAffine(n[r])))}function Jn(e,t,n=1){if(!Number.isSafeInteger(e)||e<n||e>t)throw new Error("invalid window size, expected ["+n+".."+t+"], got W="+e)}function tr(e,t){let n=e*(4*t+128);if(n>nn)throw new Error("invalid window size: table would need ~"+Math.ceil(n/2**20)+" MiB, max "+nn/2**20+" MiB")}function er(e,t){if(e!==void 0){ct(e,"randomBytes");try{let n=e(t);if(!mt(n)||n.length!==t)return}catch{return}return e}}function sn(e,t){qt(e,"points"),e.forEach((n,o)=>{if(!(n instanceof t))throw new Error("invalid point at index "+o)})}function nr(e,t,n){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((o,r)=>{if(!(n===void 0?t.isValid(o):nt(o)&&o<n))throw new Error("invalid scalar at index "+r)})}var cn=new WeakMap;function he(e){return cn.get(e)||1}function rr(e,t){let n=e.double(),o=[e];for(let r=1;r<t;r++)o.push(o[r-1].add(n));return o}function or(e,t){let n=2**t,o=n/2,r=BigInt(n-1),s=[];for(;e>pe;){let i=0;e&wt&&(i=Number(e&r),i>=o&&(i-=n),e-=BigInt(i)),s.push(i),e>>=wt}return s}function sr(e,t,n){let o=2**t,r=o/2,s=BigInt(o-1),i=BigInt(t),c=[];for(let f=0;f<n;f++){let a=Number(e&s);e>>=i,a>r&&(a-=o,e+=wt),c.push(a)}if(e!==pe)throw new Error("invalid wnaf");return c}function ir(e,t,n){let o=0;for(let s of n)o=Math.max(o,s.length);let r=e;for(let s=o-1;s>=0;s--){s!==o-1&&(r=r.double());for(let i=0;i<n.length;i++){let c=n[i][s];if(c){let f=t[i][Math.abs(c)-1>>1];r=r.add(c<0?f.negate():f)}}}return r}var Ut=class{constructor(t,n){h(this,"Point");h(this,"BASE");h(this,"ZERO");h(this,"randomBytes");h(this,"wnafPrecomputes",new WeakMap);h(this,"baseCanBeBlinded");h(this,"bits");Et(t),this.randomBytes=er(n,le),this.Point=t,this.BASE=t.BASE,this.ZERO=t.ZERO,this.bits=t.Fn.BITS}buildWnafTable(t,n,o){let r=Math.ceil(o/n)+1,s=2**(n-1),i=[],c=t;for(let f=0;f<r;f++){let a=c;for(let d=0;d<s;d++)i.push(a),a=a.add(c);c=i[i.length-1].double()}return{W:n,bits:o,windows:r,comp:i}}wnafCachedCT(t,n){let{W:o,windows:r,comp:s}=t,i=2**(o-1),c=sr(n,o,r),f=this.ZERO,a=this.BASE;for(let d=0;d<r;d++){let g=c[d],x=d*i,b=Math.abs(g)-1,v=s[x];for(let T=1;T<i;T++)v=T===b?s[x+T]:v;let B=v.negate();g===0?a=a.add(s[x]):f=f.add(g<0?B:v)}return{p:f,f:a}}getWnafPrecomputes(t,n,o,r){let s=this.wnafPrecomputes.get(n),i=s==null?void 0:s.find(c=>c.W===t&&c.bits===o);return i||(i=this.buildWnafTable(n,t,o),typeof r=="function"&&(i={...i,comp:r(i.comp)}),s||(s=[],this.wnafPrecomputes.set(n,s)),s.push(i)),i}assertPoint(t){if(!(t instanceof this.Point))throw new TypeError('"point" expected Point instance, got type='+typeof t)}validateMulInput(t,n){if(this.assertPoint(t),!ce(n,wt,this.Point.Fn.ORDER))throw new Error("invalid scalar")}runCT(t,n,o,r){let s=he(t);return s===1?this.fixedWindowCT(t,n,o):this.wnafCachedCT(this.getWnafPrecomputes(s,t,o,r),n)}mulCT(t,n,o){return this.validateMulInput(t,n),this.runCT(t,n,this.bits,o)}mulCTBlinded(t,n,o){if(this.validateMulInput(t,n),this.randomBytes===void 0)throw new Error("randomBytes is required for scalar blinding");let r=this.Point.Fn.BITS+en,s=this.randomBytes(le);if(!mt(s)||s.length!==le)throw new Error("randomBytes returned invalid byte array");s[0]=s[0]&63|128;let i=n+Ft(s)*this.Point.Fn.ORDER;return this.runCT(t,i,r,o)}fixedWindowCT(t,n,o){let r=Qn,s=1<<r,i=$e(r),c=new Array(s);c[0]=this.ZERO;for(let d=1;d<s;d++)c[d]=c[d-1].add(t);let f=Math.ceil(o/r),a=this.ZERO;for(let d=f-1;d>=0;d--){if(d!==f-1)for(let b=0;b<r;b++)a=a.double();let g=Number(n>>BigInt(d*r)&i),x=c[0];for(let b=1;b<s;b++)x=b===g?c[b]:x;a=a.add(x)}return{p:a,f:a}}shouldBlind(t,n){return this.randomBytes===void 0?!1:n===wt?!0:t!==this.BASE?!1:(this.baseCanBeBlinded===void 0&&(this.baseCanBeBlinded=this.mulUnsafe(this.BASE,this.Point.Fn.ORDER).is0()),this.baseCanBeBlinded)}mulSecret(t,n,o,r){return this.shouldBlind(t,o)?this.mulCTBlinded(t,n,r):this.mulCT(t,n,r)}mulUnsafe(t,n,o){if(this.assertPoint(t),!nt(n))throw new Error("invalid scalar");let r=he(t);if(r===1||n>=this.Point.Fn.ORDER)return cr(this.Point,[t],[n],!0);let s=this.getWnafPrecomputes(r,t,this.bits,o);return this.wnafCachedCT(s,n).p}setWindowSize(t,n){this.assertPoint(t),Jn(n,this.bits);let o=Math.ceil((this.bits+en)/n)+1;tr(o*2**(n-1),this.Point.Fp.BYTES),cn.set(t,n),this.wnafPrecomputes.delete(t)}hasWindowSize(t){return he(t)!==1}};function cr(e,t,n,o=!1){if(Et(e),sn(t,e),V(o,"allowOversized"),nr(n,e.Fn,o?e.Fn.ORDER**Vn:void 0),t.length!==n.length)throw new Error("arrays of points and scalars must have equal length");let r=t.map(i=>rr(i,4)),s=n.map(i=>or(i,4));return ir(e.ZERO,r,s)}function rn(e,t,n){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return lt(t),t}else return Ct(e,{isLE:n})}function fn(e,t,n={},o){if(e!=="weierstrass"&&e!=="edwards")throw new Error('expected curve type "weierstrass" or "edwards"');if(o===void 0&&(o=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);P(n);for(let f of["p","n","h"]){let a=t[f];if(!(nt(a)&&a!==pe))throw new Error(`CURVE.${f} must be positive bigint`)}let r=rn(t.p,n.Fp,o),s=rn(t.n,n.Fn,o),c=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let f of c)if(!r.isValid(t[f]))throw new Error(`CURVE.${f} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:r,Fn:s}}function jt(e,t){return function(o){let r=e(o);return{secretKey:r,publicKey:t(r)}}}var Zt=BigInt(0),zt=BigInt(1),Yt=BigInt(2),fr=BigInt(4),an=BigInt(8);function ar(e,t,n,o){let r=e.sqr(n),s=e.sqr(o),i=e.add(e.mul(t.a,r),s),c=e.add(e.ONE,e.mul(t.d,e.mul(r,s)));return e.eql(i,c)}function un(e,t={}){P(t,{},{},"extraOpts");let n=t,o=fn("edwards",e,n,n.FpFnLE),{Fp:r,Fn:s}=o,i=o.CURVE,{h:c}=i;if(yt(r,i.a)!==1)throw new Error("edwards: CURVE.a must be a square in Fp for complete addition formulas");if(yt(r,i.d)!==-1)throw new Error("edwards: CURVE.d must be a non-square in Fp for complete addition formulas");P(n,{},{uvRatio:"function",randomBytes:"function"});let f=n.randomBytes===void 0?gt:n.randomBytes,a=Yt<<BigInt(r.BYTES*8)-zt;function d(A){if(!r.isOdd)throw new Error("Field does not have .isOdd()");return r.isOdd(A)}let g=n.uvRatio===void 0?(A,u)=>{try{return{isValid:!0,value:r.sqrt(r.div(A,u))}}catch{return{isValid:!1,value:Zt}}}:n.uvRatio;if(!ar(r,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");let x=r.eql(i.a,r.neg(r.ONE))?A=>r.neg(A):r.eql(i.a,r.ONE)?A=>A:A=>r.mul(i.a,A);function b(A,u,w=!1){let m=w?zt:Zt;return ft("coordinate "+A,u,m,a),u}function v(A){if(!(A instanceof B))throw new Error("EdwardsPoint expected")}let y=class y{constructor(u,w,m,D){h(this,"X");h(this,"Y");h(this,"Z");h(this,"T");this.X=b("x",u),this.Y=b("y",w),this.Z=b("z",m,!0),this.T=b("t",D),Object.freeze(this)}static CURVE(){return i}static fromAffine(u){if(u instanceof y)throw new Error("extended point not allowed");let{x:w,y:m}=u||{};return b("x",w),b("y",m),new y(w,m,r.ONE,r.mul(w,m))}static fromBytes(u,w=!1){let m=r.BYTES,{a:D,d:I}=i;u=rt(j(u,m,"point")),V(w,"zip215");let E=rt(u),_=u[m-1];E[m-1]=_&-129;let M=Q(E),C=w?a:r.ORDER;ft("point.y",M,Zt,C);let N=r.sqr(M),l=r.sub(N,r.ONE),S=r.sub(r.mulN(I,N),D),{isValid:p,value:O}=g(l,S);if(!p)throw new Error("bad point: invalid y coordinate");let L=d(O),q=(_&128)!==0;if(!w&&r.is0(O)&&q)throw new Error("bad point: x=0 and x_0=1");return q!==L&&(O=r.neg(O)),y.fromAffine({x:O,y:M})}static fromHex(u,w=!1){return y.fromBytes(Ye(u),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(u=6,w=!0){return R.setWindowSize(this,u),w||this.multiply(Yt),this}assertValidity(){let u=this,{a:w,d:m}=i;if(u.is0())throw new Error("bad point: ZERO");let{X:D,Y:I,Z:E,T:_}=u,M=r.sqr(D),C=r.sqr(I),N=r.sqr(E),l=r.sqr(N),S=r.mul(M,w),p=r.mul(r.add(S,C),N),O=r.add(l,r.mul(m,r.mul(M,C)));if(!r.eql(p,O))throw new Error("bad point: equation left != right (1)");let L=r.mul(D,I),q=r.mul(E,_);if(!r.eql(L,q))throw new Error("bad point: equation left != right (2)")}equals(u){v(u);let{X:w,Y:m,Z:D}=this,{X:I,Y:E,Z:_}=u,M=r.mul(w,_),C=r.mul(I,D),N=r.mul(m,_),l=r.mul(E,D);return r.eql(M,C)&&r.eql(N,l)}is0(){return this.equals(y.ZERO)}negate(){return new y(r.neg(this.X),this.Y,this.Z,r.neg(this.T))}double(){let{X:u,Y:w,Z:m}=this,D=r.sqr(u),I=r.sqr(w),E=r.mul(r.sqr(m),Yt),_=x(D),M=r.addN(u,w),C=r.sub(r.subN(r.sqr(M),D),I),N=r.addN(_,I),l=r.subN(N,E),S=r.subN(_,I),p=r.mul(C,l),O=r.mul(N,S),L=r.mul(C,S),q=r.mul(l,N);return new y(p,O,q,L)}add(u){v(u);let{d:w}=i,{X:m,Y:D,Z:I,T:E}=this,{X:_,Y:M,Z:C,T:N}=u,l=r.mul(m,_),S=r.mul(D,M),p=r.mul(r.mulN(E,w),N),O=r.mul(I,C),L=r.sub(r.subN(r.mulN(r.addN(m,D),r.addN(_,M)),l),S),q=r.subN(O,p),U=r.addN(O,p),z=r.sub(S,x(l)),Y=r.mul(L,q),k=r.mul(U,z),K=r.mul(L,z),ot=r.mul(q,U);return new y(Y,k,ot,K)}subtract(u){return v(u),this.add(u.negate())}multiply(u){if(!s.isValidNot0(u))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:w,f:m}=R.mulSecret(this,u,c,T);return T([w,m])[0]}multiplyUnsafe(u){if(!s.isValid(u))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return u===Zt?y.ZERO:this.is0()||u===zt?this:R.mulUnsafe(this,u,T)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return R.mulUnsafe(this,i.n).is0()}toAffine(u){let w=this,m=u;if(m!=null&&typeof m!="bigint")throw new TypeError('"invertedZ" expected bigint, got type='+typeof m);let{X:D,Y:I,Z:E}=w,_=w.is0();m==null&&(m=_?r.create(an):r.inv(E));let M=r.mul(D,m),C=r.mul(I,m),N=r.mul(E,m);if(_)return{x:r.ZERO,y:r.ONE};if(!r.eql(N,r.ONE))throw new Error("invZ was invalid");return{x:M,y:C}}clearCofactor(){return c===zt?this:c===Yt?this.double():c===fr?this.double().double():c===an?this.double().double().double():this.multiplyUnsafe(c)}toBytes(){let{x:u,y:w}=this.toAffine(),m=r.toBytes(w);return m[m.length-1]|=d(u)?128:0,m}toHex(){return ze(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}};h(y,"BASE",new y(i.Gx,i.Gy,r.ONE,r.mul(i.Gx,i.Gy))),h(y,"ZERO",new y(r.ZERO,r.ONE,r.ONE,r.ZERO)),h(y,"Fp",r),h(y,"Fn",s);let B=y,T=A=>on(B,A),R=new Ut(B,f);return R.bits>=6&&B.BASE.precompute(6),Object.freeze(B.prototype),Object.freeze(B),B}function dn(e,t,n={}){if(Et(e),typeof t!="function")throw new Error('"hash" function param is required');let o=t,r=n;P(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function",toMontgomery:"function",toMontgomerySecret:"function"});let{prehash:s}=r,{BASE:i,Fp:c,Fn:f}=e,a=o.outputLen,d=2*c.BYTES;if(a!==void 0&&(dt(a,"hash.outputLen"),a!==d))throw new Error(`hash.outputLen must be ${d}, got ${a}`);let g=r.randomBytes===void 0?gt:r.randomBytes,x=r.toMontgomery,b=r.toMontgomerySecret,v=r.adjustScalarBytes===void 0?l=>l:r.adjustScalarBytes,B=r.domain===void 0?(l,S,p)=>{if(V(p,"phflag"),S.length||p)throw new Error("Contexts/pre-hash are not supported");return l}:r.domain;function T(l){return f.create(Q(l))}function R(l){let S=E.secretKey;j(l,E.secretKey,"secretKey");let p=j(o(l),2*S,"hashedSecretKey"),O=v(p.slice(0,S)),L=p.slice(S,2*S),q=T(O);return{head:O,prefix:L,scalar:q}}function y(l){let{head:S,prefix:p,scalar:O}=R(l),L=i.multiply(O),q=L.toBytes();return{head:S,prefix:p,scalar:O,point:L,pointBytes:q}}function A(l){return y(l).pointBytes}function u(l=Uint8Array.of(),...S){let p=se(...S);return T(o(B(p,j(l,void 0,"context"),!!s)))}function w(l,S,p={}){P(p,{},{},"options"),l=rt(j(l,void 0,"message")),s&&(l=s(l));let{prefix:O,scalar:L,pointBytes:q}=y(S),U=u(p.context,O,l),z=i.multiply(U).toBytes(),Y=u(p.context,z,q,l),k=f.create(U+Y*L);if(!f.isValid(k))throw new Error("sign failed: invalid s");let K=se(z,f.toBytes(k));return j(K,E.signature,"result")}let m={zip215:r.zip215};function D(l,S,p,O=m){P(O);let{context:L}=O,q=O.zip215===void 0?!!m.zip215:O.zip215,U=E.signature;l=j(l,U,"signature"),S=j(S,void 0,"message"),p=j(p,E.publicKey,"publicKey"),q!==void 0&&V(q,"zip215"),s&&(S=s(S));let z=U/2,Y=l.subarray(0,z),k=Q(l.subarray(z,U)),K,ot,St;try{K=e.fromBytes(p,q),ot=e.fromBytes(Y,q),St=i.multiplyUnsafe(k)}catch{return!1}if(!q&&K.isSmallOrder())return!1;let ht=u(L,Y,p,S);return ot.add(K.multiplyUnsafe(ht)).subtract(St).clearCofactor().is0()}let I=c.BYTES,E={secretKey:I,publicKey:I,signature:2*I,seed:I};function _(l){return l=l===void 0?g(E.seed):l,j(l,E.seed,"seed")}function M(l){return mt(l)&&l.length===E.secretKey}function C(l,S){try{return!!e.fromBytes(l,S===void 0?m.zip215:S)}catch{return!1}}let N={getExtendedPublicKey:y,randomSecretKey:_,isValidSecretKey:M,isValidPublicKey:C,toMontgomery(l){if(x===void 0)throw new Error("Montgomery conversion is not supported for this curve");return x(e.fromBytes(l))},toMontgomerySecret(l){if(b===void 0)throw new Error("Montgomery conversion is not supported for this curve");return b(l)}};return Object.freeze(E),Object.freeze(N),Object.freeze({keygen:jt(_,A),getPublicKey:A,sign:w,verify:D,utils:N,Point:e,lengths:E})}var ut=BigInt(0),X=BigInt(1),kt=BigInt(2);function ln(e,t){return e+t-(t>>X<<X)}function ur(e){let t=BigInt(6)*e;return(n,o,r)=>{let s=o+r,c=((t+r-o)*n+o)%e;return{x_2:c,x_3:s-c}}}function dr(e){return P(e,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function",scalarMultBase:"function"}),Object.freeze({...e})}function hn(e){let t=dr(e),{P:n,type:o,adjustScalarBytes:r,powPminus2:s,randomBytes:i}=t,c=t.scalarMultBase,f=o==="x25519";if(!f&&o!=="x448")throw new Error("invalid type");let a=i===void 0?gt:i,d=f?255:448,g=ur(n),x=f?32:56,b=BigInt(f?9:5),v=BigInt(f?121665:39081),B=f?kt**BigInt(254):kt**BigInt(447),T=f?BigInt(8)*(kt**BigInt(251)-X):BigInt(4)*(kt**BigInt(445)-X),R=B+T+X,y=p=>F(p,n),A=u(b);function u(p){return Dt(y(p),x)}function w(p){let O=rt(j(p,x,"uCoordinate"));return f&&(O[31]&=127),y(Q(O))}function m(p){return Q(r(rt(j(p,x,"scalar"))))}let D=new Set(f?[ut,X,n-X,BigInt("325606250916557431795983626356110631294008115727848805560023387167927233504"),BigInt("39382357235489614581723060781553021112529911719440698176882885853963445705823")]:[ut,X,n-X]);function I(p,O){let L=w(O);if(D.has(L))throw new Error("invalid private or public key received");let q=C(L,m(p));if(q===ut)throw new Error("invalid private or public key received");return u(q)}function E(p){if(c===void 0)return I(p,A);let O=m(p);ft("scalar",O,B,R);let L=y(c(O));if(L===ut)throw new Error("invalid private or public key received");return u(L)}let _=E,M=I;function C(p,O){ft("u",p,ut,n),ft("scalar",O,B,R);let L=O,q=p,U=X,z=ut,Y=p,k=X,K=L^L>>X;for(let ht=BigInt(d-1);ht>=ut;ht--){let Xt=ln(n,K>>ht);({x_2:U,x_3:Y}=g(Xt,U,Y)),{x_2:z,x_3:k}=g(Xt,z,k);let Ot=U+z,Gt=y(Ot*Ot),Wt=U-z,me=y(Wt*Wt),ge=Gt-me,En=Y+k,Bn=Y-k,ye=y(Bn*Ot),we=y(En*Wt),Ee=ye+we,Be=ye-we;Y=y(Ee*Ee),k=y(q*y(Be*Be)),U=y(Gt*me),z=y(ge*(Gt+y(v*ge)))}let ot=ln(n,L);({x_2:U,x_3:Y}=g(ot,U,Y)),{x_2:z,x_3:k}=g(ot,z,k);let St=s(z);return y(U*St)}let N={secretKey:x,publicKey:x,seed:x},l=p=>(p=p===void 0?a(x):p,j(p,N.seed,"seed"),p),S={randomSecretKey:l};return Object.freeze(N),Object.freeze(S),Object.freeze({keygen:jt(l,_),getSharedSecret:M,getPublicKey:_,scalarMult:I,scalarMultBase:E,utils:S,GuBytes:A.slice(),lengths:N})}var pn=BigInt(0),xe=BigInt(1),xn=BigInt(2),lr=BigInt(3),hr=BigInt(5),pr=BigInt(8),$t=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),xr={p:$t,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:pr,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function gn(e){let t=BigInt(10),n=BigInt(20),o=BigInt(40),r=BigInt(80),s=$t,c=e*e%s*e%s,f=$(c,xn,s)*c%s,a=$(f,xe,s)*e%s,d=$(a,hr,s)*a%s,g=$(d,t,s)*d%s,x=$(g,n,s)*g%s,b=$(x,o,s)*x%s,v=$(b,r,s)*b%s,B=$(v,r,s)*b%s,T=$(B,t,s)*d%s;return{pow_p_5_8:$(T,xn,s)*e%s,b2:c}}function be(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var bn=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function br(e,t){let n=$t,o=F(t*t*t,n),r=F(o*o*t,n),s=gn(e*r).pow_p_5_8,i=F(e*o*s,n),c=F(t*i*i,n),f=i,a=F(i*bn,n),d=c===e,g=c===F(-e,n),x=c===F(-e*bn,n);return d&&(i=f),(g||x)&&(i=a),tn(i,n)&&(i=F(-i,n)),{isValid:d||g,value:i}}var Bt=un(xr,{uvRatio:br}),mn=Bt.Fp;function mr(e){let{y:t}=e;return mn.toBytes(mn.div(xe+t,xe-t))}function gr(e){let t=Bt.Fp.BYTES;return W(e,t),be(re(e.subarray(0,t))).subarray(0,t)}function yr(e){return dn(Bt,re,Object.assign({adjustScalarBytes:be,toMontgomery:mr,toMontgomerySecret:gr,zip215:!0},e))}var yn=yr({});var wn=(()=>{let e=$t,t=n=>{let{pow_p_5_8:o,b2:r}=gn(n);return F($(o,lr,e)*r,e)};return hn({P:e,type:"x25519",powPminus2:t,adjustScalarBytes:be,scalarMultBase:n=>{let o=F(n,Bt.Fn.ORDER);if(o===pn)return pn;let r=Bt.BASE.multiply(o);return F((r.Z+r.Y)*t(F(r.Z-r.Y,e)),e)}})})();return An(wr);})(); |