@libp2p/webrtc 6.0.1-425a42cdd → 6.0.1-71e8ee163

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -9,7 +9,7 @@ ${e.join(`
9
9
  `)}static pad(e=0){return"".padStart(2*e," ")}static serializeObj(e,t=0){let n=[],o=this.pad(t++),i="",s=e[_e.VALUE];s&&(i=` ${s}`),n.push(`${o}${e[_e.NAME]}:${i}`),o=this.pad(t);for(let a in e){if(typeof a=="symbol")continue;let c=e[a],f=a?`${a}: `:"";if(typeof c=="string"||typeof c=="number"||typeof c=="boolean")n.push(`${o}${f}${c}`);else if(c instanceof Date)n.push(`${o}${f}${c.toUTCString()}`);else if(Array.isArray(c))for(let p of c)p[_e.NAME]=a,n.push(...this.serializeObj(p,t));else if(c instanceof _e)c[_e.NAME]=a,n.push(...this.serializeObj(c,t));else if(H.BufferSourceConverter.isBufferSource(c))a?(n.push(`${o}${f}`),n.push(...this.serializeBufferSource(c,t+1))):n.push(...this.serializeBufferSource(c,t));else if("toTextObject"in c){let p=c.toTextObject();p[_e.NAME]=a,n.push(...this.serializeObj(p,t))}else throw new TypeError("Cannot serialize data in text format. Unsupported type.")}return n}static serializeBufferSource(e,t=0){let n=this.pad(t),o=H.BufferSourceConverter.toUint8Array(e),i=[];for(let s=0;s<o.length;){let a=[];for(let c=0;c<16&&s<o.length;c++){c===8&&a.push("");let f=o[s++].toString(16).padStart(2,"0");a.push(f)}i.push(`${n}${a.join(" ")}`)}return i}static serializeAlgorithm(e){return this.algorithmSerializer.toTextObject(e)}};Nn.oidSerializer=tn;Nn.algorithmSerializer=pg;var ca,Bo=class r{get rawData(){return he(this,ca,"f")||Me(this,ca,F.serialize(this.asn),"f"),he(this,ca,"f")}constructor(...e){ca.set(this,void 0),H.BufferSourceConverter.isBufferSource(e[0])?(this.asn=F.parse(e[0],e[1]),Me(this,ca,H.BufferSourceConverter.toArrayBuffer(e[0]),"f"),this.onInit(this.asn)):(this.asn=e[0],this.onInit(this.asn))}equal(e){return e instanceof r?(0,H.isEqual)(e.rawData,this.rawData):!1}toString(e="text"){switch(e){case"asn":return F.toString(this.rawData);case"text":return Nn.serialize(this.toTextObject());case"hex":return H.Convert.ToHex(this.rawData);case"base64":return H.Convert.ToBase64(this.rawData);case"base64url":return H.Convert.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){let e=this.toTextObjectEmpty();return e[""]=this.rawData,e}toTextObjectEmpty(e){return new _e(this.getTextName(),{},e)}};ca=new WeakMap;Bo.NAME="ASN";var Qt=class r extends Bo{constructor(...e){let t;H.BufferSourceConverter.isBufferSource(e[0])?t=H.BufferSourceConverter.toArrayBuffer(e[0]):t=F.serialize(new yt({extnID:e[0],critical:e[1],extnValue:new ie(H.BufferSourceConverter.toArrayBuffer(e[2]))})),super(t,yt)}onInit(e){this.type=e.extnID,this.critical=e.critical,this.value=e.extnValue.buffer}toTextObject(){let e=this.toTextObjectWithoutValue();return e[""]=this.value,e}toTextObjectWithoutValue(){let e=this.toTextObjectEmpty(this.critical?"critical":void 0);return e[_e.NAME]===r.NAME&&(e[_e.NAME]=tn.toString(this.type)),e}},pA,$u=class r{static isCryptoKeyPair(e){return e&&e.privateKey&&e.publicKey}static isCryptoKey(e){return e&&e.usages&&e.type&&e.algorithm&&e.extractable!==void 0}constructor(){this.items=new Map,this[pA]="CryptoProvider",typeof self<"u"&&typeof crypto<"u"?this.set(r.DEFAULT,crypto):typeof globalThis<"u"&&globalThis.crypto&&globalThis.crypto.subtle&&this.set(r.DEFAULT,globalThis.crypto)}clear(){this.items.clear()}delete(e){return this.items.delete(e)}forEach(e,t){return this.items.forEach(e,t)}has(e){return this.items.has(e)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(e=r.DEFAULT){let t=this.items.get(e.toLowerCase());if(!t)throw new Error(`Cannot get Crypto by name '${e}'`);return t}set(e,t){if(typeof e=="string"){if(!t)throw new TypeError("Argument 'value' is required");this.items.set(e.toLowerCase(),t)}else this.items.set(r.DEFAULT,e);return this}};pA=Symbol.toStringTag;$u.DEFAULT="default";var ut=new $u,uB=/^[0-2](?:\.[1-9][0-9]*)+$/;function lB(r){return new RegExp(uB).test(r)}var Dh=class{constructor(e={}){this.items={};for(let t in e)this.register(t,e[t])}get(e){return this.items[e]||null}findId(e){return lB(e)?e:this.get(e)}register(e,t){this.items[e]=t,this.items[t]=e}},qt=new Dh;qt.register("CN","2.5.4.3");qt.register("L","2.5.4.7");qt.register("ST","2.5.4.8");qt.register("O","2.5.4.10");qt.register("OU","2.5.4.11");qt.register("C","2.5.4.6");qt.register("DC","0.9.2342.19200300.100.1.25");qt.register("E","1.2.840.113549.1.9.1");qt.register("G","2.5.4.42");qt.register("I","2.5.4.43");qt.register("SN","2.5.4.4");qt.register("T","2.5.4.12");function fB(r,e){return`\\${H.Convert.ToHex(H.Convert.FromUtf8String(e)).toUpperCase()}`}function hB(r){return r.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,fB)}var Dr=class r{static isASCII(e){for(let t=0;t<e.length;t++)if(e.charCodeAt(t)>255)return!1;return!0}static isPrintableString(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(e)}constructor(e,t={}){this.extraNames=new Dh,this.asn=new Oe;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n];this.extraNames.register(n,o)}typeof e=="string"?this.asn=this.fromString(e):e instanceof Oe?this.asn=e:H.BufferSourceConverter.isBufferSource(e)?this.asn=F.parse(e,Oe):this.asn=this.fromJSON(e)}getField(e){let t=this.extraNames.findId(e)||qt.findId(e),n=[];for(let o of this.asn)for(let i of o)i.type===t&&n.push(i.value.toString());return n}getName(e){return this.extraNames.get(e)||qt.get(e)}toString(){return this.asn.map(e=>e.map(t=>{let n=this.getName(t.type)||t.type,o=t.value.anyValue?`#${H.Convert.ToHex(t.value.anyValue)}`:hB(t.value.toString());return`${n}=${o}`}).join("+")).join(", ")}toJSON(){var e;let t=[];for(let n of this.asn){let o={};for(let i of n){let s=this.getName(i.type)||i.type;(e=o[s])!==null&&e!==void 0||(o[s]=[]),o[s].push(i.value.anyValue?`#${H.Convert.ToHex(i.value.anyValue)}`:i.value.toString())}t.push(o)}return t}fromString(e){let t=new Oe,n=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,o=null,i=",";for(;o=n.exec(`${e},`);){let[,s,a]=o,c=a[a.length-1];(c===","||c==="+")&&(a=a.slice(0,a.length-1),o[3]=c);let f=o[3];s=this.getTypeOid(s);let p=this.createAttribute(s,a);i==="+"?t[t.length-1].push(p):t.push(new ao([p])),i=f}return t}fromJSON(e){let t=new Oe;for(let n of e){let o=new ao;for(let i in n){let s=this.getTypeOid(i),a=n[i];for(let c of a){let f=this.createAttribute(s,c);o.push(f)}}t.push(o)}return t}getTypeOid(e){if(/[\d.]+/.test(e)||(e=this.getName(e)||""),!e)throw new Error(`Cannot get OID for name type '${e}'`);return e}createAttribute(e,t){let n=new pi({type:e});if(typeof t=="object")for(let o in t)switch(o){case"ia5String":n.value.ia5String=t[o];break;case"utf8String":n.value.utf8String=t[o];break;case"universalString":n.value.universalString=t[o];break;case"bmpString":n.value.bmpString=t[o];break;case"printableString":n.value.printableString=t[o];break}else if(t[0]==="#")n.value.anyValue=H.Convert.FromHex(t.slice(1));else{let o=this.processStringValue(t);e===this.getName("E")||e===this.getName("DC")?n.value.ia5String=o:r.isPrintableString(o)?n.value.printableString=o:n.value.utf8String=o}return n}processStringValue(e){let t=/"(.*?[^\\])?"/.exec(e);return t&&(e=t[1]),e.replace(/\\0a/ig,`
10
10
  `).replace(/\\0d/ig,"\r").replace(/\\0g/ig," ").replace(/\\(.)/g,"$1")}toArrayBuffer(){return F.serialize(this.asn)}async getThumbprint(...e){var t;let n,o="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(o=e[0]||o,n=e[1]||ut.get()):n=e[0]||ut.get(),await n.subtle.digest(o,this.toArrayBuffer())}},dA="Cannot initialize GeneralName from ASN.1 data.",tA=`${dA} Unsupported string format in use.`,pB=`${dA} Value doesn't match to GUID regular expression.`,rA=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,nA="1.3.6.1.4.1.311.25.1",oA="1.3.6.1.4.1.311.20.2.3",ng="dns",og="dn",ig="email",sg="ip",ag="url",cg="guid",ug="upn",Th="id",en=class extends Bo{constructor(...e){let t;if(e.length===2)switch(e[0]){case og:{let n=new Dr(e[1]).toArrayBuffer(),o=F.parse(n,Oe);t=new ae({directoryName:o});break}case ng:t=new ae({dNSName:e[1]});break;case ig:t=new ae({rfc822Name:e[1]});break;case cg:{let n=new RegExp(rA,"i").exec(e[1]);if(!n)throw new Error("Cannot parse GUID value. Value doesn't match to regular expression");let o=n.slice(1).map((i,s)=>s<3?H.Convert.ToHex(new Uint8Array(H.Convert.FromHex(i)).reverse()):i).join("");t=new ae({otherName:new co({typeId:nA,value:F.serialize(new ie(H.Convert.FromHex(o)))})});break}case sg:t=new ae({iPAddress:e[1]});break;case Th:t=new ae({registeredID:e[1]});break;case ug:{t=new ae({otherName:new co({typeId:oA,value:F.serialize(Nm.toASN(e[1]))})});break}case ag:t=new ae({uniformResourceIdentifier:e[1]});break;default:throw new Error("Cannot create GeneralName. Unsupported type of the name")}else H.BufferSourceConverter.isBufferSource(e[0])?t=F.parse(e[0],ae):t=e[0];super(t)}onInit(e){if(e.dNSName!=null)this.type=ng,this.value=e.dNSName;else if(e.rfc822Name!=null)this.type=ig,this.value=e.rfc822Name;else if(e.iPAddress!=null)this.type=sg,this.value=e.iPAddress;else if(e.uniformResourceIdentifier!=null)this.type=ag,this.value=e.uniformResourceIdentifier;else if(e.registeredID!=null)this.type=Th,this.value=e.registeredID;else if(e.directoryName!=null)this.type=og,this.value=new Dr(e.directoryName).toString();else if(e.otherName!=null)if(e.otherName.typeId===nA){this.type=cg;let t=F.parse(e.otherName.value,ie),n=new RegExp(rA,"i").exec(H.Convert.ToHex(t));if(!n)throw new Error(pB);this.value=n.slice(1).map((o,i)=>i<3?H.Convert.ToHex(new Uint8Array(H.Convert.FromHex(o)).reverse()):o).join("-")}else if(e.otherName.typeId===oA)this.type=ug,this.value=F.parse(e.otherName.value,et).toString();else throw new Error(tA);else throw new Error(tA)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let e;switch(this.type){case og:case ng:case cg:case sg:case Th:case ug:case ag:e=this.type.toUpperCase();break;case ig:e="Email";break;default:throw new Error("Unsupported GeneralName type")}let t=this.value;return this.type===Th&&(t=tn.toString(t)),new _e(e,void 0,t)}},Dn=class extends Bo{constructor(e){let t;if(e instanceof je)t=e;else if(Array.isArray(e)){let n=[];for(let o of e)if(o instanceof ae)n.push(o);else{let i=F.parse(new en(o.type,o.value).rawData,ae);n.push(i)}t=new je(n)}else if(H.BufferSourceConverter.isBufferSource(e))t=F.parse(e,je);else throw new Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(t)}onInit(e){let t=[];for(let n of e){let o=null;try{o=new en(n)}catch{continue}t.push(o)}this.items=t}toJSON(){return this.items.map(e=>e.toJSON())}toTextObject(){let e=super.toTextObjectEmpty();for(let t of this.items){let n=t.toTextObject(),o=e[n[_e.NAME]];Array.isArray(o)||(o=[],e[n[_e.NAME]]=o),o.push(n)}return e}};Dn.NAME="GeneralNames";var Hu="-{5}",Fu="\\n",dB=`[^${Fu}]+`,mB=`${Hu}BEGIN (${dB}(?=${Hu}))${Hu}`,yB=`${Hu}END \\1${Hu}`,fa="\\n",gB=`[^:${Fu}]+`,bB=`(?:[^${Fu}]+${fa}(?: +[^${Fu}]+${fa})*)`,wB="[a-zA-Z0-9=+/]+",xB=`(?:${wB}${fa})+`,iA=`${mB}${fa}(?:((?:${gB}: ${bB})+))?${fa}?(${xB})${yB}`,Dt=class{static isPem(e){return typeof e=="string"&&new RegExp(iA,"g").test(e.replace(/\r/g,""))}static decodeWithHeaders(e){e=e.replace(/\r/g,"");let t=new RegExp(iA,"g"),n=[],o=null;for(;o=t.exec(e);){let i=o[3].replace(new RegExp(`[${Fu}]+`,"g"),""),s={type:o[1],headers:[],rawData:H.Convert.FromBase64(i)},a=o[2];if(a){let c=a.split(new RegExp(fa,"g")),f=null;for(let p of c){let[h,y]=p.split(/:(.*)/);if(y===void 0){if(!f)throw new Error("Cannot parse PEM string. Incorrect header value");f.value+=h.trim()}else f&&s.headers.push(f),f={key:h,value:y.trim()}}f&&s.headers.push(f)}n.push(s)}return n}static decode(e){return this.decodeWithHeaders(e).map(n=>n.rawData)}static decodeFirst(e){let t=this.decode(e);if(!t.length)throw new RangeError("PEM string doesn't contain any objects");return t[0]}static encode(e,t){if(Array.isArray(e)){let n=new Array;return t?e.forEach(o=>{if(!H.BufferSourceConverter.isBufferSource(o))throw new TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");n.push(this.encodeStruct({type:t,rawData:H.BufferSourceConverter.toArrayBuffer(o)}))}):e.forEach(o=>{if(!("type"in o))throw new TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");n.push(this.encodeStruct(o))}),n.join(`
11
11
  `)}else{if(!t)throw new Error("Required argument 'tag' is missed");return this.encodeStruct({type:t,rawData:H.BufferSourceConverter.toArrayBuffer(e)})}}static encodeStruct(e){var t;let n=e.type.toLocaleUpperCase(),o=[];if(o.push(`-----BEGIN ${n}-----`),!((t=e.headers)===null||t===void 0)&&t.length){for(let f of e.headers)o.push(`${f.key}: ${f.value}`);o.push("")}let i=H.Convert.ToBase64(e.rawData),s,a=0,c=Array();for(;a<i.length&&(i.length-a<64?s=i.substring(a):(s=i.substring(a,a+64),a+=64),s.length!==0);)if(c.push(s),s.length<64)break;return o.push(...c),o.push(`-----END ${n}-----`),o.join(`
12
- `)}};Dt.CertificateTag="CERTIFICATE";Dt.CrlTag="CRL";Dt.CertificateRequestTag="CERTIFICATE REQUEST";Dt.PublicKeyTag="PUBLIC KEY";Dt.PrivateKeyTag="PRIVATE KEY";var Io=class r extends Bo{static isAsnEncoded(e){return H.BufferSourceConverter.isBufferSource(e)||typeof e=="string"}static toArrayBuffer(e){if(typeof e=="string"){if(Dt.isPem(e))return Dt.decode(e)[0];if(H.Convert.isHex(e))return H.Convert.FromHex(e);if(H.Convert.isBase64(e))return H.Convert.FromBase64(e);if(H.Convert.isBase64Url(e))return H.Convert.FromBase64Url(e);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}else{let t=H.BufferSourceConverter.toUint8Array(e);if(t.length>0&&t[0]===48)return H.BufferSourceConverter.toArrayBuffer(e);let n=H.Convert.ToBinary(e);if(Dt.isPem(n))return Dt.decode(n)[0];if(H.Convert.isHex(n))return H.Convert.FromHex(n);if(H.Convert.isBase64(n))return H.Convert.FromBase64(n);if(H.Convert.isBase64Url(n))return H.Convert.FromBase64Url(n);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...e){r.isAsnEncoded(e[0])?super(r.toArrayBuffer(e[0]),e[1]):super(e[0])}toString(e="pem"){switch(e){case"pem":return Dt.encode(this.rawData,this.tag);default:return super.toString(e)}}},Pn=class r extends Io{static async create(e,t=ut.get()){if(e instanceof r)return e;if($u.isCryptoKey(e)){if(e.type!=="public")throw new TypeError("Public key is required");let n=await t.subtle.exportKey("spki",e);return new r(n)}else{if(e.publicKey)return e.publicKey;if(H.BufferSourceConverter.isBufferSource(e))return new r(e);throw new TypeError("Unsupported PublicKeyType")}}constructor(e){Io.isAsnEncoded(e)?super(e,mt):super(e),this.tag=Dt.PublicKeyTag}async export(...e){let t,n=["verify"],o={hash:"SHA-256",...this.algorithm};e.length>1?(o=e[0]||o,n=e[1]||n,t=e[2]||ut.get()):t=e[0]||ut.get();let i=this.rawData,s=F.parse(this.rawData,mt);return s.algorithm.algorithm===wo&&(i=vB(s,i)),t.subtle.importKey("spki",i,o,!0,n)}onInit(e){let t=De.resolve(Wi),n=this.algorithm=t.toWebAlgorithm(e.algorithm);switch(e.algorithm.algorithm){case Yr:{let o=F.parse(e.subjectPublicKey,ra),i=H.BufferSourceConverter.toUint8Array(o.modulus);n.publicExponent=H.BufferSourceConverter.toUint8Array(o.publicExponent),n.modulusLength=(i[0]?i:i.slice(1)).byteLength<<3;break}}}async getThumbprint(...e){var t;let n,o="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(o=e[0]||o,n=e[1]||ut.get()):n=e[0]||ut.get(),await n.subtle.digest(o,this.rawData)}async getKeyIdentifier(...e){let t,n="SHA-1";e.length===1?typeof e[0]=="string"?(n=e[0],t=ut.get()):t=e[0]:e.length===2?(n=e[0],t=e[1]):t=ut.get();let o=F.parse(this.rawData,mt);return await t.subtle.digest(n,o.subjectPublicKey)}toTextObject(){let e=this.toTextObjectEmpty(),t=F.parse(this.rawData,mt);switch(e.Algorithm=Nn.serializeAlgorithm(t.algorithm),t.algorithm.algorithm){case Ni:e["EC Point"]=t.subjectPublicKey;break;case Yr:default:e["Raw Data"]=t.subjectPublicKey}return e}};function vB(r,e){return r.algorithm=new j({algorithm:Yr,parameters:null}),e=F.serialize(r),e}var Rh=class r extends Qt{static async create(e,t=!1,n=ut.get()){if("name"in e&&"serialNumber"in e)return new r(e,t);let i=await(await Pn.create(e,n)).getKeyIdentifier(n);return new r(H.Convert.ToHex(i),t)}constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else if(typeof e[0]=="string"){let t=new qr({keyIdentifier:new yi(H.Convert.FromHex(e[0]))});super(Wf,e[1],F.serialize(t))}else{let t=e[0],n=t.name instanceof Dn?F.parse(t.name.rawData,je):t.name,o=new qr({authorityCertIssuer:n,authorityCertSerialNumber:H.Convert.FromHex(t.serialNumber)});super(Wf,e[1],F.serialize(o))}}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,qr);t.keyIdentifier&&(this.keyId=H.Convert.ToHex(t.keyIdentifier)),(t.authorityCertIssuer||t.authorityCertSerialNumber)&&(this.certId={name:t.authorityCertIssuer||[],serialNumber:t.authorityCertSerialNumber?H.Convert.ToHex(t.authorityCertSerialNumber):""})}toTextObject(){let e=this.toTextObjectWithoutValue(),t=F.parse(this.value,qr);return t.authorityCertIssuer&&(e["Authority Issuer"]=new Dn(t.authorityCertIssuer).toTextObject()),t.authorityCertSerialNumber&&(e["Authority Serial Number"]=t.authorityCertSerialNumber),t.keyIdentifier&&(e[""]=t.keyIdentifier),e}};Rh.NAME="Authority Key Identifier";var ha=class extends Qt{constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,gi);this.ca=t.cA,this.pathLength=t.pathLenConstraint}else{let t=new gi({cA:e[0],pathLenConstraint:e[1]});super(qf,e[2],F.serialize(t)),this.ca=e[0],this.pathLength=e[1]}}toTextObject(){let e=this.toTextObjectWithoutValue();return this.ca&&(e.CA=this.ca),this.pathLength!==void 0&&(e["Path Length"]=this.pathLength),e}};ha.NAME="Basic Constraints";var sA;(function(r){r.serverAuth="1.3.6.1.5.5.7.3.1",r.clientAuth="1.3.6.1.5.5.7.3.2",r.codeSigning="1.3.6.1.5.5.7.3.3",r.emailProtection="1.3.6.1.5.5.7.3.4",r.timeStamping="1.3.6.1.5.5.7.3.8",r.ocspSigning="1.3.6.1.5.5.7.3.9"})(sA||(sA={}));var Lh=class extends Qt{constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,Vc);this.usages=t.map(n=>n)}else{let t=new Vc(e[0]);super(Zf,e[1],F.serialize(t)),this.usages=e[0]}}toTextObject(){let e=this.toTextObjectWithoutValue();return e[""]=this.usages.map(t=>tn.toString(t)).join(", "),e}};Lh.NAME="Extended Key Usages";var aA;(function(r){r[r.digitalSignature=1]="digitalSignature",r[r.nonRepudiation=2]="nonRepudiation",r[r.keyEncipherment=4]="keyEncipherment",r[r.dataEncipherment=8]="dataEncipherment",r[r.keyAgreement=16]="keyAgreement",r[r.keyCertSign=32]="keyCertSign",r[r.cRLSign=64]="cRLSign",r[r.encipherOnly=128]="encipherOnly",r[r.decipherOnly=256]="decipherOnly"})(aA||(aA={}));var Uh=class extends Qt{constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,Ds);this.usages=t.toNumber()}else{let t=new Ds(e[0]);super(Yf,e[1],F.serialize(t)),this.usages=e[0]}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=F.parse(this.value,Ds);return e[""]=t.toJSON().join(", "),e}};Uh.NAME="Key Usages";var Mh=class r extends Qt{static async create(e,t=!1,n=ut.get()){let i=await(await Pn.create(e,n)).getKeyIdentifier(n);return new r(H.Convert.ToHex(i),t)}constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,Ht);this.keyId=H.Convert.ToHex(t)}else{let t=typeof e[0]=="string"?H.Convert.FromHex(e[0]):e[0],n=new Ht(t);super(sy,e[1],F.serialize(n)),this.keyId=H.Convert.ToHex(t)}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=F.parse(this.value,Ht);return e[""]=t,e}};Mh.NAME="Subject Key Identifier";var jh=class extends Qt{constructor(...e){H.BufferSourceConverter.isBufferSource(e[0])?super(e[0]):super(oy,e[1],new Dn(e[0]||[]).rawData)}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,th);this.names=new Dn(t)}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(let n in t)e[n]=t[n];return e}};jh.NAME="Subject Alternative Name";var Rt=class{static register(e,t){this.items.set(e,t)}static create(e){let t=new Qt(e),n=this.items.get(t.type);return n?new n(e):t}};Rt.items=new Map;var Kh=class extends Qt{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let n=F.parse(this.value,Uc);this.policies=n.map(o=>o.policyIdentifier)}else{let n=e[0],o=(t=e[1])!==null&&t!==void 0?t:!1,i=new Uc(n.map(s=>new bi({policyIdentifier:s})));super(zf,o,F.serialize(i)),this.policies=n}}toTextObject(){let e=this.toTextObjectWithoutValue();return e.Policy=this.policies.map(t=>new _e("",{},tn.toString(t))),e}};Kh.NAME="Certificate Policies";Rt.register(zf,Kh);var Hh=class extends Qt{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else if(Array.isArray(e[0])&&typeof e[0][0]=="string"){let o=e[0].map(s=>new Gr({distributionPoint:new Cn({fullName:[new ae({uniformResourceIdentifier:s})]})})),i=new fo(o);super(Xf,e[1],F.serialize(i))}else{let n=new fo(e[0]);super(Xf,e[1],F.serialize(n))}(t=this.distributionPoints)!==null&&t!==void 0||(this.distributionPoints=[])}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,fo);this.distributionPoints=t}toTextObject(){let e=this.toTextObjectWithoutValue();return e["Distribution Point"]=this.distributionPoints.map(t=>{var n;let o={};return t.distributionPoint&&(o[""]=(n=t.distributionPoint.fullName)===null||n===void 0?void 0:n.map(i=>new en(i).toString()).join(", ")),t.reasons&&(o.Reasons=t.reasons.toString()),t.cRLIssuer&&(o["CRL Issuer"]=t.cRLIssuer.map(i=>i.toString()).join(", ")),o}),e}};Hh.NAME="CRL Distribution Points";var Vh=class extends Qt{constructor(...e){var t,n,o,i;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else if(e[0]instanceof mi){let s=new mi(e[0]);super(Ff,e[1],F.serialize(s))}else{let s=e[0],a=new mi;Oh(a,s,Hm,"ocsp"),Oh(a,s,Vm,"caIssuers"),Oh(a,s,$m,"timeStamping"),Oh(a,s,Fm,"caRepository"),super(Ff,e[1],F.serialize(a))}(t=this.ocsp)!==null&&t!==void 0||(this.ocsp=[]),(n=this.caIssuers)!==null&&n!==void 0||(this.caIssuers=[]),(o=this.timeStamping)!==null&&o!==void 0||(this.timeStamping=[]),(i=this.caRepository)!==null&&i!==void 0||(this.caRepository=[])}onInit(e){super.onInit(e),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],F.parse(e.extnValue,mi).forEach(n=>{switch(n.accessMethod){case Hm:this.ocsp.push(new en(n.accessLocation));break;case Vm:this.caIssuers.push(new en(n.accessLocation));break;case $m:this.timeStamping.push(new en(n.accessLocation));break;case Fm:this.caRepository.push(new en(n.accessLocation));break}})}toTextObject(){let e=this.toTextObjectWithoutValue();return this.ocsp.length&&kh(e,"OCSP",this.ocsp),this.caIssuers.length&&kh(e,"CA Issuers",this.caIssuers),this.timeStamping.length&&kh(e,"Time Stamping",this.timeStamping),this.caRepository.length&&kh(e,"CA Repository",this.caRepository),e}};Vh.NAME="Authority Info Access";function kh(r,e,t){if(t.length===1)r[e]=t[0].toTextObject();else{let n=new _e("");t.forEach((o,i)=>{let s=o.toTextObject(),a=`${s[_e.NAME]} ${i+1}`,c=n[a];Array.isArray(c)||(c=[],n[a]=c),c.push(s)}),r[e]=n}}function Oh(r,e,t,n){let o=e[n];o&&(Array.isArray(o)?o:[o]).forEach(s=>{typeof s=="string"&&(s=new en("url",s)),r.push(new En({accessMethod:t,accessLocation:F.parse(s.rawData,ae)}))})}var $h=class extends Qt{constructor(...e){H.BufferSourceConverter.isBufferSource(e[0])?super(e[0]):super(ey,e[1],new Dn(e[0]||[]).rawData)}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,je);this.names=new Dn(t)}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(let n in t)e[n]=t[n];return e}};$h.NAME="Issuer Alternative Name";var pa=class r extends Bo{constructor(...e){let t;if(H.BufferSourceConverter.isBufferSource(e[0]))t=H.BufferSourceConverter.toArrayBuffer(e[0]);else{let n=e[0],o=Array.isArray(e[1])?e[1].map(i=>H.BufferSourceConverter.toArrayBuffer(i)):[];t=F.serialize(new dt({type:n,values:o}))}super(t,dt)}onInit(e){this.type=e.type,this.values=e.values}toTextObject(){let e=this.toTextObjectWithoutValue();return e.Value=this.values.map(t=>new _e("",{"":t})),e}toTextObjectWithoutValue(){let e=this.toTextObjectEmpty();return e[_e.NAME]===r.NAME&&(e[_e.NAME]=tn.toString(this.type)),e}};pa.NAME="Attribute";var Fh=class extends pa{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else{let n=new bu({printableString:e[0]});super(tg,[F.serialize(n)])}(t=this.password)!==null&&t!==void 0||(this.password="")}onInit(e){if(super.onInit(e),this.values[0]){let t=F.parse(this.values[0],bu);this.password=t.toString()}}toTextObject(){let e=this.toTextObjectWithoutValue();return e[_e.VALUE]=this.password,e}};Fh.NAME="Challenge Password";var Wu=class extends pa{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else{let n=e[0],o=new Yt;for(let i of n)o.push(F.parse(i.rawData,yt));super(xu,[F.serialize(o)])}(t=this.items)!==null&&t!==void 0||(this.items=[])}onInit(e){if(super.onInit(e),this.values[0]){let t=F.parse(this.values[0],Yt);this.items=t.map(n=>Rt.create(F.serialize(n)))}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.items.map(n=>n.toTextObject());for(let n of t)e[n[_e.NAME]]=n;return e}};Wu.NAME="Extensions";var da=class{static register(e,t){this.items.set(e,t)}static create(e){let t=new pa(e),n=this.items.get(t.type);return n?new n(e):t}};da.items=new Map;var Gu="crypto.signatureFormatter",dg=class{toAsnSignature(e,t){return H.BufferSourceConverter.toArrayBuffer(t)}toWebSignature(e,t){return H.BufferSourceConverter.toArrayBuffer(t)}},Nh,mg=Nh=class{static createPssParams(e,t){let n=Nh.getHashAlgorithm(e);return n?new Jr({hashAlgorithm:n,maskGenAlgorithm:new j({algorithm:xo,parameters:F.serialize(n)}),saltLength:t}):null}static getHashAlgorithm(e){let t=De.resolve(Wi);return typeof e=="string"?t.toAsnAlgorithm({name:e}):typeof e=="object"&&e&&"name"in e?t.toAsnAlgorithm(e):null}toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in e){let t;if(typeof e.hash=="string")t=e.hash;else if(e.hash&&typeof e.hash=="object"&&"name"in e.hash&&typeof e.hash.name=="string")t=e.hash.name.toUpperCase();else throw new Error("Cannot get hash algorithm name");switch(t.toLowerCase()){case"sha-1":return new j({algorithm:Ys,parameters:null});case"sha-256":return new j({algorithm:ph,parameters:null});case"sha-384":return new j({algorithm:Js,parameters:null});case"sha-512":return new j({algorithm:Qs,parameters:null})}}else return new j({algorithm:Yr,parameters:null});break;case"rsa-pss":if("hash"in e){if(!("saltLength"in e&&typeof e.saltLength=="number"))throw new Error("Cannot get 'saltLength' from 'alg' argument");let t=Nh.createPssParams(e.hash,e.saltLength);if(!t)throw new Error("Cannot create PSS parameters");return new j({algorithm:wo,parameters:F.serialize(t)})}else return new j({algorithm:wo,parameters:null})}return null}toWebAlgorithm(e){switch(e.algorithm){case Yr:return{name:"RSASSA-PKCS1-v1_5"};case Ys:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case ph:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case Js:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case Qs:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case wo:if(e.parameters){let t=F.parse(e.parameters,Jr);return{name:"RSA-PSS",hash:De.resolve(Wi).toWebAlgorithm(t.hashAlgorithm),saltLength:t.saltLength}}else return{name:"RSA-PSS"}}return null}};mg=Nh=u([Ao()],mg);De.registerSingleton(qu,mg);var yg=class{toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"sha-1":return new j({algorithm:Ri});case"sha-256":return new j({algorithm:Li});case"sha-384":return new j({algorithm:Ui});case"sha-512":return new j({algorithm:Mi})}return null}toWebAlgorithm(e){switch(e.algorithm){case Ri:return{name:"SHA-1"};case Li:return{name:"SHA-256"};case Ui:return{name:"SHA-384"};case Mi:return{name:"SHA-512"}}return null}};yg=u([Ao()],yg);De.registerSingleton(qu,yg);var Rn=class r{addPadding(e,t){let n=H.BufferSourceConverter.toUint8Array(t),o=new Uint8Array(e);return o.set(n,e-n.length),o.buffer}removePadding(e,t=!1){let n=H.BufferSourceConverter.toUint8Array(e);for(let o=0;o<n.length;o++)if(n[o]){n=n.slice(o);break}if(t&&n[0]>127){let o=new Uint8Array(n.length+1);return o.set(n,1),o.buffer}return n.buffer}toAsnSignature(e,t){if(e.name==="ECDSA"){let n=e.namedCurve,o=r.namedCurveSize.get(n)||r.defaultNamedCurveSize,i=new Di,s=H.BufferSourceConverter.toUint8Array(t);return i.r=this.removePadding(s.slice(0,o),!0),i.s=this.removePadding(s.slice(o,o+o),!0),F.serialize(i)}return null}toWebSignature(e,t){if(e.name==="ECDSA"){let n=F.parse(t,Di),o=e.namedCurve,i=r.namedCurveSize.get(o)||r.defaultNamedCurveSize,s=this.addPadding(i,this.removePadding(n.r)),a=this.addPadding(i,this.removePadding(n.s));return(0,H.combine)(s,a)}return null}};Rn.namedCurveSize=new Map;Rn.defaultNamedCurveSize=32;var lg="1.3.101.110",cA="1.3.101.111",fg="1.3.101.112",uA="1.3.101.113",gg=class{toAsnAlgorithm(e){let t=null;switch(e.name.toLowerCase()){case"ed25519":t=fg;break;case"x25519":t=lg;break;case"eddsa":switch(e.namedCurve.toLowerCase()){case"ed25519":t=fg;break;case"ed448":t=uA;break}break;case"ecdh-es":switch(e.namedCurve.toLowerCase()){case"x25519":t=lg;break;case"x448":t=cA;break}}return t?new j({algorithm:t}):null}toWebAlgorithm(e){switch(e.algorithm){case fg:return{name:"Ed25519"};case uA:return{name:"EdDSA",namedCurve:"Ed448"};case lg:return{name:"X25519"};case cA:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};gg=u([Ao()],gg);De.registerSingleton(qu,gg);var Su,Eu,_u,Cu,Bu,Iu,Tu,ua,bg=class extends Io{get subjectName(){return he(this,Eu,"f")||Me(this,Eu,new Dr(this.asn.certificationRequestInfo.subject),"f"),he(this,Eu,"f")}get subject(){return he(this,_u,"f")||Me(this,_u,this.subjectName.toString(),"f"),he(this,_u,"f")}get signatureAlgorithm(){if(!he(this,Cu,"f")){let e=De.resolve(Wi);Me(this,Cu,e.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return he(this,Cu,"f")}get signature(){return he(this,Bu,"f")||Me(this,Bu,this.asn.signature,"f"),he(this,Bu,"f")}get publicKey(){return he(this,Iu,"f")||Me(this,Iu,new Pn(this.asn.certificationRequestInfo.subjectPKInfo),"f"),he(this,Iu,"f")}get attributes(){return he(this,Tu,"f")||Me(this,Tu,this.asn.certificationRequestInfo.attributes.map(e=>da.create(F.serialize(e))),"f"),he(this,Tu,"f")}get extensions(){if(!he(this,ua,"f")){Me(this,ua,[],"f");let e=this.getAttribute(xu);e instanceof Wu&&Me(this,ua,e.items,"f")}return he(this,ua,"f")}get tbs(){return he(this,Su,"f")||Me(this,Su,this.asn.certificationRequestInfoRaw||F.serialize(this.asn.certificationRequestInfo),"f"),he(this,Su,"f")}constructor(e){let t=Io.isAsnEncoded(e)?[e,Co]:[e];super(t[0],t[1]),Su.set(this,void 0),Eu.set(this,void 0),_u.set(this,void 0),Cu.set(this,void 0),Bu.set(this,void 0),Iu.set(this,void 0),Tu.set(this,void 0),ua.set(this,void 0),this.tag=Dt.CertificateRequestTag}onInit(e){}getAttribute(e){for(let t of this.attributes)if(t.type===e)return t;return null}getAttributes(e){return this.attributes.filter(t=>t.type===e)}getExtension(e){for(let t of this.extensions)if(t.type===e)return t;return null}getExtensions(e){return this.extensions.filter(t=>t.type===e)}async verify(e=ut.get()){let t={...this.publicKey.algorithm,...this.signatureAlgorithm},n=await this.publicKey.export(t,["verify"],e),o=De.resolveAll(Gu).reverse(),i=null;for(let a of o)if(i=a.toWebSignature(t,this.signature),i)break;if(!i)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await e.subtle.verify(this.signatureAlgorithm,n,i,this.tbs)}toTextObject(){let e=this.toTextObjectEmpty(),t=F.parse(this.rawData,Co),n=t.certificationRequestInfo,o=new _e("",{Version:`${zr[n.version]} (${n.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let i=new _e("");for(let s of this.attributes){let a=s.toTextObject();i[a[_e.NAME]]=a}o.Attributes=i}return e.Data=o,e.Signature=new _e("",{Algorithm:Nn.serializeAlgorithm(t.signatureAlgorithm),"":t.signature}),e}};Su=new WeakMap,Eu=new WeakMap,_u=new WeakMap,Cu=new WeakMap,Bu=new WeakMap,Iu=new WeakMap,Tu=new WeakMap,ua=new WeakMap;bg.NAME="PKCS#10 Certificate Request";var ku,Ou,Pu,Nu,Du,Ru,Lu,Uu,Mu,ju,la,Ku,ma=class extends Io{get publicKey(){return he(this,Ku,"f")||Me(this,Ku,new Pn(this.asn.tbsCertificate.subjectPublicKeyInfo),"f"),he(this,Ku,"f")}get serialNumber(){if(!he(this,Ou,"f")){let e=this.asn.tbsCertificate,t=new Uint8Array(e.serialNumber);t.length>1&&t[0]===0&&t[1]>127&&(t=t.slice(1)),Me(this,Ou,H.Convert.ToHex(t),"f")}return he(this,Ou,"f")}get subjectName(){return he(this,Pu,"f")||Me(this,Pu,new Dr(this.asn.tbsCertificate.subject),"f"),he(this,Pu,"f")}get subject(){return he(this,Nu,"f")||Me(this,Nu,this.subjectName.toString(),"f"),he(this,Nu,"f")}get issuerName(){return he(this,Du,"f")||Me(this,Du,new Dr(this.asn.tbsCertificate.issuer),"f"),he(this,Du,"f")}get issuer(){return he(this,Ru,"f")||Me(this,Ru,this.issuerName.toString(),"f"),he(this,Ru,"f")}get notBefore(){if(!he(this,Lu,"f")){let e=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!e)throw new Error("Cannot get 'notBefore' value");Me(this,Lu,e,"f")}return he(this,Lu,"f")}get notAfter(){if(!he(this,Uu,"f")){let e=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!e)throw new Error("Cannot get 'notAfter' value");Me(this,Uu,e,"f")}return he(this,Uu,"f")}get signatureAlgorithm(){if(!he(this,Mu,"f")){let e=De.resolve(Wi);Me(this,Mu,e.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return he(this,Mu,"f")}get signature(){return he(this,ju,"f")||Me(this,ju,this.asn.signatureValue,"f"),he(this,ju,"f")}get extensions(){return he(this,la,"f")||(Me(this,la,[],"f"),this.asn.tbsCertificate.extensions&&Me(this,la,this.asn.tbsCertificate.extensions.map(e=>Rt.create(F.serialize(e))),"f")),he(this,la,"f")}get tbs(){return he(this,ku,"f")||Me(this,ku,this.asn.tbsCertificateRaw||F.serialize(this.asn.tbsCertificate),"f"),he(this,ku,"f")}constructor(e){let t=Io.isAsnEncoded(e)?[e,cr]:[e];super(t[0],t[1]),ku.set(this,void 0),Ou.set(this,void 0),Pu.set(this,void 0),Nu.set(this,void 0),Du.set(this,void 0),Ru.set(this,void 0),Lu.set(this,void 0),Uu.set(this,void 0),Mu.set(this,void 0),ju.set(this,void 0),la.set(this,void 0),Ku.set(this,void 0),this.tag=Dt.CertificateTag}onInit(e){}getExtension(e){for(let t of this.extensions)if(typeof e=="string"){if(t.type===e)return t}else if(t instanceof e)return t;return null}getExtensions(e){return this.extensions.filter(t=>typeof e=="string"?t.type===e:t instanceof e)}async verify(e={},t=ut.get()){let n,o,i=e.publicKey;try{if(!i)n={...this.publicKey.algorithm,...this.signatureAlgorithm},o=await this.publicKey.export(n,["verify"],t);else if("publicKey"in i)n={...i.publicKey.algorithm,...this.signatureAlgorithm},o=await i.publicKey.export(n,["verify"],t);else if(i instanceof Pn)n={...i.algorithm,...this.signatureAlgorithm},o=await i.export(n,["verify"],t);else if(H.BufferSourceConverter.isBufferSource(i)){let f=new Pn(i);n={...f.algorithm,...this.signatureAlgorithm},o=await f.export(n,["verify"],t)}else n={...i.algorithm,...this.signatureAlgorithm},o=i}catch{return!1}let s=De.resolveAll(Gu).reverse(),a=null;for(let f of s)if(a=f.toWebSignature(n,this.signature),a)break;if(!a)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let c=await t.subtle.verify(this.signatureAlgorithm,o,a,this.tbs);if(e.signatureOnly)return c;{let p=(e.date||new Date).getTime();return c&&this.notBefore.getTime()<p&&p<this.notAfter.getTime()}}async getThumbprint(...e){let t,n="SHA-1";return e[0]&&(e[0].subtle?t=e[0]:(n=e[0]||n,t=e[1])),t??(t=ut.get()),await t.subtle.digest(n,this.rawData)}async isSelfSigned(e=ut.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},e)}toTextObject(){let e=this.toTextObjectEmpty(),t=F.parse(this.rawData,cr),n=t.tbsCertificate,o=new _e("",{Version:`${zr[n.version]} (${n.version})`,"Serial Number":n.serialNumber,"Signature Algorithm":Nn.serializeAlgorithm(n.signature),Issuer:this.issuer,Validity:new _e("",{"Not Before":n.validity.notBefore.getTime(),"Not After":n.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(n.issuerUniqueID&&(o["Issuer Unique ID"]=n.issuerUniqueID),n.subjectUniqueID&&(o["Subject Unique ID"]=n.subjectUniqueID),this.extensions.length){let i=new _e("");for(let s of this.extensions){let a=s.toTextObject();i[a[_e.NAME]]=a}o.Extensions=i}return e.Data=o,e.Signature=new _e("",{Algorithm:Nn.serializeAlgorithm(t.signatureAlgorithm),"":t.signatureValue}),e}};ku=new WeakMap,Ou=new WeakMap,Pu=new WeakMap,Nu=new WeakMap,Du=new WeakMap,Ru=new WeakMap,Lu=new WeakMap,Uu=new WeakMap,Mu=new WeakMap,ju=new WeakMap,la=new WeakMap,Ku=new WeakMap;ma.NAME="Certificate";function AB(r,e=ut.get()){let t=H.BufferSourceConverter.toUint8Array(H.Convert.FromHex(r||"")),n=t&&t.length&&t.some(i=>i>0)?new Uint8Array(t):void 0;n||(n=e.getRandomValues(new Uint8Array(16)));let o=0;for(;o<n.length-1&&n[o]===0;)o++;if(n=n.slice(o),n[0]>127){let i=new Uint8Array(n.length+1);i[0]=0,i.set(n,1),n=i}return n.buffer}var Wh=class{static async createSelfSigned(e,t=ut.get()){if(!e.keys.privateKey)throw new Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!e.keys.publicKey)throw new Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:e.serialNumber,subject:e.name,issuer:e.name,notBefore:e.notBefore,notAfter:e.notAfter,publicKey:e.keys.publicKey,signingKey:e.keys.privateKey,signingAlgorithm:e.signingAlgorithm,extensions:e.extensions},t)}static async create(e,t=ut.get()){var n;let o;e.publicKey instanceof Pn?o=e.publicKey.rawData:"publicKey"in e.publicKey?o=e.publicKey.publicKey.rawData:H.BufferSourceConverter.isBufferSource(e.publicKey)?o=e.publicKey:o=await t.subtle.exportKey("spki",e.publicKey);let i=AB(e.serialNumber),s=e.notBefore||new Date,a=e.notAfter||new Date(s.getTime()+31536e6),c=new cr({tbsCertificate:new gt({version:zr.v3,serialNumber:i,validity:new Bn({notBefore:s,notAfter:a}),extensions:new Yt(((n=e.extensions)===null||n===void 0?void 0:n.map(m=>F.parse(m.rawData,yt)))||[]),subjectPublicKeyInfo:F.parse(o,mt)})});if(e.subject){let m=e.subject instanceof Dr?e.subject:new Dr(e.subject);c.tbsCertificate.subject=F.parse(m.toArrayBuffer(),Oe)}if(e.issuer){let m=e.issuer instanceof Dr?e.issuer:new Dr(e.issuer);c.tbsCertificate.issuer=F.parse(m.toArrayBuffer(),Oe)}let f={hash:"SHA-256"},p="signingKey"in e?{...f,...e.signingAlgorithm,...e.signingKey.algorithm}:{...f,...e.signingAlgorithm},h=De.resolve(Wi);c.tbsCertificate.signature=c.signatureAlgorithm=h.toAsnAlgorithm(p);let y=F.serialize(c.tbsCertificate),b="signingKey"in e?await t.subtle.sign(p,e.signingKey,y):e.signature,g=De.resolveAll(Gu).reverse(),C=null;for(let m of g)if(C=m.toAsnSignature(p,b),C)break;if(!C)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return c.signatureValue=C,new ma(F.serialize(c))}},SB,EB,_B,CB,BB,lA;(function(r){r[r.unspecified=0]="unspecified",r[r.keyCompromise=1]="keyCompromise",r[r.cACompromise=2]="cACompromise",r[r.affiliationChanged=3]="affiliationChanged",r[r.superseded=4]="superseded",r[r.cessationOfOperation=5]="cessationOfOperation",r[r.certificateHold=6]="certificateHold",r[r.removeFromCRL=8]="removeFromCRL",r[r.privilegeWithdrawn=9]="privilegeWithdrawn",r[r.aACompromise=10]="aACompromise"})(lA||(lA={}));SB=new WeakMap,EB=new WeakMap,_B=new WeakMap,CB=new WeakMap,BB=new WeakMap;var IB,TB,kB,OB,PB,NB,DB;IB=new WeakMap,TB=new WeakMap,kB=new WeakMap,OB=new WeakMap,PB=new WeakMap,NB=new WeakMap,DB=new WeakMap;Rt.register(qf,ha);Rt.register(Zf,Lh);Rt.register(Yf,Uh);Rt.register(sy,Mh);Rt.register(Wf,Rh);Rt.register(oy,jh);Rt.register(Xf,Hh);Rt.register(Ff,Vh);Rt.register(ey,$h);da.register(tg,Fh);da.register(xu,Wu);De.registerSingleton(Gu,dg);De.registerSingleton(Gu,Rn);Rn.namedCurveSize.set("P-256",32);Rn.namedCurveSize.set("K-256",32);Rn.namedCurveSize.set("P-384",48);Rn.namedCurveSize.set("P-521",66);var Ln="/",mA=new TextEncoder().encode(Ln),qh=mA[0],zu=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=de(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==qh)throw new Error("Invalid key")}toString(e="utf8"){return ue(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Ln))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=mA),this._buf[0]!==qh){let e=new Uint8Array(this._buf.byteLength+1);e.fill(qh,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===qh;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Ln).slice(1)}type(){return RB(this.baseNamespace())}name(){return LB(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Ln)||(e+=Ln),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Ln):new r(e.slice(0,-1).join(Ln))}child(e){return this.toString()===Ln?e:e.toString()===Ln?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...UB(e.map(t=>t.namespaces()))])}};function RB(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function LB(r){let e=r.split(":");return e[e.length-1]}function UB(r){return[].concat(...r)}var Gh=class extends er{async listen(){throw new gf("WebRTCTransport.createListener")}getAddrs(){return[]}updateAnnounceAddrs(){}async close(){}};var ya=!!globalThis.process?.env?.DUMP_SESSION_KEYS,wg=16;function MB(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function zh(r){if(typeof r!="boolean")throw new Error(`boolean expected, not ${r}`)}function Xh(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function lt(r,e,t=""){let n=MB(r),o=r?.length,i=e!==void 0;if(!n||i&&o!==e){let s=t&&`"${t}" `,a=i?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof r}`;throw new Error(s+"expected Uint8Array"+a+", got "+c)}return r}function xg(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function yA(r,e){lt(r,void 0,"output");let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function Un(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Mn(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function jB(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}var KB=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function gA(r,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(r,e)}function bA(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}var vg=(r,e)=>{function t(n,...o){if(lt(n,void 0,"key"),!KB)throw new Error("Non little-endian hardware is not yet supported");if(r.nonceLength!==void 0){let p=o[0];lt(p,r.varSizeNonce?void 0:r.nonceLength,"nonce")}let i=r.tagLength;i&&o[1]!==void 0&&lt(o[1],void 0,"AAD");let s=e(n,...o),a=(p,h)=>{if(h!==void 0){if(p!==2)throw new Error("cipher output not supported");lt(h,void 0,"output")}},c=!1;return{encrypt(p,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,lt(p),a(s.encrypt.length,h),s.encrypt(p,h)},decrypt(p,h){if(lt(p),i&&p.length<i)throw new Error('"ciphertext" expected length bigger than tagLength='+i);return a(s.decrypt.length,h),s.decrypt(p,h)}}}return Object.assign(t,r),t};function Ag(r,e,t=!0){if(e===void 0)return new Uint8Array(r);if(e.length!==r)throw new Error('"output" expected Uint8Array of length '+r+", got: "+e.length);if(t&&!HB(e))throw new Error("invalid output, must be aligned");return e}function wA(r,e,t){zh(t);let n=new Uint8Array(16),o=jB(n);return o.setBigUint64(0,BigInt(e),t),o.setBigUint64(8,BigInt(r),t),n}function HB(r){return r.byteOffset%4===0}function ga(r){return Uint8Array.from(r)}var vA=r=>Uint8Array.from(r.split(""),e=>e.charCodeAt(0)),VB=vA("expand 16-byte k"),$B=vA("expand 32-byte k"),FB=Un(VB),WB=Un($B);function Q(r,e){return r<<e|r>>>32-e}function Sg(r){return r.byteOffset%4===0}var Zh=64,qB=16,AA=2**32-1,xA=Uint32Array.of();function GB(r,e,t,n,o,i,s,a){let c=o.length,f=new Uint8Array(Zh),p=Un(f),h=Sg(o)&&Sg(i),y=h?Un(o):xA,b=h?Un(i):xA;for(let g=0;g<c;s++){if(r(e,t,n,p,s,a),s>=AA)throw new Error("arx: counter overflow");let C=Math.min(Zh,c-g);if(h&&C===Zh){let m=g/4;if(g%4!==0)throw new Error("arx: invalid block position");for(let S=0,N;S<qB;S++)N=m+S,b[N]=y[N]^p[S];g+=Zh;continue}for(let m=0,S;m<C;m++)S=g+m,i[S]=o[S]^f[m];g+=C}}function Eg(r,e){let{allowShortKeys:t,extendNonceFn:n,counterLength:o,counterRight:i,rounds:s}=gA({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof r!="function")throw new Error("core must be a function");return Xh(o),Xh(s),zh(i),zh(t),(a,c,f,p,h=0)=>{lt(a,void 0,"key"),lt(c,void 0,"nonce"),lt(f,void 0,"data");let y=f.length;if(p===void 0&&(p=new Uint8Array(y)),lt(p,void 0,"output"),Xh(h),h<0||h>=AA)throw new Error("arx: counter overflow");if(p.length<y)throw new Error(`arx: output (${p.length}) is shorter than data (${y})`);let b=[],g=a.length,C,m;if(g===32)b.push(C=ga(a)),m=WB;else if(g===16&&t)C=new Uint8Array(32),C.set(a),C.set(a,16),m=FB,b.push(C);else throw lt(a,32,"arx key"),new Error("invalid key size");Sg(c)||b.push(c=ga(c));let S=Un(C);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");n(m,S,Un(c.subarray(0,16)),S),c=c.subarray(16)}let N=16-o;if(N!==c.length)throw new Error(`arx: nonce must be ${N} or 16 bytes`);if(N!==12){let K=new Uint8Array(12);K.set(c,i?0:12-c.length),c=K,b.push(c)}let I=Un(c);return GB(r,m,S,I,f,p,h,s),Mn(...b),p}}function xt(r,e){return r[e++]&255|(r[e++]&255)<<8}var _g=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;constructor(e){e=ga(lt(e,32,"key"));let t=xt(e,0),n=xt(e,2),o=xt(e,4),i=xt(e,6),s=xt(e,8),a=xt(e,10),c=xt(e,12),f=xt(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|i<<9)&8191,this.r[4]=(i>>>4|s<<12)&255,this.r[5]=s>>>1&8190,this.r[6]=(s>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let p=0;p<8;p++)this.pad[p]=xt(e,16+2*p)}process(e,t,n=!1){let o=n?0:2048,{h:i,r:s}=this,a=s[0],c=s[1],f=s[2],p=s[3],h=s[4],y=s[5],b=s[6],g=s[7],C=s[8],m=s[9],S=xt(e,t+0),N=xt(e,t+2),I=xt(e,t+4),K=xt(e,t+6),Z=xt(e,t+8),q=xt(e,t+10),re=xt(e,t+12),R=xt(e,t+14),k=i[0]+(S&8191),G=i[1]+((S>>>13|N<<3)&8191),Y=i[2]+((N>>>10|I<<6)&8191),V=i[3]+((I>>>7|K<<9)&8191),B=i[4]+((K>>>4|Z<<12)&8191),A=i[5]+(Z>>>1&8191),v=i[6]+((Z>>>14|q<<2)&8191),D=i[7]+((q>>>11|re<<5)&8191),U=i[8]+((re>>>8|R<<8)&8191),L=i[9]+(R>>>5|o),T=0,M=T+k*a+G*(5*m)+Y*(5*C)+V*(5*g)+B*(5*b);T=M>>>13,M&=8191,M+=A*(5*y)+v*(5*h)+D*(5*p)+U*(5*f)+L*(5*c),T+=M>>>13,M&=8191;let W=T+k*c+G*a+Y*(5*m)+V*(5*C)+B*(5*g);T=W>>>13,W&=8191,W+=A*(5*b)+v*(5*y)+D*(5*h)+U*(5*p)+L*(5*f),T+=W>>>13,W&=8191;let O=T+k*f+G*c+Y*a+V*(5*m)+B*(5*C);T=O>>>13,O&=8191,O+=A*(5*g)+v*(5*b)+D*(5*y)+U*(5*h)+L*(5*p),T+=O>>>13,O&=8191;let pe=T+k*p+G*f+Y*c+V*a+B*(5*m);T=pe>>>13,pe&=8191,pe+=A*(5*C)+v*(5*g)+D*(5*b)+U*(5*y)+L*(5*h),T+=pe>>>13,pe&=8191;let be=T+k*h+G*p+Y*f+V*c+B*a;T=be>>>13,be&=8191,be+=A*(5*m)+v*(5*C)+D*(5*g)+U*(5*b)+L*(5*y),T+=be>>>13,be&=8191;let ee=T+k*y+G*h+Y*p+V*f+B*c;T=ee>>>13,ee&=8191,ee+=A*a+v*(5*m)+D*(5*C)+U*(5*g)+L*(5*b),T+=ee>>>13,ee&=8191;let Ae=T+k*b+G*y+Y*h+V*p+B*f;T=Ae>>>13,Ae&=8191,Ae+=A*c+v*a+D*(5*m)+U*(5*C)+L*(5*g),T+=Ae>>>13,Ae&=8191;let Be=T+k*g+G*b+Y*y+V*h+B*p;T=Be>>>13,Be&=8191,Be+=A*f+v*c+D*a+U*(5*m)+L*(5*C),T+=Be>>>13,Be&=8191;let Ke=T+k*C+G*g+Y*b+V*y+B*h;T=Ke>>>13,Ke&=8191,Ke+=A*p+v*f+D*c+U*a+L*(5*m),T+=Ke>>>13,Ke&=8191;let Ee=T+k*m+G*C+Y*g+V*b+B*y;T=Ee>>>13,Ee&=8191,Ee+=A*h+v*p+D*f+U*c+L*a,T+=Ee>>>13,Ee&=8191,T=(T<<2)+T|0,T=T+M|0,M=T&8191,T=T>>>13,W+=T,i[0]=M,i[1]=W,i[2]=O,i[3]=pe,i[4]=be,i[5]=ee,i[6]=Ae,i[7]=Be,i[8]=Ke,i[9]=Ee}finalize(){let{h:e,pad:t}=this,n=new Uint16Array(10),o=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=o,o=e[a]>>>13,e[a]&=8191;e[0]+=o*5,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,n[0]=e[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=e[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let i=(o^1)-1;for(let a=0;a<10;a++)n[a]&=i;i=~i;for(let a=0;a<10;a++)e[a]=e[a]&i|n[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let s=e[0]+t[0];e[0]=s&65535;for(let a=1;a<8;a++)s=(e[a]+t[a]|0)+(s>>>16)|0,e[a]=s&65535;Mn(n)}update(e){xg(this),lt(e),e=ga(e);let{buffer:t,blockLen:n}=this,o=e.length;for(let i=0;i<o;){let s=Math.min(n-this.pos,o-i);if(s===n){for(;n<=o-i;i+=n)this.process(e,i);continue}t.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){Mn(this.h,this.r,this.buffer,this.pad)}digestInto(e){xg(this),yA(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:o}=this;if(o){for(t[o++]=1;o<16;o++)t[o]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let s=0;s<8;s++)e[i++]=n[s]>>>0,e[i++]=n[s]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}};function zB(r){let e=(n,o)=>r(o).update(n).digest(),t=r(new Uint8Array(32));return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=n=>r(n),e}var SA=zB(r=>new _g(r));function CA(r,e,t,n,o,i=20){let s=r[0],a=r[1],c=r[2],f=r[3],p=e[0],h=e[1],y=e[2],b=e[3],g=e[4],C=e[5],m=e[6],S=e[7],N=o,I=t[0],K=t[1],Z=t[2],q=s,re=a,R=c,k=f,G=p,Y=h,V=y,B=b,A=g,v=C,D=m,U=S,L=N,T=I,M=K,W=Z;for(let pe=0;pe<i;pe+=2)q=q+G|0,L=Q(L^q,16),A=A+L|0,G=Q(G^A,12),q=q+G|0,L=Q(L^q,8),A=A+L|0,G=Q(G^A,7),re=re+Y|0,T=Q(T^re,16),v=v+T|0,Y=Q(Y^v,12),re=re+Y|0,T=Q(T^re,8),v=v+T|0,Y=Q(Y^v,7),R=R+V|0,M=Q(M^R,16),D=D+M|0,V=Q(V^D,12),R=R+V|0,M=Q(M^R,8),D=D+M|0,V=Q(V^D,7),k=k+B|0,W=Q(W^k,16),U=U+W|0,B=Q(B^U,12),k=k+B|0,W=Q(W^k,8),U=U+W|0,B=Q(B^U,7),q=q+Y|0,W=Q(W^q,16),D=D+W|0,Y=Q(Y^D,12),q=q+Y|0,W=Q(W^q,8),D=D+W|0,Y=Q(Y^D,7),re=re+V|0,L=Q(L^re,16),U=U+L|0,V=Q(V^U,12),re=re+V|0,L=Q(L^re,8),U=U+L|0,V=Q(V^U,7),R=R+B|0,T=Q(T^R,16),A=A+T|0,B=Q(B^A,12),R=R+B|0,T=Q(T^R,8),A=A+T|0,B=Q(B^A,7),k=k+G|0,M=Q(M^k,16),v=v+M|0,G=Q(G^v,12),k=k+G|0,M=Q(M^k,8),v=v+M|0,G=Q(G^v,7);let O=0;n[O++]=s+q|0,n[O++]=a+re|0,n[O++]=c+R|0,n[O++]=f+k|0,n[O++]=p+G|0,n[O++]=h+Y|0,n[O++]=y+V|0,n[O++]=b+B|0,n[O++]=g+A|0,n[O++]=C+v|0,n[O++]=m+D|0,n[O++]=S+U|0,n[O++]=N+L|0,n[O++]=I+T|0,n[O++]=K+M|0,n[O++]=Z+W|0}function XB(r,e,t,n){let o=r[0],i=r[1],s=r[2],a=r[3],c=e[0],f=e[1],p=e[2],h=e[3],y=e[4],b=e[5],g=e[6],C=e[7],m=t[0],S=t[1],N=t[2],I=t[3];for(let Z=0;Z<20;Z+=2)o=o+c|0,m=Q(m^o,16),y=y+m|0,c=Q(c^y,12),o=o+c|0,m=Q(m^o,8),y=y+m|0,c=Q(c^y,7),i=i+f|0,S=Q(S^i,16),b=b+S|0,f=Q(f^b,12),i=i+f|0,S=Q(S^i,8),b=b+S|0,f=Q(f^b,7),s=s+p|0,N=Q(N^s,16),g=g+N|0,p=Q(p^g,12),s=s+p|0,N=Q(N^s,8),g=g+N|0,p=Q(p^g,7),a=a+h|0,I=Q(I^a,16),C=C+I|0,h=Q(h^C,12),a=a+h|0,I=Q(I^a,8),C=C+I|0,h=Q(h^C,7),o=o+f|0,I=Q(I^o,16),g=g+I|0,f=Q(f^g,12),o=o+f|0,I=Q(I^o,8),g=g+I|0,f=Q(f^g,7),i=i+p|0,m=Q(m^i,16),C=C+m|0,p=Q(p^C,12),i=i+p|0,m=Q(m^i,8),C=C+m|0,p=Q(p^C,7),s=s+h|0,S=Q(S^s,16),y=y+S|0,h=Q(h^y,12),s=s+h|0,S=Q(S^s,8),y=y+S|0,h=Q(h^y,7),a=a+c|0,N=Q(N^a,16),b=b+N|0,c=Q(c^b,12),a=a+c|0,N=Q(N^a,8),b=b+N|0,c=Q(c^b,7);let K=0;n[K++]=o,n[K++]=i,n[K++]=s,n[K++]=a,n[K++]=m,n[K++]=S,n[K++]=N,n[K++]=I}var ZB=Eg(CA,{counterRight:!1,counterLength:4,allowShortKeys:!1}),YB=Eg(CA,{counterRight:!1,counterLength:8,extendNonceFn:XB,allowShortKeys:!1});var JB=new Uint8Array(16),EA=(r,e)=>{r.update(e);let t=e.length%16;t&&r.update(JB.subarray(t))},QB=new Uint8Array(32);function _A(r,e,t,n,o){o!==void 0&&lt(o,void 0,"AAD");let i=r(e,t,QB),s=wA(n.length,o?o.length:0,!0),a=SA.create(i);o&&EA(a,o),EA(a,n),a.update(s);let c=a.digest();return Mn(i,s),c}var BA=r=>(e,t,n)=>({encrypt(i,s){let a=i.length;s=Ag(a+16,s,!1),s.set(i);let c=s.subarray(0,-16);r(e,t,c,c,1);let f=_A(r,e,t,c,n);return s.set(f,a),Mn(f),s},decrypt(i,s){s=Ag(i.length-16,s,!1);let a=i.subarray(0,-16),c=i.subarray(-16),f=_A(r,e,t,a,n);if(!bA(c,f))throw new Error("invalid tag");return s.set(i.subarray(0,-16)),r(e,t,s,s,1),Mn(f),s}}),Cg=vg({blockSize:64,nonceLength:12,tagLength:16},BA(ZB)),Uz=vg({blockSize:64,nonceLength:24,tagLength:16},BA(YB));function TA(r,e,t){return Ro(r),t===void 0&&(t=new Uint8Array(r.outputLen)),ms(r,t,e)}var Bg=Uint8Array.of(0),IA=Uint8Array.of();function kA(r,e,t,n=32){Ro(r),rr(n,"length");let o=r.outputLen;if(n>255*o)throw new Error("Length must be <= 255*HashLen");let i=Math.ceil(n/o);t===void 0?t=IA:fe(t,void 0,"info");let s=new Uint8Array(i*o),a=ms.create(r,e),c=a._cloneInto(),f=new Uint8Array(a.outputLen);for(let p=0;p<i;p++)Bg[0]=p+1,c.update(p===0?IA:f).update(t).update(Bg).digestInto(f),s.set(f,o*p),a._cloneInto(c);return a.destroy(),c.destroy(),br(f,Bg),s.slice(0,n)}var Ig={hashSHA256(r){return Ur(r.subarray())},getHKDF(r,e){let t=TA(Ur,e,r),o=kA(Ur,t,void 0,96),i=o.subarray(0,32),s=o.subarray(32,64),a=o.subarray(64,96);return[i,s,a]},generateX25519KeyPair(){let r=$a.utils.randomSecretKey();return{publicKey:$a.getPublicKey(r),privateKey:r}},generateX25519KeyPairFromSeed(r){return{publicKey:$a.getPublicKey(r),privateKey:r}},generateX25519SharedKey(r,e){return $a.getSharedSecret(r.subarray(),e.subarray())},chaCha20Poly1305Encrypt(r,e,t,n){return Cg(n,e,t).encrypt(r.subarray())},chaCha20Poly1305Decrypt(r,e,t,n,o){return Cg(n,e,t).decrypt(r.subarray(),o)}};var OA=Ig;function PA(r){return{generateKeypair:r.generateX25519KeyPair,dh:(e,t)=>r.generateX25519SharedKey(e.privateKey,t).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var ba=r=>{let e=ot(2);return e[0]=r>>8,e[1]=r,e};ba.bytes=2;var wa=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let e=0;return e+=r[0]<<8,e+=r[1],e}return r.getUint16(0)};wa.bytes=2;function NA(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}function Tg(r,e){!e.enabled||!ya||(r?(e(`LOCAL_STATIC_PUBLIC_KEY ${ue(r.publicKey,"hex")}`),e(`LOCAL_STATIC_PRIVATE_KEY ${ue(r.privateKey,"hex")}`)):e("Missing local static keys."))}function kg(r,e){!e.enabled||!ya||(r?(e(`LOCAL_PUBLIC_EPHEMERAL_KEY ${ue(r.publicKey,"hex")}`),e(`LOCAL_PRIVATE_EPHEMERAL_KEY ${ue(r.privateKey,"hex")}`)):e("Missing local ephemeral keys."))}function DA(r,e){!e.enabled||!ya||e(r?`REMOTE_STATIC_PUBLIC_KEY ${ue(r.subarray(),"hex")}`:"Missing remote static public key.")}function Og(r,e){!e.enabled||!ya||e(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${ue(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Pg(r,e,t){!t.enabled||!ya||(t(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&ue(r.k,"hex")}`),t(`CIPHER_STATE_2 ${e.n.getUint64()} ${e.k&&ue(e.k,"hex")}`))}var xa=class r extends Error{code;constructor(e="Invalid crypto exchange"){super(e),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var eI=0,tI=4294967295,rI="Cipherstate has reached maximum n, a new handshake must be performed",Yh=class{n;bytes;view;constructor(e=eI){this.n=e,this.bytes=nt(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,e,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>tI)throw new Error(rI)}};var qi=nt(0),va=class{k;n;crypto;constructor(e,t=void 0,n=0){this.crypto=e,this.k=t,this.n=new Yh(n)}hasKey(){return!!this.k}encryptWithAd(e,t){if(!this.hasKey())return t;this.n.assertValue();let n=this.crypto.encrypt(t,this.n.getBytes(),e,this.k);return this.n.increment(),n}decryptWithAd(e,t,n){if(!this.hasKey())return t;this.n.assertValue();let o=this.crypto.decrypt(t,this.n.getBytes(),e,this.k,n);return this.n.increment(),o}},Ng=class{cs;ck;h;crypto;constructor(e,t){this.crypto=e;let n=de(t,"utf-8");this.h=nI(e,n),this.ck=this.h,this.cs=new va(e)}mixKey(e){let[t,n]=this.crypto.hkdf(this.ck,e);this.ck=t,this.cs=new va(this.crypto,n)}mixHash(e){this.h=this.crypto.hash(new me(this.h,e))}encryptAndHash(e){let t=this.cs.encryptWithAd(this.h,e);return this.mixHash(t),t}decryptAndHash(e){let t=this.cs.decryptWithAd(this.h,e);return this.mixHash(e),t}split(){let[e,t]=this.crypto.hkdf(this.ck,qi);return[new va(this.crypto,e),new va(this.crypto,t)]}},Dg=class{ss;s;e;rs;re;initiator;crypto;constructor(e){let{crypto:t,protocolName:n,prologue:o,initiator:i,s,e:a,rs:c,re:f}=e;this.crypto=t,this.ss=new Ng(t,n),this.ss.mixHash(o),this.initiator=i,this.s=s,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let e=this.crypto.generateKeypair();return this.ss.mixHash(e.publicKey),this.e=e,e.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(e,t=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(e.byteLength<t+32)throw new Error("message is not long enough");this.re=e.sublist(t,t+32),this.ss.mixHash(this.re)}readS(e,t=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(e.byteLength<t+n)throw new Error("message is not long enough");let o=e.sublist(t,t+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},Xu=class extends Dg{writeMessageA(e){return new me(this.writeE(),this.ss.encryptAndHash(e))}writeMessageB(e){let t=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new me(t,n,this.ss.encryptAndHash(e))}writeMessageC(e){let t=this.writeS();return this.writeSE(),new me(t,this.ss.encryptAndHash(e))}readMessageA(e){try{return this.readE(e),this.ss.decryptAndHash(e.sublist(32))}catch(t){throw new xa(`handshake stage 0 validation fail: ${t.message}`)}}readMessageB(e){try{this.readE(e),this.readEE();let t=this.readS(e,32);return this.readES(),this.ss.decryptAndHash(e.sublist(32+t))}catch(t){throw new xa(`handshake stage 1 validation fail: ${t.message}`)}}readMessageC(e){try{let t=this.readS(e);return this.readSE(),this.ss.decryptAndHash(e.sublist(t))}catch(t){throw new xa(`handshake stage 2 validation fail: ${t.message}`)}}};function nI(r,e){if(e.length<=32){let t=nt(32);return t.set(e),t}else return r.hash(e)}var Jh;(function(r){let e;r.codec=()=>(e==null&&(e=Sr((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.webtransportCerthashes!=null)for(let i of t.webtransportCerthashes)n.uint32(10),n.bytes(i);if(t.streamMuxers!=null)for(let i of t.streamMuxers)n.uint32(18),n.string(i);o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let i={webtransportCerthashes:[],streamMuxers:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let a=t.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&i.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new Ya('Decode error - map field "webtransportCerthashes" had too many elements');i.webtransportCerthashes.push(t.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&i.streamMuxers.length===o.limits.streamMuxers)throw new Ya('Decode error - map field "streamMuxers" had too many elements');i.streamMuxers.push(t.string());break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ar(t,r.codec()),r.decode=(t,n)=>vr(t,r.codec(),n)})(Jh||(Jh={}));var Zu;(function(r){let e;r.codec=()=>(e==null&&(e=Sr((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.identityKey!=null&&t.identityKey.byteLength>0&&(n.uint32(10),n.bytes(t.identityKey)),t.identitySig!=null&&t.identitySig.byteLength>0&&(n.uint32(18),n.bytes(t.identitySig)),t.extensions!=null&&(n.uint32(34),Jh.codec().encode(t.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let i={identityKey:nt(0),identitySig:nt(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let a=t.uint32();switch(a>>>3){case 1:{i.identityKey=t.bytes();break}case 2:{i.identitySig=t.bytes();break}case 4:{i.extensions=Jh.codec().decode(t,t.uint32(),{limits:o.limits?.extensions});break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ar(t,r.codec()),r.decode=(t,n)=>vr(t,r.codec(),n)})(Zu||(Zu={}));async function Lg(r,e,t){let n=await r.sign(LA(e));return Zu.encode({identityKey:$n(r.publicKey),identitySig:n,extensions:t})}async function Ug(r,e,t){try{let n=Zu.decode(r),o=tc(n.identityKey);if(t?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${t}`);if(!e)throw new Error("Remote static does not exist");let i=LA(e);if(!await o.verify(i,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new el(n.message)}}function LA(r){let e=de("noise-libp2p-static-key:");return r instanceof Uint8Array?It([e,r],e.length+r.length):(r.prepend(e),r)}var Rg=class extends Qn{stream;handshake;metrics;decoder;constructor(e,t,n){super({log:e.log,inactivityTimeout:e.inactivityTimeout,maxReadBufferLength:e.maxReadBufferLength,direction:e.direction}),this.stream=e,this.handshake=t,this.metrics=n,this.decoder=new af({lengthDecoder:wa,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let i=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",i);let s=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",s);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(e){let t=new me;for(let n=0;n<e.byteLength;n+=65519){let o=n+65519;o>e.byteLength&&(o=e.byteLength);let i;e instanceof Uint8Array?i=this.handshake.encrypt(e.subarray(n,o)):i=this.handshake.encrypt(e.sublist(n,o)),this.metrics?.encryptedPackets.increment(),t.append(ba(i.byteLength)),t.append(i)}return t}decrypt(e){let t=new me;for(let n=0;n<e.byteLength;n+=65535){let o=n+65535;if(o>e.byteLength&&(o=e.byteLength),o-wg<n)throw new Error("Invalid chunk");let i;e instanceof Uint8Array?i=e.subarray(n,o):i=e.sublist(n,o);let s=e.subarray(n,o-wg);try{let a=this.handshake.decrypt(i,s);this.metrics?.decryptedPackets.increment(),t.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return t}close(e){return this.stream.close(e)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(e){this.stream.abort(e)}sendData(e){return{sentBytes:e.byteLength,canSendMore:this.stream.send(this.encrypt(e))}}};function Mg(r,e,t){return new Rg(r,e,t)}async function UA(r,e){let{log:t,connection:n,crypto:o,privateKey:i,prologue:s,s:a,remoteIdentityKey:c,extensions:f}=r,p=await Lg(i,a.publicKey,f),h=new Xu({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:s,s:a});Tg(h.s,t),t.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(qi),e),t.trace("Stage 0 - Initiator finished sending first message."),kg(h.e,t),t.trace("Stage 1 - Initiator waiting to receive first message from responder...");let y=h.readMessageB(await n.read(e));t.trace("Stage 1 - Initiator received the message."),Og(h.re,t),DA(h.rs,t),t.trace("Initiator going to check remote's signature...");let b=await Ug(y,h.rs,c);t.trace("All good with the signature!"),t.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(p),e),t.trace("Stage 2 - Initiator sent message with signed payload.");let[g,C]=h.ss.split();return Pg(g,C,t),{payload:b,encrypt:m=>g.encryptWithAd(qi,m),decrypt:(m,S)=>C.decryptWithAd(qi,m,S)}}async function MA(r,e){let{log:t,connection:n,crypto:o,privateKey:i,prologue:s,s:a,remoteIdentityKey:c,extensions:f}=r,p=await Lg(i,a.publicKey,f),h=new Xu({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:s,s:a});Tg(h.s,t),t.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(e)),t.trace("Stage 0 - Responder received first message."),Og(h.re,t),t.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(p),e),t.trace("Stage 1 - Responder sent the second handshake message with signed payload."),kg(h.e,t),t.trace("Stage 2 - Responder waiting for third handshake message...");let y=h.readMessageC(await n.read(e));t.trace("Stage 2 - Responder received the message, finished handshake.");let b=await Ug(y,h.rs,c),[g,C]=h.ss.split();return Pg(g,C,t),{payload:b,encrypt:m=>C.encryptWithAd(qi,m),decrypt:(m,S)=>g.decryptWithAd(qi,m,S)}}var Qh=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(e,t={}){let{staticNoiseKey:n,extensions:o,crypto:i,prologueBytes:s}=t,{metrics:a}=e;this.components=e,this.log=e.logger.forComponent("libp2p:noise");let c=i??OA;this.crypto=PA(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?NA(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=s??nt(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[Yi]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(e,t){let n=e.log?.newScope("noise")??this.log,o=of(e,{lengthEncoder:ba,lengthDecoder:wa,maxDataLength:65535}),i=await this.performHandshakeInitiator(o,this.components.privateKey,n,t?.remotePeer?.publicKey,t),s=tc(i.payload.identityKey);return{connection:Mg(o.unwrap(),i,this.metrics),remoteExtensions:i.payload.extensions,remotePeer:Dd(s),streamMuxer:t?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(i.payload.extensions?.streamMuxers)}}getStreamMuxer(e){if(e==null||e.length===0)return;let t=this.components.upgrader.getStreamMuxers();if(t!=null)for(let n of e){let o=t.get(n);if(o!=null)return o}if(e.length)throw new tl("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(e,t){let n=e.log?.newScope("noise")??this.log,o=of(e,{lengthEncoder:ba,lengthDecoder:wa,maxDataLength:65535}),i=await this.performHandshakeResponder(o,this.components.privateKey,n,t?.remotePeer?.publicKey,t),s=tc(i.payload.identityKey);return{connection:Mg(o.unwrap(),i,this.metrics),remoteExtensions:i.payload.extensions,remotePeer:Dd(s),streamMuxer:t?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(i.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(e,t,n,o,i){let s,a=i?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{s=await UA({connection:e,privateKey:t,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},i),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return s}async performHandshakeResponder(e,t,n,o,i){let s,a=i?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{s=await MA({connection:e,privateKey:t,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},i),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return s}};function jA(r={}){return e=>new Qh(e,r)}var jg=Object.values(Po).map(r=>r.decoder).reduce((r,e)=>r.or(e)),oI=/^a=fingerprint:(?:\w+-[0-9]+)\s(?<fingerprint>(:?[0-9a-fA-F]{2})+)$/m;function KA(r){return r?.match(oI)?.groups?.fingerprint}function Kg(r){let t=r.getComponents().find(n=>n.code===466)?.value;if(t===void 0||t==="")throw new xe(`Couldn't find a certhash component of multiaddr: ${r.toString()}`);return t}function iI(r){return mr.decode(jg.decode(r))}function sI(r){let e=iI(Kg(r)),t=aI(e.code),n=e.digest.reduce((i,s)=>i+s.toString(16).padStart(2,"0"),""),o=n.match(/.{1,2}/g);if(o==null)throw new yf(n,r.toString());return`${t} ${o.join(":").toUpperCase()}`}function HA(r){let e=r.split(":").map(o=>parseInt(o,16)),t=Uint8Array.from(e),n=Bt(tr.code,t);return As(`/certhash/${Oo.encode(n.bytes)}`)}function aI(r){switch(r){case 17:return"sha-1";case 18:return"sha-256";case 19:return"sha-512";default:throw new bf(r)}}function VA(r,e){let{host:t,port:n,type:o}=hm(r);if(o!=="ip4"&&o!=="ip6")throw new xe(`Multiaddr ${r} was not an IPv4 or IPv6 address`);let i=sI(r);return{type:"answer",sdp:`v=0
12
+ `)}};Dt.CertificateTag="CERTIFICATE";Dt.CrlTag="CRL";Dt.CertificateRequestTag="CERTIFICATE REQUEST";Dt.PublicKeyTag="PUBLIC KEY";Dt.PrivateKeyTag="PRIVATE KEY";var Io=class r extends Bo{static isAsnEncoded(e){return H.BufferSourceConverter.isBufferSource(e)||typeof e=="string"}static toArrayBuffer(e){if(typeof e=="string"){if(Dt.isPem(e))return Dt.decode(e)[0];if(H.Convert.isHex(e))return H.Convert.FromHex(e);if(H.Convert.isBase64(e))return H.Convert.FromBase64(e);if(H.Convert.isBase64Url(e))return H.Convert.FromBase64Url(e);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}else{let t=H.BufferSourceConverter.toUint8Array(e);if(t.length>0&&t[0]===48)return H.BufferSourceConverter.toArrayBuffer(e);let n=H.Convert.ToBinary(e);if(Dt.isPem(n))return Dt.decode(n)[0];if(H.Convert.isHex(n))return H.Convert.FromHex(n);if(H.Convert.isBase64(n))return H.Convert.FromBase64(n);if(H.Convert.isBase64Url(n))return H.Convert.FromBase64Url(n);throw new TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...e){r.isAsnEncoded(e[0])?super(r.toArrayBuffer(e[0]),e[1]):super(e[0])}toString(e="pem"){switch(e){case"pem":return Dt.encode(this.rawData,this.tag);default:return super.toString(e)}}},Pn=class r extends Io{static async create(e,t=ut.get()){if(e instanceof r)return e;if($u.isCryptoKey(e)){if(e.type!=="public")throw new TypeError("Public key is required");let n=await t.subtle.exportKey("spki",e);return new r(n)}else{if(e.publicKey)return e.publicKey;if(H.BufferSourceConverter.isBufferSource(e))return new r(e);throw new TypeError("Unsupported PublicKeyType")}}constructor(e){Io.isAsnEncoded(e)?super(e,mt):super(e),this.tag=Dt.PublicKeyTag}async export(...e){let t,n=["verify"],o={hash:"SHA-256",...this.algorithm};e.length>1?(o=e[0]||o,n=e[1]||n,t=e[2]||ut.get()):t=e[0]||ut.get();let i=this.rawData,s=F.parse(this.rawData,mt);return s.algorithm.algorithm===wo&&(i=vB(s,i)),t.subtle.importKey("spki",i,o,!0,n)}onInit(e){let t=De.resolve(Wi),n=this.algorithm=t.toWebAlgorithm(e.algorithm);switch(e.algorithm.algorithm){case Yr:{let o=F.parse(e.subjectPublicKey,ra),i=H.BufferSourceConverter.toUint8Array(o.modulus);n.publicExponent=H.BufferSourceConverter.toUint8Array(o.publicExponent),n.modulusLength=(i[0]?i:i.slice(1)).byteLength<<3;break}}}async getThumbprint(...e){var t;let n,o="SHA-1";return e.length>=1&&!(!((t=e[0])===null||t===void 0)&&t.subtle)?(o=e[0]||o,n=e[1]||ut.get()):n=e[0]||ut.get(),await n.subtle.digest(o,this.rawData)}async getKeyIdentifier(...e){let t,n="SHA-1";e.length===1?typeof e[0]=="string"?(n=e[0],t=ut.get()):t=e[0]:e.length===2?(n=e[0],t=e[1]):t=ut.get();let o=F.parse(this.rawData,mt);return await t.subtle.digest(n,o.subjectPublicKey)}toTextObject(){let e=this.toTextObjectEmpty(),t=F.parse(this.rawData,mt);switch(e.Algorithm=Nn.serializeAlgorithm(t.algorithm),t.algorithm.algorithm){case Ni:e["EC Point"]=t.subjectPublicKey;break;case Yr:default:e["Raw Data"]=t.subjectPublicKey}return e}};function vB(r,e){return r.algorithm=new j({algorithm:Yr,parameters:null}),e=F.serialize(r),e}var Rh=class r extends Qt{static async create(e,t=!1,n=ut.get()){if("name"in e&&"serialNumber"in e)return new r(e,t);let i=await(await Pn.create(e,n)).getKeyIdentifier(n);return new r(H.Convert.ToHex(i),t)}constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else if(typeof e[0]=="string"){let t=new qr({keyIdentifier:new yi(H.Convert.FromHex(e[0]))});super(Wf,e[1],F.serialize(t))}else{let t=e[0],n=t.name instanceof Dn?F.parse(t.name.rawData,je):t.name,o=new qr({authorityCertIssuer:n,authorityCertSerialNumber:H.Convert.FromHex(t.serialNumber)});super(Wf,e[1],F.serialize(o))}}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,qr);t.keyIdentifier&&(this.keyId=H.Convert.ToHex(t.keyIdentifier)),(t.authorityCertIssuer||t.authorityCertSerialNumber)&&(this.certId={name:t.authorityCertIssuer||[],serialNumber:t.authorityCertSerialNumber?H.Convert.ToHex(t.authorityCertSerialNumber):""})}toTextObject(){let e=this.toTextObjectWithoutValue(),t=F.parse(this.value,qr);return t.authorityCertIssuer&&(e["Authority Issuer"]=new Dn(t.authorityCertIssuer).toTextObject()),t.authorityCertSerialNumber&&(e["Authority Serial Number"]=t.authorityCertSerialNumber),t.keyIdentifier&&(e[""]=t.keyIdentifier),e}};Rh.NAME="Authority Key Identifier";var ha=class extends Qt{constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,gi);this.ca=t.cA,this.pathLength=t.pathLenConstraint}else{let t=new gi({cA:e[0],pathLenConstraint:e[1]});super(qf,e[2],F.serialize(t)),this.ca=e[0],this.pathLength=e[1]}}toTextObject(){let e=this.toTextObjectWithoutValue();return this.ca&&(e.CA=this.ca),this.pathLength!==void 0&&(e["Path Length"]=this.pathLength),e}};ha.NAME="Basic Constraints";var sA;(function(r){r.serverAuth="1.3.6.1.5.5.7.3.1",r.clientAuth="1.3.6.1.5.5.7.3.2",r.codeSigning="1.3.6.1.5.5.7.3.3",r.emailProtection="1.3.6.1.5.5.7.3.4",r.timeStamping="1.3.6.1.5.5.7.3.8",r.ocspSigning="1.3.6.1.5.5.7.3.9"})(sA||(sA={}));var Lh=class extends Qt{constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,Vc);this.usages=t.map(n=>n)}else{let t=new Vc(e[0]);super(Zf,e[1],F.serialize(t)),this.usages=e[0]}}toTextObject(){let e=this.toTextObjectWithoutValue();return e[""]=this.usages.map(t=>tn.toString(t)).join(", "),e}};Lh.NAME="Extended Key Usages";var aA;(function(r){r[r.digitalSignature=1]="digitalSignature",r[r.nonRepudiation=2]="nonRepudiation",r[r.keyEncipherment=4]="keyEncipherment",r[r.dataEncipherment=8]="dataEncipherment",r[r.keyAgreement=16]="keyAgreement",r[r.keyCertSign=32]="keyCertSign",r[r.cRLSign=64]="cRLSign",r[r.encipherOnly=128]="encipherOnly",r[r.decipherOnly=256]="decipherOnly"})(aA||(aA={}));var Uh=class extends Qt{constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,Ds);this.usages=t.toNumber()}else{let t=new Ds(e[0]);super(Yf,e[1],F.serialize(t)),this.usages=e[0]}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=F.parse(this.value,Ds);return e[""]=t.toJSON().join(", "),e}};Uh.NAME="Key Usages";var Mh=class r extends Qt{static async create(e,t=!1,n=ut.get()){let i=await(await Pn.create(e,n)).getKeyIdentifier(n);return new r(H.Convert.ToHex(i),t)}constructor(...e){if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let t=F.parse(this.value,Ht);this.keyId=H.Convert.ToHex(t)}else{let t=typeof e[0]=="string"?H.Convert.FromHex(e[0]):e[0],n=new Ht(t);super(sy,e[1],F.serialize(n)),this.keyId=H.Convert.ToHex(t)}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=F.parse(this.value,Ht);return e[""]=t,e}};Mh.NAME="Subject Key Identifier";var jh=class extends Qt{constructor(...e){H.BufferSourceConverter.isBufferSource(e[0])?super(e[0]):super(oy,e[1],new Dn(e[0]||[]).rawData)}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,th);this.names=new Dn(t)}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(let n in t)e[n]=t[n];return e}};jh.NAME="Subject Alternative Name";var Rt=class{static register(e,t){this.items.set(e,t)}static create(e){let t=new Qt(e),n=this.items.get(t.type);return n?new n(e):t}};Rt.items=new Map;var Kh=class extends Qt{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0])){super(e[0]);let n=F.parse(this.value,Uc);this.policies=n.map(o=>o.policyIdentifier)}else{let n=e[0],o=(t=e[1])!==null&&t!==void 0?t:!1,i=new Uc(n.map(s=>new bi({policyIdentifier:s})));super(zf,o,F.serialize(i)),this.policies=n}}toTextObject(){let e=this.toTextObjectWithoutValue();return e.Policy=this.policies.map(t=>new _e("",{},tn.toString(t))),e}};Kh.NAME="Certificate Policies";Rt.register(zf,Kh);var Hh=class extends Qt{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else if(Array.isArray(e[0])&&typeof e[0][0]=="string"){let o=e[0].map(s=>new Gr({distributionPoint:new Cn({fullName:[new ae({uniformResourceIdentifier:s})]})})),i=new fo(o);super(Xf,e[1],F.serialize(i))}else{let n=new fo(e[0]);super(Xf,e[1],F.serialize(n))}(t=this.distributionPoints)!==null&&t!==void 0||(this.distributionPoints=[])}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,fo);this.distributionPoints=t}toTextObject(){let e=this.toTextObjectWithoutValue();return e["Distribution Point"]=this.distributionPoints.map(t=>{var n;let o={};return t.distributionPoint&&(o[""]=(n=t.distributionPoint.fullName)===null||n===void 0?void 0:n.map(i=>new en(i).toString()).join(", ")),t.reasons&&(o.Reasons=t.reasons.toString()),t.cRLIssuer&&(o["CRL Issuer"]=t.cRLIssuer.map(i=>i.toString()).join(", ")),o}),e}};Hh.NAME="CRL Distribution Points";var Vh=class extends Qt{constructor(...e){var t,n,o,i;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else if(e[0]instanceof mi){let s=new mi(e[0]);super(Ff,e[1],F.serialize(s))}else{let s=e[0],a=new mi;Oh(a,s,Hm,"ocsp"),Oh(a,s,Vm,"caIssuers"),Oh(a,s,$m,"timeStamping"),Oh(a,s,Fm,"caRepository"),super(Ff,e[1],F.serialize(a))}(t=this.ocsp)!==null&&t!==void 0||(this.ocsp=[]),(n=this.caIssuers)!==null&&n!==void 0||(this.caIssuers=[]),(o=this.timeStamping)!==null&&o!==void 0||(this.timeStamping=[]),(i=this.caRepository)!==null&&i!==void 0||(this.caRepository=[])}onInit(e){super.onInit(e),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],F.parse(e.extnValue,mi).forEach(n=>{switch(n.accessMethod){case Hm:this.ocsp.push(new en(n.accessLocation));break;case Vm:this.caIssuers.push(new en(n.accessLocation));break;case $m:this.timeStamping.push(new en(n.accessLocation));break;case Fm:this.caRepository.push(new en(n.accessLocation));break}})}toTextObject(){let e=this.toTextObjectWithoutValue();return this.ocsp.length&&kh(e,"OCSP",this.ocsp),this.caIssuers.length&&kh(e,"CA Issuers",this.caIssuers),this.timeStamping.length&&kh(e,"Time Stamping",this.timeStamping),this.caRepository.length&&kh(e,"CA Repository",this.caRepository),e}};Vh.NAME="Authority Info Access";function kh(r,e,t){if(t.length===1)r[e]=t[0].toTextObject();else{let n=new _e("");t.forEach((o,i)=>{let s=o.toTextObject(),a=`${s[_e.NAME]} ${i+1}`,c=n[a];Array.isArray(c)||(c=[],n[a]=c),c.push(s)}),r[e]=n}}function Oh(r,e,t,n){let o=e[n];o&&(Array.isArray(o)?o:[o]).forEach(s=>{typeof s=="string"&&(s=new en("url",s)),r.push(new En({accessMethod:t,accessLocation:F.parse(s.rawData,ae)}))})}var $h=class extends Qt{constructor(...e){H.BufferSourceConverter.isBufferSource(e[0])?super(e[0]):super(ey,e[1],new Dn(e[0]||[]).rawData)}onInit(e){super.onInit(e);let t=F.parse(e.extnValue,je);this.names=new Dn(t)}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.names.toTextObject();for(let n in t)e[n]=t[n];return e}};$h.NAME="Issuer Alternative Name";var pa=class r extends Bo{constructor(...e){let t;if(H.BufferSourceConverter.isBufferSource(e[0]))t=H.BufferSourceConverter.toArrayBuffer(e[0]);else{let n=e[0],o=Array.isArray(e[1])?e[1].map(i=>H.BufferSourceConverter.toArrayBuffer(i)):[];t=F.serialize(new dt({type:n,values:o}))}super(t,dt)}onInit(e){this.type=e.type,this.values=e.values}toTextObject(){let e=this.toTextObjectWithoutValue();return e.Value=this.values.map(t=>new _e("",{"":t})),e}toTextObjectWithoutValue(){let e=this.toTextObjectEmpty();return e[_e.NAME]===r.NAME&&(e[_e.NAME]=tn.toString(this.type)),e}};pa.NAME="Attribute";var Fh=class extends pa{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else{let n=new bu({printableString:e[0]});super(tg,[F.serialize(n)])}(t=this.password)!==null&&t!==void 0||(this.password="")}onInit(e){if(super.onInit(e),this.values[0]){let t=F.parse(this.values[0],bu);this.password=t.toString()}}toTextObject(){let e=this.toTextObjectWithoutValue();return e[_e.VALUE]=this.password,e}};Fh.NAME="Challenge Password";var Wu=class extends pa{constructor(...e){var t;if(H.BufferSourceConverter.isBufferSource(e[0]))super(e[0]);else{let n=e[0],o=new Yt;for(let i of n)o.push(F.parse(i.rawData,yt));super(xu,[F.serialize(o)])}(t=this.items)!==null&&t!==void 0||(this.items=[])}onInit(e){if(super.onInit(e),this.values[0]){let t=F.parse(this.values[0],Yt);this.items=t.map(n=>Rt.create(F.serialize(n)))}}toTextObject(){let e=this.toTextObjectWithoutValue(),t=this.items.map(n=>n.toTextObject());for(let n of t)e[n[_e.NAME]]=n;return e}};Wu.NAME="Extensions";var da=class{static register(e,t){this.items.set(e,t)}static create(e){let t=new pa(e),n=this.items.get(t.type);return n?new n(e):t}};da.items=new Map;var Gu="crypto.signatureFormatter",dg=class{toAsnSignature(e,t){return H.BufferSourceConverter.toArrayBuffer(t)}toWebSignature(e,t){return H.BufferSourceConverter.toArrayBuffer(t)}},Nh,mg=Nh=class{static createPssParams(e,t){let n=Nh.getHashAlgorithm(e);return n?new Jr({hashAlgorithm:n,maskGenAlgorithm:new j({algorithm:xo,parameters:F.serialize(n)}),saltLength:t}):null}static getHashAlgorithm(e){let t=De.resolve(Wi);return typeof e=="string"?t.toAsnAlgorithm({name:e}):typeof e=="object"&&e&&"name"in e?t.toAsnAlgorithm(e):null}toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in e){let t;if(typeof e.hash=="string")t=e.hash;else if(e.hash&&typeof e.hash=="object"&&"name"in e.hash&&typeof e.hash.name=="string")t=e.hash.name.toUpperCase();else throw new Error("Cannot get hash algorithm name");switch(t.toLowerCase()){case"sha-1":return new j({algorithm:Ys,parameters:null});case"sha-256":return new j({algorithm:ph,parameters:null});case"sha-384":return new j({algorithm:Js,parameters:null});case"sha-512":return new j({algorithm:Qs,parameters:null})}}else return new j({algorithm:Yr,parameters:null});break;case"rsa-pss":if("hash"in e){if(!("saltLength"in e&&typeof e.saltLength=="number"))throw new Error("Cannot get 'saltLength' from 'alg' argument");let t=Nh.createPssParams(e.hash,e.saltLength);if(!t)throw new Error("Cannot create PSS parameters");return new j({algorithm:wo,parameters:F.serialize(t)})}else return new j({algorithm:wo,parameters:null})}return null}toWebAlgorithm(e){switch(e.algorithm){case Yr:return{name:"RSASSA-PKCS1-v1_5"};case Ys:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case ph:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case Js:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case Qs:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case wo:if(e.parameters){let t=F.parse(e.parameters,Jr);return{name:"RSA-PSS",hash:De.resolve(Wi).toWebAlgorithm(t.hashAlgorithm),saltLength:t.saltLength}}else return{name:"RSA-PSS"}}return null}};mg=Nh=u([Ao()],mg);De.registerSingleton(qu,mg);var yg=class{toAsnAlgorithm(e){switch(e.name.toLowerCase()){case"sha-1":return new j({algorithm:Ri});case"sha-256":return new j({algorithm:Li});case"sha-384":return new j({algorithm:Ui});case"sha-512":return new j({algorithm:Mi})}return null}toWebAlgorithm(e){switch(e.algorithm){case Ri:return{name:"SHA-1"};case Li:return{name:"SHA-256"};case Ui:return{name:"SHA-384"};case Mi:return{name:"SHA-512"}}return null}};yg=u([Ao()],yg);De.registerSingleton(qu,yg);var Rn=class r{addPadding(e,t){let n=H.BufferSourceConverter.toUint8Array(t),o=new Uint8Array(e);return o.set(n,e-n.length),o.buffer}removePadding(e,t=!1){let n=H.BufferSourceConverter.toUint8Array(e);for(let o=0;o<n.length;o++)if(n[o]){n=n.slice(o);break}if(t&&n[0]>127){let o=new Uint8Array(n.length+1);return o.set(n,1),o.buffer}return n.buffer}toAsnSignature(e,t){if(e.name==="ECDSA"){let n=e.namedCurve,o=r.namedCurveSize.get(n)||r.defaultNamedCurveSize,i=new Di,s=H.BufferSourceConverter.toUint8Array(t);return i.r=this.removePadding(s.slice(0,o),!0),i.s=this.removePadding(s.slice(o,o+o),!0),F.serialize(i)}return null}toWebSignature(e,t){if(e.name==="ECDSA"){let n=F.parse(t,Di),o=e.namedCurve,i=r.namedCurveSize.get(o)||r.defaultNamedCurveSize,s=this.addPadding(i,this.removePadding(n.r)),a=this.addPadding(i,this.removePadding(n.s));return(0,H.combine)(s,a)}return null}};Rn.namedCurveSize=new Map;Rn.defaultNamedCurveSize=32;var lg="1.3.101.110",cA="1.3.101.111",fg="1.3.101.112",uA="1.3.101.113",gg=class{toAsnAlgorithm(e){let t=null;switch(e.name.toLowerCase()){case"ed25519":t=fg;break;case"x25519":t=lg;break;case"eddsa":switch(e.namedCurve.toLowerCase()){case"ed25519":t=fg;break;case"ed448":t=uA;break}break;case"ecdh-es":switch(e.namedCurve.toLowerCase()){case"x25519":t=lg;break;case"x448":t=cA;break}}return t?new j({algorithm:t}):null}toWebAlgorithm(e){switch(e.algorithm){case fg:return{name:"Ed25519"};case uA:return{name:"EdDSA",namedCurve:"Ed448"};case lg:return{name:"X25519"};case cA:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};gg=u([Ao()],gg);De.registerSingleton(qu,gg);var Su,Eu,_u,Cu,Bu,Iu,Tu,ua,bg=class extends Io{get subjectName(){return he(this,Eu,"f")||Me(this,Eu,new Dr(this.asn.certificationRequestInfo.subject),"f"),he(this,Eu,"f")}get subject(){return he(this,_u,"f")||Me(this,_u,this.subjectName.toString(),"f"),he(this,_u,"f")}get signatureAlgorithm(){if(!he(this,Cu,"f")){let e=De.resolve(Wi);Me(this,Cu,e.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return he(this,Cu,"f")}get signature(){return he(this,Bu,"f")||Me(this,Bu,this.asn.signature,"f"),he(this,Bu,"f")}get publicKey(){return he(this,Iu,"f")||Me(this,Iu,new Pn(this.asn.certificationRequestInfo.subjectPKInfo),"f"),he(this,Iu,"f")}get attributes(){return he(this,Tu,"f")||Me(this,Tu,this.asn.certificationRequestInfo.attributes.map(e=>da.create(F.serialize(e))),"f"),he(this,Tu,"f")}get extensions(){if(!he(this,ua,"f")){Me(this,ua,[],"f");let e=this.getAttribute(xu);e instanceof Wu&&Me(this,ua,e.items,"f")}return he(this,ua,"f")}get tbs(){return he(this,Su,"f")||Me(this,Su,this.asn.certificationRequestInfoRaw||F.serialize(this.asn.certificationRequestInfo),"f"),he(this,Su,"f")}constructor(e){let t=Io.isAsnEncoded(e)?[e,Co]:[e];super(t[0],t[1]),Su.set(this,void 0),Eu.set(this,void 0),_u.set(this,void 0),Cu.set(this,void 0),Bu.set(this,void 0),Iu.set(this,void 0),Tu.set(this,void 0),ua.set(this,void 0),this.tag=Dt.CertificateRequestTag}onInit(e){}getAttribute(e){for(let t of this.attributes)if(t.type===e)return t;return null}getAttributes(e){return this.attributes.filter(t=>t.type===e)}getExtension(e){for(let t of this.extensions)if(t.type===e)return t;return null}getExtensions(e){return this.extensions.filter(t=>t.type===e)}async verify(e=ut.get()){let t={...this.publicKey.algorithm,...this.signatureAlgorithm},n=await this.publicKey.export(t,["verify"],e),o=De.resolveAll(Gu).reverse(),i=null;for(let a of o)if(i=a.toWebSignature(t,this.signature),i)break;if(!i)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await e.subtle.verify(this.signatureAlgorithm,n,i,this.tbs)}toTextObject(){let e=this.toTextObjectEmpty(),t=F.parse(this.rawData,Co),n=t.certificationRequestInfo,o=new _e("",{Version:`${zr[n.version]} (${n.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let i=new _e("");for(let s of this.attributes){let a=s.toTextObject();i[a[_e.NAME]]=a}o.Attributes=i}return e.Data=o,e.Signature=new _e("",{Algorithm:Nn.serializeAlgorithm(t.signatureAlgorithm),"":t.signature}),e}};Su=new WeakMap,Eu=new WeakMap,_u=new WeakMap,Cu=new WeakMap,Bu=new WeakMap,Iu=new WeakMap,Tu=new WeakMap,ua=new WeakMap;bg.NAME="PKCS#10 Certificate Request";var ku,Ou,Pu,Nu,Du,Ru,Lu,Uu,Mu,ju,la,Ku,ma=class extends Io{get publicKey(){return he(this,Ku,"f")||Me(this,Ku,new Pn(this.asn.tbsCertificate.subjectPublicKeyInfo),"f"),he(this,Ku,"f")}get serialNumber(){if(!he(this,Ou,"f")){let e=this.asn.tbsCertificate,t=new Uint8Array(e.serialNumber);t.length>1&&t[0]===0&&t[1]>127&&(t=t.slice(1)),Me(this,Ou,H.Convert.ToHex(t),"f")}return he(this,Ou,"f")}get subjectName(){return he(this,Pu,"f")||Me(this,Pu,new Dr(this.asn.tbsCertificate.subject),"f"),he(this,Pu,"f")}get subject(){return he(this,Nu,"f")||Me(this,Nu,this.subjectName.toString(),"f"),he(this,Nu,"f")}get issuerName(){return he(this,Du,"f")||Me(this,Du,new Dr(this.asn.tbsCertificate.issuer),"f"),he(this,Du,"f")}get issuer(){return he(this,Ru,"f")||Me(this,Ru,this.issuerName.toString(),"f"),he(this,Ru,"f")}get notBefore(){if(!he(this,Lu,"f")){let e=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!e)throw new Error("Cannot get 'notBefore' value");Me(this,Lu,e,"f")}return he(this,Lu,"f")}get notAfter(){if(!he(this,Uu,"f")){let e=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!e)throw new Error("Cannot get 'notAfter' value");Me(this,Uu,e,"f")}return he(this,Uu,"f")}get signatureAlgorithm(){if(!he(this,Mu,"f")){let e=De.resolve(Wi);Me(this,Mu,e.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return he(this,Mu,"f")}get signature(){return he(this,ju,"f")||Me(this,ju,this.asn.signatureValue,"f"),he(this,ju,"f")}get extensions(){return he(this,la,"f")||(Me(this,la,[],"f"),this.asn.tbsCertificate.extensions&&Me(this,la,this.asn.tbsCertificate.extensions.map(e=>Rt.create(F.serialize(e))),"f")),he(this,la,"f")}get tbs(){return he(this,ku,"f")||Me(this,ku,this.asn.tbsCertificateRaw||F.serialize(this.asn.tbsCertificate),"f"),he(this,ku,"f")}constructor(e){let t=Io.isAsnEncoded(e)?[e,cr]:[e];super(t[0],t[1]),ku.set(this,void 0),Ou.set(this,void 0),Pu.set(this,void 0),Nu.set(this,void 0),Du.set(this,void 0),Ru.set(this,void 0),Lu.set(this,void 0),Uu.set(this,void 0),Mu.set(this,void 0),ju.set(this,void 0),la.set(this,void 0),Ku.set(this,void 0),this.tag=Dt.CertificateTag}onInit(e){}getExtension(e){for(let t of this.extensions)if(typeof e=="string"){if(t.type===e)return t}else if(t instanceof e)return t;return null}getExtensions(e){return this.extensions.filter(t=>typeof e=="string"?t.type===e:t instanceof e)}async verify(e={},t=ut.get()){let n,o,i=e.publicKey;try{if(!i)n={...this.publicKey.algorithm,...this.signatureAlgorithm},o=await this.publicKey.export(n,["verify"],t);else if("publicKey"in i)n={...i.publicKey.algorithm,...this.signatureAlgorithm},o=await i.publicKey.export(n,["verify"],t);else if(i instanceof Pn)n={...i.algorithm,...this.signatureAlgorithm},o=await i.export(n,["verify"],t);else if(H.BufferSourceConverter.isBufferSource(i)){let f=new Pn(i);n={...f.algorithm,...this.signatureAlgorithm},o=await f.export(n,["verify"],t)}else n={...i.algorithm,...this.signatureAlgorithm},o=i}catch{return!1}let s=De.resolveAll(Gu).reverse(),a=null;for(let f of s)if(a=f.toWebSignature(n,this.signature),a)break;if(!a)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let c=await t.subtle.verify(this.signatureAlgorithm,o,a,this.tbs);if(e.signatureOnly)return c;{let p=(e.date||new Date).getTime();return c&&this.notBefore.getTime()<p&&p<this.notAfter.getTime()}}async getThumbprint(...e){let t,n="SHA-1";return e[0]&&(e[0].subtle?t=e[0]:(n=e[0]||n,t=e[1])),t??(t=ut.get()),await t.subtle.digest(n,this.rawData)}async isSelfSigned(e=ut.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},e)}toTextObject(){let e=this.toTextObjectEmpty(),t=F.parse(this.rawData,cr),n=t.tbsCertificate,o=new _e("",{Version:`${zr[n.version]} (${n.version})`,"Serial Number":n.serialNumber,"Signature Algorithm":Nn.serializeAlgorithm(n.signature),Issuer:this.issuer,Validity:new _e("",{"Not Before":n.validity.notBefore.getTime(),"Not After":n.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(n.issuerUniqueID&&(o["Issuer Unique ID"]=n.issuerUniqueID),n.subjectUniqueID&&(o["Subject Unique ID"]=n.subjectUniqueID),this.extensions.length){let i=new _e("");for(let s of this.extensions){let a=s.toTextObject();i[a[_e.NAME]]=a}o.Extensions=i}return e.Data=o,e.Signature=new _e("",{Algorithm:Nn.serializeAlgorithm(t.signatureAlgorithm),"":t.signatureValue}),e}};ku=new WeakMap,Ou=new WeakMap,Pu=new WeakMap,Nu=new WeakMap,Du=new WeakMap,Ru=new WeakMap,Lu=new WeakMap,Uu=new WeakMap,Mu=new WeakMap,ju=new WeakMap,la=new WeakMap,Ku=new WeakMap;ma.NAME="Certificate";function AB(r,e=ut.get()){let t=H.BufferSourceConverter.toUint8Array(H.Convert.FromHex(r||"")),n=t&&t.length&&t.some(i=>i>0)?new Uint8Array(t):void 0;n||(n=e.getRandomValues(new Uint8Array(16)));let o=0;for(;o<n.length-1&&n[o]===0;)o++;if(n=n.slice(o),n[0]>127){let i=new Uint8Array(n.length+1);i[0]=0,i.set(n,1),n=i}return n.buffer}var Wh=class{static async createSelfSigned(e,t=ut.get()){if(!e.keys.privateKey)throw new Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!e.keys.publicKey)throw new Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:e.serialNumber,subject:e.name,issuer:e.name,notBefore:e.notBefore,notAfter:e.notAfter,publicKey:e.keys.publicKey,signingKey:e.keys.privateKey,signingAlgorithm:e.signingAlgorithm,extensions:e.extensions},t)}static async create(e,t=ut.get()){var n;let o;e.publicKey instanceof Pn?o=e.publicKey.rawData:"publicKey"in e.publicKey?o=e.publicKey.publicKey.rawData:H.BufferSourceConverter.isBufferSource(e.publicKey)?o=e.publicKey:o=await t.subtle.exportKey("spki",e.publicKey);let i=AB(e.serialNumber),s=e.notBefore||new Date,a=e.notAfter||new Date(s.getTime()+31536e6),c=new cr({tbsCertificate:new gt({version:zr.v3,serialNumber:i,validity:new Bn({notBefore:s,notAfter:a}),extensions:new Yt(((n=e.extensions)===null||n===void 0?void 0:n.map(m=>F.parse(m.rawData,yt)))||[]),subjectPublicKeyInfo:F.parse(o,mt)})});if(e.subject){let m=e.subject instanceof Dr?e.subject:new Dr(e.subject);c.tbsCertificate.subject=F.parse(m.toArrayBuffer(),Oe)}if(e.issuer){let m=e.issuer instanceof Dr?e.issuer:new Dr(e.issuer);c.tbsCertificate.issuer=F.parse(m.toArrayBuffer(),Oe)}let f={hash:"SHA-256"},p="signingKey"in e?{...f,...e.signingAlgorithm,...e.signingKey.algorithm}:{...f,...e.signingAlgorithm},h=De.resolve(Wi);c.tbsCertificate.signature=c.signatureAlgorithm=h.toAsnAlgorithm(p);let y=F.serialize(c.tbsCertificate),b="signingKey"in e?await t.subtle.sign(p,e.signingKey,y):e.signature,g=De.resolveAll(Gu).reverse(),C=null;for(let m of g)if(C=m.toAsnSignature(p,b),C)break;if(!C)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return c.signatureValue=C,new ma(F.serialize(c))}},SB,EB,_B,CB,BB,lA;(function(r){r[r.unspecified=0]="unspecified",r[r.keyCompromise=1]="keyCompromise",r[r.cACompromise=2]="cACompromise",r[r.affiliationChanged=3]="affiliationChanged",r[r.superseded=4]="superseded",r[r.cessationOfOperation=5]="cessationOfOperation",r[r.certificateHold=6]="certificateHold",r[r.removeFromCRL=8]="removeFromCRL",r[r.privilegeWithdrawn=9]="privilegeWithdrawn",r[r.aACompromise=10]="aACompromise"})(lA||(lA={}));SB=new WeakMap,EB=new WeakMap,_B=new WeakMap,CB=new WeakMap,BB=new WeakMap;var IB,TB,kB,OB,PB,NB,DB;IB=new WeakMap,TB=new WeakMap,kB=new WeakMap,OB=new WeakMap,PB=new WeakMap,NB=new WeakMap,DB=new WeakMap;Rt.register(qf,ha);Rt.register(Zf,Lh);Rt.register(Yf,Uh);Rt.register(sy,Mh);Rt.register(Wf,Rh);Rt.register(oy,jh);Rt.register(Xf,Hh);Rt.register(Ff,Vh);Rt.register(ey,$h);da.register(tg,Fh);da.register(xu,Wu);De.registerSingleton(Gu,dg);De.registerSingleton(Gu,Rn);Rn.namedCurveSize.set("P-256",32);Rn.namedCurveSize.set("K-256",32);Rn.namedCurveSize.set("P-384",48);Rn.namedCurveSize.set("P-521",66);var Ln="/",mA=new TextEncoder().encode(Ln),qh=mA[0],zu=class r{_buf;constructor(e,t){if(typeof e=="string")this._buf=de(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(t==null&&(t=!0),t&&this.clean(),this._buf.byteLength===0||this._buf[0]!==qh)throw new Error("Invalid key")}toString(e="utf8"){return ue(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new r(e.join(Ln))}static random(){return new r(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new r(e):typeof e.uint8Array=="function"?new r(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=mA),this._buf[0]!==qh){let e=new Uint8Array(this._buf.byteLength+1);e.fill(qh,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===qh;)this._buf=this._buf.subarray(0,-1)}less(e){let t=this.list(),n=e.list();for(let o=0;o<t.length;o++){if(n.length<o+1)return!1;let i=t[o],s=n[o];if(i<s)return!0;if(i>s)return!1}return t.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Ln).slice(1)}type(){return RB(this.baseNamespace())}name(){return LB(this.baseNamespace())}instance(e){return new r(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Ln)||(e+=Ln),e+=this.type(),new r(e)}parent(){let e=this.list();return e.length===1?new r(Ln):new r(e.slice(0,-1).join(Ln))}child(e){return this.toString()===Ln?e:e.toString()===Ln?this:new r(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return r.withNamespaces([...this.namespaces(),...UB(e.map(t=>t.namespaces()))])}};function RB(r){let e=r.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function LB(r){let e=r.split(":");return e[e.length-1]}function UB(r){return[].concat(...r)}var Gh=class extends er{async listen(){throw new gf("WebRTCTransport.createListener")}getAddrs(){return[]}updateAnnounceAddrs(){}async close(){}};var ya=!!globalThis.process?.env?.DUMP_SESSION_KEYS,wg=16;function MB(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function zh(r){if(typeof r!="boolean")throw new Error(`boolean expected, not ${r}`)}function Xh(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function lt(r,e,t=""){let n=MB(r),o=r?.length,i=e!==void 0;if(!n||i&&o!==e){let s=t&&`"${t}" `,a=i?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof r}`;throw new Error(s+"expected Uint8Array"+a+", got "+c)}return r}function xg(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function yA(r,e){lt(r,void 0,"output");let t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}function Un(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Mn(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function jB(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}var KB=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function gA(r,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(r,e)}function bA(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}var vg=(r,e)=>{function t(n,...o){if(lt(n,void 0,"key"),!KB)throw new Error("Non little-endian hardware is not yet supported");if(r.nonceLength!==void 0){let p=o[0];lt(p,r.varSizeNonce?void 0:r.nonceLength,"nonce")}let i=r.tagLength;i&&o[1]!==void 0&&lt(o[1],void 0,"AAD");let s=e(n,...o),a=(p,h)=>{if(h!==void 0){if(p!==2)throw new Error("cipher output not supported");lt(h,void 0,"output")}},c=!1;return{encrypt(p,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,lt(p),a(s.encrypt.length,h),s.encrypt(p,h)},decrypt(p,h){if(lt(p),i&&p.length<i)throw new Error('"ciphertext" expected length bigger than tagLength='+i);return a(s.decrypt.length,h),s.decrypt(p,h)}}}return Object.assign(t,r),t};function Ag(r,e,t=!0){if(e===void 0)return new Uint8Array(r);if(e.length!==r)throw new Error('"output" expected Uint8Array of length '+r+", got: "+e.length);if(t&&!HB(e))throw new Error("invalid output, must be aligned");return e}function wA(r,e,t){zh(t);let n=new Uint8Array(16),o=jB(n);return o.setBigUint64(0,BigInt(e),t),o.setBigUint64(8,BigInt(r),t),n}function HB(r){return r.byteOffset%4===0}function ga(r){return Uint8Array.from(r)}var vA=r=>Uint8Array.from(r.split(""),e=>e.charCodeAt(0)),VB=vA("expand 16-byte k"),$B=vA("expand 32-byte k"),FB=Un(VB),WB=Un($B);function Q(r,e){return r<<e|r>>>32-e}function Sg(r){return r.byteOffset%4===0}var Zh=64,qB=16,AA=2**32-1,xA=Uint32Array.of();function GB(r,e,t,n,o,i,s,a){let c=o.length,f=new Uint8Array(Zh),p=Un(f),h=Sg(o)&&Sg(i),y=h?Un(o):xA,b=h?Un(i):xA;for(let g=0;g<c;s++){if(r(e,t,n,p,s,a),s>=AA)throw new Error("arx: counter overflow");let C=Math.min(Zh,c-g);if(h&&C===Zh){let m=g/4;if(g%4!==0)throw new Error("arx: invalid block position");for(let S=0,N;S<qB;S++)N=m+S,b[N]=y[N]^p[S];g+=Zh;continue}for(let m=0,S;m<C;m++)S=g+m,i[S]=o[S]^f[m];g+=C}}function Eg(r,e){let{allowShortKeys:t,extendNonceFn:n,counterLength:o,counterRight:i,rounds:s}=gA({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof r!="function")throw new Error("core must be a function");return Xh(o),Xh(s),zh(i),zh(t),(a,c,f,p,h=0)=>{lt(a,void 0,"key"),lt(c,void 0,"nonce"),lt(f,void 0,"data");let y=f.length;if(p===void 0&&(p=new Uint8Array(y)),lt(p,void 0,"output"),Xh(h),h<0||h>=AA)throw new Error("arx: counter overflow");if(p.length<y)throw new Error(`arx: output (${p.length}) is shorter than data (${y})`);let b=[],g=a.length,C,m;if(g===32)b.push(C=ga(a)),m=WB;else if(g===16&&t)C=new Uint8Array(32),C.set(a),C.set(a,16),m=FB,b.push(C);else throw lt(a,32,"arx key"),new Error("invalid key size");Sg(c)||b.push(c=ga(c));let S=Un(C);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");n(m,S,Un(c.subarray(0,16)),S),c=c.subarray(16)}let N=16-o;if(N!==c.length)throw new Error(`arx: nonce must be ${N} or 16 bytes`);if(N!==12){let K=new Uint8Array(12);K.set(c,i?0:12-c.length),c=K,b.push(c)}let I=Un(c);return GB(r,m,S,I,f,p,h,s),Mn(...b),p}}function xt(r,e){return r[e++]&255|(r[e++]&255)<<8}var _g=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;constructor(e){e=ga(lt(e,32,"key"));let t=xt(e,0),n=xt(e,2),o=xt(e,4),i=xt(e,6),s=xt(e,8),a=xt(e,10),c=xt(e,12),f=xt(e,14);this.r[0]=t&8191,this.r[1]=(t>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|i<<9)&8191,this.r[4]=(i>>>4|s<<12)&255,this.r[5]=s>>>1&8190,this.r[6]=(s>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let p=0;p<8;p++)this.pad[p]=xt(e,16+2*p)}process(e,t,n=!1){let o=n?0:2048,{h:i,r:s}=this,a=s[0],c=s[1],f=s[2],p=s[3],h=s[4],y=s[5],b=s[6],g=s[7],C=s[8],m=s[9],S=xt(e,t+0),N=xt(e,t+2),I=xt(e,t+4),K=xt(e,t+6),Z=xt(e,t+8),q=xt(e,t+10),re=xt(e,t+12),R=xt(e,t+14),k=i[0]+(S&8191),G=i[1]+((S>>>13|N<<3)&8191),Y=i[2]+((N>>>10|I<<6)&8191),V=i[3]+((I>>>7|K<<9)&8191),B=i[4]+((K>>>4|Z<<12)&8191),A=i[5]+(Z>>>1&8191),v=i[6]+((Z>>>14|q<<2)&8191),D=i[7]+((q>>>11|re<<5)&8191),U=i[8]+((re>>>8|R<<8)&8191),L=i[9]+(R>>>5|o),T=0,M=T+k*a+G*(5*m)+Y*(5*C)+V*(5*g)+B*(5*b);T=M>>>13,M&=8191,M+=A*(5*y)+v*(5*h)+D*(5*p)+U*(5*f)+L*(5*c),T+=M>>>13,M&=8191;let W=T+k*c+G*a+Y*(5*m)+V*(5*C)+B*(5*g);T=W>>>13,W&=8191,W+=A*(5*b)+v*(5*y)+D*(5*h)+U*(5*p)+L*(5*f),T+=W>>>13,W&=8191;let O=T+k*f+G*c+Y*a+V*(5*m)+B*(5*C);T=O>>>13,O&=8191,O+=A*(5*g)+v*(5*b)+D*(5*y)+U*(5*h)+L*(5*p),T+=O>>>13,O&=8191;let pe=T+k*p+G*f+Y*c+V*a+B*(5*m);T=pe>>>13,pe&=8191,pe+=A*(5*C)+v*(5*g)+D*(5*b)+U*(5*y)+L*(5*h),T+=pe>>>13,pe&=8191;let be=T+k*h+G*p+Y*f+V*c+B*a;T=be>>>13,be&=8191,be+=A*(5*m)+v*(5*C)+D*(5*g)+U*(5*b)+L*(5*y),T+=be>>>13,be&=8191;let ee=T+k*y+G*h+Y*p+V*f+B*c;T=ee>>>13,ee&=8191,ee+=A*a+v*(5*m)+D*(5*C)+U*(5*g)+L*(5*b),T+=ee>>>13,ee&=8191;let Ae=T+k*b+G*y+Y*h+V*p+B*f;T=Ae>>>13,Ae&=8191,Ae+=A*c+v*a+D*(5*m)+U*(5*C)+L*(5*g),T+=Ae>>>13,Ae&=8191;let Be=T+k*g+G*b+Y*y+V*h+B*p;T=Be>>>13,Be&=8191,Be+=A*f+v*c+D*a+U*(5*m)+L*(5*C),T+=Be>>>13,Be&=8191;let Ke=T+k*C+G*g+Y*b+V*y+B*h;T=Ke>>>13,Ke&=8191,Ke+=A*p+v*f+D*c+U*a+L*(5*m),T+=Ke>>>13,Ke&=8191;let Ee=T+k*m+G*C+Y*g+V*b+B*y;T=Ee>>>13,Ee&=8191,Ee+=A*h+v*p+D*f+U*c+L*a,T+=Ee>>>13,Ee&=8191,T=(T<<2)+T|0,T=T+M|0,M=T&8191,T=T>>>13,W+=T,i[0]=M,i[1]=W,i[2]=O,i[3]=pe,i[4]=be,i[5]=ee,i[6]=Ae,i[7]=Be,i[8]=Ke,i[9]=Ee}finalize(){let{h:e,pad:t}=this,n=new Uint16Array(10),o=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=o,o=e[a]>>>13,e[a]&=8191;e[0]+=o*5,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,n[0]=e[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=e[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let i=(o^1)-1;for(let a=0;a<10;a++)n[a]&=i;i=~i;for(let a=0;a<10;a++)e[a]=e[a]&i|n[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let s=e[0]+t[0];e[0]=s&65535;for(let a=1;a<8;a++)s=(e[a]+t[a]|0)+(s>>>16)|0,e[a]=s&65535;Mn(n)}update(e){xg(this),lt(e),e=ga(e);let{buffer:t,blockLen:n}=this,o=e.length;for(let i=0;i<o;){let s=Math.min(n-this.pos,o-i);if(s===n){for(;n<=o-i;i+=n)this.process(e,i);continue}t.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===n&&(this.process(t,0,!1),this.pos=0)}return this}destroy(){Mn(this.h,this.r,this.buffer,this.pad)}digestInto(e){xg(this),yA(e,this),this.finished=!0;let{buffer:t,h:n}=this,{pos:o}=this;if(o){for(t[o++]=1;o<16;o++)t[o]=0;this.process(t,0,!0)}this.finalize();let i=0;for(let s=0;s<8;s++)e[i++]=n[s]>>>0,e[i++]=n[s]>>>8;return e}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}};function zB(r){let e=(n,o)=>r(o).update(n).digest(),t=r(new Uint8Array(32));return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=n=>r(n),e}var SA=zB(r=>new _g(r));function CA(r,e,t,n,o,i=20){let s=r[0],a=r[1],c=r[2],f=r[3],p=e[0],h=e[1],y=e[2],b=e[3],g=e[4],C=e[5],m=e[6],S=e[7],N=o,I=t[0],K=t[1],Z=t[2],q=s,re=a,R=c,k=f,G=p,Y=h,V=y,B=b,A=g,v=C,D=m,U=S,L=N,T=I,M=K,W=Z;for(let pe=0;pe<i;pe+=2)q=q+G|0,L=Q(L^q,16),A=A+L|0,G=Q(G^A,12),q=q+G|0,L=Q(L^q,8),A=A+L|0,G=Q(G^A,7),re=re+Y|0,T=Q(T^re,16),v=v+T|0,Y=Q(Y^v,12),re=re+Y|0,T=Q(T^re,8),v=v+T|0,Y=Q(Y^v,7),R=R+V|0,M=Q(M^R,16),D=D+M|0,V=Q(V^D,12),R=R+V|0,M=Q(M^R,8),D=D+M|0,V=Q(V^D,7),k=k+B|0,W=Q(W^k,16),U=U+W|0,B=Q(B^U,12),k=k+B|0,W=Q(W^k,8),U=U+W|0,B=Q(B^U,7),q=q+Y|0,W=Q(W^q,16),D=D+W|0,Y=Q(Y^D,12),q=q+Y|0,W=Q(W^q,8),D=D+W|0,Y=Q(Y^D,7),re=re+V|0,L=Q(L^re,16),U=U+L|0,V=Q(V^U,12),re=re+V|0,L=Q(L^re,8),U=U+L|0,V=Q(V^U,7),R=R+B|0,T=Q(T^R,16),A=A+T|0,B=Q(B^A,12),R=R+B|0,T=Q(T^R,8),A=A+T|0,B=Q(B^A,7),k=k+G|0,M=Q(M^k,16),v=v+M|0,G=Q(G^v,12),k=k+G|0,M=Q(M^k,8),v=v+M|0,G=Q(G^v,7);let O=0;n[O++]=s+q|0,n[O++]=a+re|0,n[O++]=c+R|0,n[O++]=f+k|0,n[O++]=p+G|0,n[O++]=h+Y|0,n[O++]=y+V|0,n[O++]=b+B|0,n[O++]=g+A|0,n[O++]=C+v|0,n[O++]=m+D|0,n[O++]=S+U|0,n[O++]=N+L|0,n[O++]=I+T|0,n[O++]=K+M|0,n[O++]=Z+W|0}function XB(r,e,t,n){let o=r[0],i=r[1],s=r[2],a=r[3],c=e[0],f=e[1],p=e[2],h=e[3],y=e[4],b=e[5],g=e[6],C=e[7],m=t[0],S=t[1],N=t[2],I=t[3];for(let Z=0;Z<20;Z+=2)o=o+c|0,m=Q(m^o,16),y=y+m|0,c=Q(c^y,12),o=o+c|0,m=Q(m^o,8),y=y+m|0,c=Q(c^y,7),i=i+f|0,S=Q(S^i,16),b=b+S|0,f=Q(f^b,12),i=i+f|0,S=Q(S^i,8),b=b+S|0,f=Q(f^b,7),s=s+p|0,N=Q(N^s,16),g=g+N|0,p=Q(p^g,12),s=s+p|0,N=Q(N^s,8),g=g+N|0,p=Q(p^g,7),a=a+h|0,I=Q(I^a,16),C=C+I|0,h=Q(h^C,12),a=a+h|0,I=Q(I^a,8),C=C+I|0,h=Q(h^C,7),o=o+f|0,I=Q(I^o,16),g=g+I|0,f=Q(f^g,12),o=o+f|0,I=Q(I^o,8),g=g+I|0,f=Q(f^g,7),i=i+p|0,m=Q(m^i,16),C=C+m|0,p=Q(p^C,12),i=i+p|0,m=Q(m^i,8),C=C+m|0,p=Q(p^C,7),s=s+h|0,S=Q(S^s,16),y=y+S|0,h=Q(h^y,12),s=s+h|0,S=Q(S^s,8),y=y+S|0,h=Q(h^y,7),a=a+c|0,N=Q(N^a,16),b=b+N|0,c=Q(c^b,12),a=a+c|0,N=Q(N^a,8),b=b+N|0,c=Q(c^b,7);let K=0;n[K++]=o,n[K++]=i,n[K++]=s,n[K++]=a,n[K++]=m,n[K++]=S,n[K++]=N,n[K++]=I}var ZB=Eg(CA,{counterRight:!1,counterLength:4,allowShortKeys:!1}),YB=Eg(CA,{counterRight:!1,counterLength:8,extendNonceFn:XB,allowShortKeys:!1});var JB=new Uint8Array(16),EA=(r,e)=>{r.update(e);let t=e.length%16;t&&r.update(JB.subarray(t))},QB=new Uint8Array(32);function _A(r,e,t,n,o){o!==void 0&&lt(o,void 0,"AAD");let i=r(e,t,QB),s=wA(n.length,o?o.length:0,!0),a=SA.create(i);o&&EA(a,o),EA(a,n),a.update(s);let c=a.digest();return Mn(i,s),c}var BA=r=>(e,t,n)=>({encrypt(i,s){let a=i.length;s=Ag(a+16,s,!1),s.set(i);let c=s.subarray(0,-16);r(e,t,c,c,1);let f=_A(r,e,t,c,n);return s.set(f,a),Mn(f),s},decrypt(i,s){s=Ag(i.length-16,s,!1);let a=i.subarray(0,-16),c=i.subarray(-16),f=_A(r,e,t,a,n);if(!bA(c,f))throw new Error("invalid tag");return s.set(i.subarray(0,-16)),r(e,t,s,s,1),Mn(f),s}}),Cg=vg({blockSize:64,nonceLength:12,tagLength:16},BA(ZB)),Uz=vg({blockSize:64,nonceLength:24,tagLength:16},BA(YB));function TA(r,e,t){return Ro(r),t===void 0&&(t=new Uint8Array(r.outputLen)),ms(r,t,e)}var Bg=Uint8Array.of(0),IA=Uint8Array.of();function kA(r,e,t,n=32){Ro(r),rr(n,"length");let o=r.outputLen;if(n>255*o)throw new Error("Length must be <= 255*HashLen");let i=Math.ceil(n/o);t===void 0?t=IA:fe(t,void 0,"info");let s=new Uint8Array(i*o),a=ms.create(r,e),c=a._cloneInto(),f=new Uint8Array(a.outputLen);for(let p=0;p<i;p++)Bg[0]=p+1,c.update(p===0?IA:f).update(t).update(Bg).digestInto(f),s.set(f,o*p),a._cloneInto(c);return a.destroy(),c.destroy(),br(f,Bg),s.slice(0,n)}var Ig={hashSHA256(r){return Ur(r.subarray())},getHKDF(r,e){let t=TA(Ur,e,r),o=kA(Ur,t,void 0,96),i=o.subarray(0,32),s=o.subarray(32,64),a=o.subarray(64,96);return[i,s,a]},generateX25519KeyPair(){let r=$a.utils.randomSecretKey();return{publicKey:$a.getPublicKey(r),privateKey:r}},generateX25519KeyPairFromSeed(r){return{publicKey:$a.getPublicKey(r),privateKey:r}},generateX25519SharedKey(r,e){return $a.getSharedSecret(r.subarray(),e.subarray())},chaCha20Poly1305Encrypt(r,e,t,n){return Cg(n,e,t).encrypt(r.subarray())},chaCha20Poly1305Decrypt(r,e,t,n,o){return Cg(n,e,t).decrypt(r.subarray(),o)}};var OA=Ig;function PA(r){return{generateKeypair:r.generateX25519KeyPair,dh:(e,t)=>r.generateX25519SharedKey(e.privateKey,t).subarray(0,32),encrypt:r.chaCha20Poly1305Encrypt,decrypt:r.chaCha20Poly1305Decrypt,hash:r.hashSHA256,hkdf:r.getHKDF}}var ba=r=>{let e=ot(2);return e[0]=r>>8,e[1]=r,e};ba.bytes=2;var wa=r=>{if(r.length<2)throw RangeError("Could not decode int16BE");if(r instanceof Uint8Array){let e=0;return e+=r[0]<<8,e+=r[1],e}return r.getUint16(0)};wa.bytes=2;function NA(r){return{xxHandshakeSuccesses:r.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:r.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:r.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:r.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:r.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}function Tg(r,e){!e.enabled||!ya||(r?(e(`LOCAL_STATIC_PUBLIC_KEY ${ue(r.publicKey,"hex")}`),e(`LOCAL_STATIC_PRIVATE_KEY ${ue(r.privateKey,"hex")}`)):e("Missing local static keys."))}function kg(r,e){!e.enabled||!ya||(r?(e(`LOCAL_PUBLIC_EPHEMERAL_KEY ${ue(r.publicKey,"hex")}`),e(`LOCAL_PRIVATE_EPHEMERAL_KEY ${ue(r.privateKey,"hex")}`)):e("Missing local ephemeral keys."))}function DA(r,e){!e.enabled||!ya||e(r?`REMOTE_STATIC_PUBLIC_KEY ${ue(r.subarray(),"hex")}`:"Missing remote static public key.")}function Og(r,e){!e.enabled||!ya||e(r?`REMOTE_EPHEMERAL_PUBLIC_KEY ${ue(r.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Pg(r,e,t){!t.enabled||!ya||(t(`CIPHER_STATE_1 ${r.n.getUint64()} ${r.k&&ue(r.k,"hex")}`),t(`CIPHER_STATE_2 ${e.n.getUint64()} ${e.k&&ue(e.k,"hex")}`))}var xa=class r extends Error{code;constructor(e="Invalid crypto exchange"){super(e),this.code=r.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var eI=0,tI=4294967295,rI="Cipher state has reached maximum n, a new handshake must be performed",Yh=class{n;bytes;view;constructor(e=eI){this.n=e,this.bytes=nt(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,e,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>tI)throw new Error(rI)}};var qi=nt(0),va=class{k;n;crypto;constructor(e,t=void 0,n=0){this.crypto=e,this.k=t,this.n=new Yh(n)}hasKey(){return!!this.k}encryptWithAd(e,t){if(!this.hasKey())return t;this.n.assertValue();let n=this.crypto.encrypt(t,this.n.getBytes(),e,this.k);return this.n.increment(),n}decryptWithAd(e,t,n){if(!this.hasKey())return t;this.n.assertValue();let o=this.crypto.decrypt(t,this.n.getBytes(),e,this.k,n);return this.n.increment(),o}},Ng=class{cs;ck;h;crypto;constructor(e,t){this.crypto=e;let n=de(t,"utf-8");this.h=nI(e,n),this.ck=this.h,this.cs=new va(e)}mixKey(e){let[t,n]=this.crypto.hkdf(this.ck,e);this.ck=t,this.cs=new va(this.crypto,n)}mixHash(e){this.h=this.crypto.hash(new me(this.h,e))}encryptAndHash(e){let t=this.cs.encryptWithAd(this.h,e);return this.mixHash(t),t}decryptAndHash(e){let t=this.cs.decryptWithAd(this.h,e);return this.mixHash(e),t}split(){let[e,t]=this.crypto.hkdf(this.ck,qi);return[new va(this.crypto,e),new va(this.crypto,t)]}},Dg=class{ss;s;e;rs;re;initiator;crypto;constructor(e){let{crypto:t,protocolName:n,prologue:o,initiator:i,s,e:a,rs:c,re:f}=e;this.crypto=t,this.ss=new Ng(t,n),this.ss.mixHash(o),this.initiator=i,this.s=s,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let e=this.crypto.generateKeypair();return this.ss.mixHash(e.publicKey),this.e=e,e.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(e,t=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(e.byteLength<t+32)throw new Error("message is not long enough");this.re=e.sublist(t,t+32),this.ss.mixHash(this.re)}readS(e,t=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(e.byteLength<t+n)throw new Error("message is not long enough");let o=e.sublist(t,t+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},Xu=class extends Dg{writeMessageA(e){return new me(this.writeE(),this.ss.encryptAndHash(e))}writeMessageB(e){let t=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new me(t,n,this.ss.encryptAndHash(e))}writeMessageC(e){let t=this.writeS();return this.writeSE(),new me(t,this.ss.encryptAndHash(e))}readMessageA(e){try{return this.readE(e),this.ss.decryptAndHash(e.sublist(32))}catch(t){throw new xa(`handshake stage 0 validation fail: ${t.message}`)}}readMessageB(e){try{this.readE(e),this.readEE();let t=this.readS(e,32);return this.readES(),this.ss.decryptAndHash(e.sublist(32+t))}catch(t){throw new xa(`handshake stage 1 validation fail: ${t.message}`)}}readMessageC(e){try{let t=this.readS(e);return this.readSE(),this.ss.decryptAndHash(e.sublist(t))}catch(t){throw new xa(`handshake stage 2 validation fail: ${t.message}`)}}};function nI(r,e){if(e.length<=32){let t=nt(32);return t.set(e),t}else return r.hash(e)}var Jh;(function(r){let e;r.codec=()=>(e==null&&(e=Sr((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.webtransportCerthashes!=null)for(let i of t.webtransportCerthashes)n.uint32(10),n.bytes(i);if(t.streamMuxers!=null)for(let i of t.streamMuxers)n.uint32(18),n.string(i);o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let i={webtransportCerthashes:[],streamMuxers:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let a=t.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&i.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new Ya('Decode error - map field "webtransportCerthashes" had too many elements');i.webtransportCerthashes.push(t.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&i.streamMuxers.length===o.limits.streamMuxers)throw new Ya('Decode error - map field "streamMuxers" had too many elements');i.streamMuxers.push(t.string());break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ar(t,r.codec()),r.decode=(t,n)=>vr(t,r.codec(),n)})(Jh||(Jh={}));var Zu;(function(r){let e;r.codec=()=>(e==null&&(e=Sr((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.identityKey!=null&&t.identityKey.byteLength>0&&(n.uint32(10),n.bytes(t.identityKey)),t.identitySig!=null&&t.identitySig.byteLength>0&&(n.uint32(18),n.bytes(t.identitySig)),t.extensions!=null&&(n.uint32(34),Jh.codec().encode(t.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let i={identityKey:nt(0),identitySig:nt(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let a=t.uint32();switch(a>>>3){case 1:{i.identityKey=t.bytes();break}case 2:{i.identitySig=t.bytes();break}case 4:{i.extensions=Jh.codec().decode(t,t.uint32(),{limits:o.limits?.extensions});break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Ar(t,r.codec()),r.decode=(t,n)=>vr(t,r.codec(),n)})(Zu||(Zu={}));async function Lg(r,e,t){let n=await r.sign(LA(e));return Zu.encode({identityKey:$n(r.publicKey),identitySig:n,extensions:t})}async function Ug(r,e,t){try{let n=Zu.decode(r),o=tc(n.identityKey);if(t?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${t}`);if(!e)throw new Error("Remote static does not exist");let i=LA(e);if(!await o.verify(i,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new el(n.message)}}function LA(r){let e=de("noise-libp2p-static-key:");return r instanceof Uint8Array?It([e,r],e.length+r.length):(r.prepend(e),r)}var Rg=class extends Qn{stream;handshake;metrics;decoder;constructor(e,t,n){super({log:e.log,inactivityTimeout:e.inactivityTimeout,maxReadBufferLength:e.maxReadBufferLength,direction:e.direction}),this.stream=e,this.handshake=t,this.metrics=n,this.decoder=new af({lengthDecoder:wa,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let i=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",i);let s=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",s);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(e){let t=new me;for(let n=0;n<e.byteLength;n+=65519){let o=n+65519;o>e.byteLength&&(o=e.byteLength);let i;e instanceof Uint8Array?i=this.handshake.encrypt(e.subarray(n,o)):i=this.handshake.encrypt(e.sublist(n,o)),this.metrics?.encryptedPackets.increment(),t.append(ba(i.byteLength)),t.append(i)}return t}decrypt(e){let t=new me;for(let n=0;n<e.byteLength;n+=65535){let o=n+65535;if(o>e.byteLength&&(o=e.byteLength),o-wg<n)throw new Error("Invalid chunk");let i;e instanceof Uint8Array?i=e.subarray(n,o):i=e.sublist(n,o);let s=e.subarray(n,o-wg);try{let a=this.handshake.decrypt(i,s);this.metrics?.decryptedPackets.increment(),t.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return t}close(e){return this.stream.close(e)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(e){this.stream.abort(e)}sendData(e){return{sentBytes:e.byteLength,canSendMore:this.stream.send(this.encrypt(e))}}};function Mg(r,e,t){return new Rg(r,e,t)}async function UA(r,e){let{log:t,connection:n,crypto:o,privateKey:i,prologue:s,s:a,remoteIdentityKey:c,extensions:f}=r,p=await Lg(i,a.publicKey,f),h=new Xu({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:s,s:a});Tg(h.s,t),t.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(qi),e),t.trace("Stage 0 - Initiator finished sending first message."),kg(h.e,t),t.trace("Stage 1 - Initiator waiting to receive first message from responder...");let y=h.readMessageB(await n.read(e));t.trace("Stage 1 - Initiator received the message."),Og(h.re,t),DA(h.rs,t),t.trace("Initiator going to check remote's signature...");let b=await Ug(y,h.rs,c);t.trace("All good with the signature!"),t.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(p),e),t.trace("Stage 2 - Initiator sent message with signed payload.");let[g,C]=h.ss.split();return Pg(g,C,t),{payload:b,encrypt:m=>g.encryptWithAd(qi,m),decrypt:(m,S)=>C.decryptWithAd(qi,m,S)}}async function MA(r,e){let{log:t,connection:n,crypto:o,privateKey:i,prologue:s,s:a,remoteIdentityKey:c,extensions:f}=r,p=await Lg(i,a.publicKey,f),h=new Xu({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:s,s:a});Tg(h.s,t),t.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(e)),t.trace("Stage 0 - Responder received first message."),Og(h.re,t),t.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(p),e),t.trace("Stage 1 - Responder sent the second handshake message with signed payload."),kg(h.e,t),t.trace("Stage 2 - Responder waiting for third handshake message...");let y=h.readMessageC(await n.read(e));t.trace("Stage 2 - Responder received the message, finished handshake.");let b=await Ug(y,h.rs,c),[g,C]=h.ss.split();return Pg(g,C,t),{payload:b,encrypt:m=>C.encryptWithAd(qi,m),decrypt:(m,S)=>g.decryptWithAd(qi,m,S)}}var Qh=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(e,t={}){let{staticNoiseKey:n,extensions:o,crypto:i,prologueBytes:s}=t,{metrics:a}=e;this.components=e,this.log=e.logger.forComponent("libp2p:noise");let c=i??OA;this.crypto=PA(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?NA(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=s??nt(0)}[Symbol.toStringTag]="@libp2p/noise";[Yi]=["@libp2p/connection-encryption","@libp2p/noise"];async secureOutbound(e,t){let n=e.log?.newScope("noise")??this.log,o=of(e,{lengthEncoder:ba,lengthDecoder:wa,maxDataLength:65535}),i=await this.performHandshakeInitiator(o,this.components.privateKey,n,t?.remotePeer?.publicKey,t),s=tc(i.payload.identityKey);return{connection:Mg(o.unwrap(),i,this.metrics),remoteExtensions:i.payload.extensions,remotePeer:Dd(s),streamMuxer:t?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(i.payload.extensions?.streamMuxers)}}getStreamMuxer(e){if(e==null||e.length===0)return;let t=this.components.upgrader.getStreamMuxers();if(t!=null)for(let n of e){let o=t.get(n);if(o!=null)return o}if(e.length)throw new tl("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(e,t){let n=e.log?.newScope("noise")??this.log,o=of(e,{lengthEncoder:ba,lengthDecoder:wa,maxDataLength:65535}),i=await this.performHandshakeResponder(o,this.components.privateKey,n,t?.remotePeer?.publicKey,t),s=tc(i.payload.identityKey);return{connection:Mg(o.unwrap(),i,this.metrics),remoteExtensions:i.payload.extensions,remotePeer:Dd(s),streamMuxer:t?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(i.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(e,t,n,o,i){let s,a=i?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{s=await UA({connection:e,privateKey:t,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},i),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return s}async performHandshakeResponder(e,t,n,o,i){let s,a=i?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{s=await MA({connection:e,privateKey:t,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},i),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return s}};function jA(r={}){return e=>new Qh(e,r)}var jg=Object.values(Po).map(r=>r.decoder).reduce((r,e)=>r.or(e)),oI=/^a=fingerprint:(?:\w+-[0-9]+)\s(?<fingerprint>(:?[0-9a-fA-F]{2})+)$/m;function KA(r){return r?.match(oI)?.groups?.fingerprint}function Kg(r){let t=r.getComponents().find(n=>n.code===466)?.value;if(t===void 0||t==="")throw new xe(`Couldn't find a certhash component of multiaddr: ${r.toString()}`);return t}function iI(r){return mr.decode(jg.decode(r))}function sI(r){let e=iI(Kg(r)),t=aI(e.code),n=e.digest.reduce((i,s)=>i+s.toString(16).padStart(2,"0"),""),o=n.match(/.{1,2}/g);if(o==null)throw new yf(n,r.toString());return`${t} ${o.join(":").toUpperCase()}`}function HA(r){let e=r.split(":").map(o=>parseInt(o,16)),t=Uint8Array.from(e),n=Bt(tr.code,t);return As(`/certhash/${Oo.encode(n.bytes)}`)}function aI(r){switch(r){case 17:return"sha-1";case 18:return"sha-256";case 19:return"sha-512";default:throw new bf(r)}}function VA(r,e){let{host:t,port:n,type:o}=hm(r);if(o!=="ip4"&&o!=="ip6")throw new xe(`Multiaddr ${r} was not an IPv4 or IPv6 address`);let i=sI(r);return{type:"answer",sdp:`v=0
13
13
  o=- 0 0 IN IP${o==="ip4"?4:6} ${t}
14
14
  s=-
15
15
  t=0 0