export declare const WORKER_SOURCE = "\"use strict\";(()=>{var U=new Uint8Array([0,97,115,109,1,0,0,0,1,8,1,96,3,127,127,127,1,127,3,2,1,0,5,4,1,1,1,1,7,20,2,7,99,111,109,112,97,114,101,0,0,6,109,101,109,111,114,121,2,0,10,133,1,1,130,1,3,2,127,1,126,1,123,3,64,32,3,65,16,106,34,4,32,2,76,4,64,32,6,32,0,32,3,106,253,0,4,0,32,1,32,3,106,253,0,4,0,253,81,253,80,33,6,32,4,33,3,12,1,11,11,3,64,32,2,32,3,74,4,64,32,5,32,0,32,3,106,49,0,0,32,1,32,3,106,49,0,0,133,132,33,5,32,3,65,1,106,33,3,12,1,11,11,66,0,32,5,32,6,253,29,0,32,6,253,29,1,132,132,34,5,125,32,5,132,66,63,135,66,127,133,167,65,1,113,11]);var R=null,T=null,$=null,K=!1,m=null,B=32768;function q(){if(K){if(m)throw m;return}if(K=!0,!N())throw m=new Error(\"leviathan-crypto: constantTimeEqual requires WebAssembly SIMD, this runtime does not support it\"),m;try{let e=U.buffer.slice(U.byteOffset,U.byteOffset+U.byteLength),t=new WebAssembly.Module(e),o=new WebAssembly.Instance(t).exports;T=o.memory,$=new Uint8Array(T.buffer),R=o.compare}catch(e){throw m=new Error(`leviathan-crypto: cte WASM module failed to instantiate: ${e.message}`),m}}var _=(e,t)=>{if(e.length!==t.length)return!1;if(e.length>B)throw new RangeError(`constantTimeEqual: max ${B} bytes (got ${e.length})`);q();let r=$,o=R;if(!r||!o)throw new Error(\"leviathan-crypto: cte init invariant violated\");r.set(e,0),r.set(t,e.length);try{return o(0,e.length,e.length)===1}finally{r.fill(0,0,B*2)}};var a=e=>{e.fill(0)};var S=(...e)=>{let t=e.reduce((n,s)=>n+s.length,0),r=new Uint8Array(t),o=0;for(let n of e)r.set(n,o),o+=n.length;return r};var u=null;function N(){if(u!==null)return u;if(typeof WebAssembly>\"u\"||typeof WebAssembly.validate!=\"function\")return u=!1,u;try{u=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))}catch{u=!1}return u}var E=class e extends Error{constructor(t){super(`${t}: authentication failed`),this.name=\"AuthenticationError\",Object.setPrototypeOf(this,e.prototype)}};var O=\"invalid ciphertext\";function P(e){let t=16-e.length%16,r=new Uint8Array(e.length+t);return r.set(e),r.fill(t,e.length),r}function k(e){if(e.length===0||e.length%16!==0)throw new RangeError(O);let t=e[e.length-1],r=0;r|=t-1>>>31,r|=16-t>>>31;for(let n=0;n<16;n++){let s=e.length-16+n,i=16-t-n-1>>31&255;r|=(e[s]^t)&i}if(r-1>>>31^1)throw new RangeError(O);return e.subarray(0,e.length-t)}function v(e,t,r){let o=e.getSha256InputOffset(),n=e.getSha256OutOffset(),s=t;return s.length>64&&(e.sha256Init(),D(e.memory,o,s,64,e.sha256Update),e.sha256Final(),s=new Uint8Array(e.memory.buffer).slice(n,n+32)),new Uint8Array(e.memory.buffer).set(s,o),e.hmac256Init(s.length),D(e.memory,o,r,64,e.hmac256Update),e.hmac256Final(),new Uint8Array(e.memory.buffer).slice(n,n+32)}function D(e,t,r,o,n){let s=new Uint8Array(e.buffer),i=0;for(;i{let t=e.data;if(t.type===\"init\"){try{let r=new WebAssembly.Memory({initial:3,maximum:3});c=(await WebAssembly.instantiate(t.modules.sha2,{env:{memory:r}})).exports;let n=new WebAssembly.Memory({initial:3,maximum:3});if(f=(await WebAssembly.instantiate(t.modules.serpent,{env:{memory:n}})).exports,p=new Uint8Array(t.derivedKeyBytes),p.length!==96)throw new Error(`expected 96 derived key bytes (got ${p.length})`);t.derivedKeyBytes.fill(0),self.postMessage({type:\"ready\"})}catch(r){t.derivedKeyBytes&&t.derivedKeyBytes.fill(0),self.postMessage({type:\"error\",id:-1,message:r.message,isAuthError:!1})}return}if(t.type===\"wipe\"){p&&p.fill(0),p=void 0,c&&c.wipeBuffers(),f&&f.wipeBuffers(),c=void 0,f=void 0,self.postMessage({type:\"wiped\"});return}if(!p||!c||!f){self.postMessage({type:\"error\",id:t.id,message:\"worker not initialized\",isAuthError:!1});return}try{let{id:r,op:o,counterNonce:n,data:s,aad:i}=t,l=i??new Uint8Array(0),y=t.derivedKeyBytes??p,M=y.subarray(0,32),I=y.subarray(32,64),W=y.subarray(64,96),g;if(o===\"seal\"){let d=v(c,W,n),C=d.slice(0,16);a(d);let A=F(f,M,C,s),h=new Uint8Array(4);new DataView(h.buffer).setUint32(0,l.length,!1);let b=S(n,h,l,A),w=v(c,I,b);g=S(A,w),a(C),a(b)}else{let d=s.subarray(0,s.length-32),C=s.subarray(s.length-32),A=v(c,W,n),h=A.slice(0,16);a(A);let b=new Uint8Array(4);new DataView(b.buffer).setUint32(0,l.length,!1);let w=S(n,b,l,d),x=v(c,I,w);if(!_(x,C))throw a(h),a(w),a(x),new E(\"serpent\");a(w),a(x),g=L(f,M,h,d),a(h)}let j=g.buffer instanceof ArrayBuffer?[g.buffer]:[];self.postMessage({type:\"result\",id:r,data:g},{transfer:j})}catch(r){let o=r instanceof E;self.postMessage({type:\"error\",id:t.id,message:r.message,cipher:o?\"serpent\":void 0,isAuthError:o})}finally{t.derivedKeyBytes&&t.derivedKeyBytes.fill(0),c&&c.wipeBuffers(),f&&f.wipeBuffers()}};})();\n";