@libp2p/keychain 5.0.14 → 5.1.0

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
@@ -4,7 +4,7 @@
4
4
  `));let e=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} :
5
5
  ${t.join(`
6
6
  `)}`:`${e} :`}};ha=ve;A.Constructed=ha;ve.NAME="CONSTRUCTED";var Cn=class extends dt{fromBER(t,e,n){return e}toBER(t){return Ut}};Cn.override="EndOfContentValueBlock";var da,Tn=class extends ct{constructor(t={}){super(t,Cn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};da=Tn;A.EndOfContent=da;Tn.NAME=Lr;var pa,Jt=class extends ct{constructor(t={}){super(t,dt),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};pa=Jt;A.Null=pa;Jt.NAME="NULL";var Un=class extends te(dt){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=M.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=M.BufferSourceConverter.toUint8Array(t);return Qt(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Ao.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Un.NAME="BooleanValueBlock";var ga,Rn=class extends ct{constructor(t={}){super(t,Un),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};ga=Rn;A.Boolean=ga;Rn.NAME="BOOLEAN";var Ln=class extends te(_t){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=_t.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let o=0;o<this.value.length;o++){let i=this.value[o].constructor.NAME;if(i===Lr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(i!==ca)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(t,e,n),this.blockLength=n;return s}toBER(t,e){return this.isConstructed?_t.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Ln.NAME="OctetStringValueBlock";var ma,Yt=class r extends ct{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Ln),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let o=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(o.byteLength){let i=as(o,0,o.byteLength);i.offset!==-1&&i.offset===n&&(this.valueBlock.value=[i.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?ve.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${M.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return M.BufferSourceConverter.concat(t)}};ma=Yt;A.OctetString=ma;Yt.NAME=ca;var Hn=class extends te(_t){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let s=-1;if(this.isConstructed){if(s=_t.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===Lr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==la)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let u=a.valueBlock;if(this.unusedBits>0&&u.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=u.unusedBits}return s}let o=M.BufferSourceConverter.toUint8Array(t);if(!Qt(this,o,e,n))return-1;let i=o.subarray(e,e+n);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=i.subarray(1);try{if(a.byteLength){let c=as(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,e+n}toBER(t,e){if(this.isConstructed)return _t.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Ut;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};Hn.NAME="BitStringValueBlock";var ya,rr=class extends ct{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Hn),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return ve.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};ya=rr;A.BitString=ya;rr.NAME=la;var wa;function Vf(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u=0,l=c<i?i:c,f=0;for(let h=l;h>=0;h--,f++){switch(!0){case f<a.length:u=o[i-f]+a[c-f]+e[0];break;default:u=o[i-f]+e[0]}switch(e[0]=u/10,!0){case f>=o.length:o=Bn(new Uint8Array([u%10]),o);break;default:o[i-f]=u%10}}return e[0]>0&&(o=Bn(e,o)),o}function aa(r){if(r>=Ur.length)for(let t=Ur.length;t<=r;t++){let e=new Uint8Array([0]),n=Ur[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let o=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=o[0]/10,n[s]=o[0]%10}e[0]>0&&(n=Bn(e,n)),Ur.push(n)}return Ur[r]}function Of(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,u,l=0;for(let f=c;f>=0;f--,l++)switch(u=o[i-l]-a[c-l]-e,!0){case u<0:e=1,o[i-l]=u+10;break;default:e=0,o[i-l]=u}if(e>0)for(let f=i-c+1;f>=0;f--,l++)if(u=o[i-l]-e,u<0)e=1,o[i-l]=u+10;else{e=0,o[i-l]=u;break}return o.slice()}var Hr=class extends te(dt){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Ao.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(sa(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let o=this.fromBER(t,e,n);if(o===-1)return o;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):s!==0&&i.length<s&&(s-i.length>1&&(s=i.length+1),this.valueHexView=i.subarray(s-i.length)),o}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,o=this.valueHexView,i="",a=!1;for(let c=o.byteLength-1;c>=0;c--){s=o[c];for(let u=0;u<8;u++){if((s&1)===1)switch(n){case t:e=Of(aa(n),e),i="-";break;default:e=Vf(e,aa(n))}n++,s>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(i+=ia.charAt(e[c]));return a===!1&&(i+=ia.charAt(0)),i}};wa=Hr;Hr.NAME="IntegerValueBlock";Object.defineProperty(wa.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var ba,X=class r extends ct{constructor(t={}){super(t,Hr),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return En(),BigInt(this.valueBlock.toString())}static fromBigInt(t){En();let e=BigInt(t),n=new Rr,s=e.toString(16).replace(/^-/,""),o=new Uint8Array(M.Convert.FromHex(s));if(e<0){let a=new Uint8Array(o.length+(o[0]&128?1:0));a[0]|=128;let u=BigInt(`0x${M.Convert.ToHex(a)}`)+e,l=M.BufferSourceConverter.toUint8Array(M.Convert.FromHex(u.toString(16)));l[0]|=128,n.write(l)}else o[0]&128&&n.write(new Uint8Array([0])),n.write(o);return new r({valueHex:n.final()})}convertToDER(){let t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};ba=X;A.Integer=ba;X.NAME="INTEGER";var xa,Vn=class extends X{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};xa=Vn;A.Enumerated=xa;Vn.NAME="ENUMERATED";var Vr=class extends te(dt){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!Qt(this,s,e,n))return-1;let o=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=o[a]&127,this.blockLength++,!!(o[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,o[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){En();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(e.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,o=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)o[i]=s[i]|128;return o[this.blockLength-1]=s[this.blockLength-1],o.buffer}let e=xe(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ut;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),o=e.byteLength-1;for(let i=0;i<o;i++)n[i]=s[i]|128;n[o]=s[o]}return n}toString(){let t="";if(this.isHexOnly)t=M.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Vr.NAME="sidBlock";var On=class extends dt{constructor({value:t=nr,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let o=new Vr;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.value.length===0&&(o.isFirstSid=!0),this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t){let e=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(t);if(s.byteLength===0)return this.error=this.value[n].error,Ut;e.push(s)}return ko(e)}fromString(t){this.value=[];let e=0,n=0,s="",o=!1;do if(n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1,o){let i=this.value[0],a=0;switch(i.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;i.valueDec=c+a,o=!1}else{let i=new Vr;if(s>Number.MAX_SAFE_INTEGER){En();let a=BigInt(s);i.valueBigInt=a}else if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,o=!0),this.value.push(i)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e?(s=`{${s}}`,this.value[n].isFirstSid?t=`2.{${s} - 80}`:t+=s):t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};On.NAME="ObjectIdentifierValueBlock";var va,kt=class extends ct{constructor(t={}){super(t,On),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};va=kt;A.ObjectIdentifier=va;kt.NAME="OBJECT IDENTIFIER";var Or=class extends te(Wt){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let s=M.BufferSourceConverter.toUint8Array(t);if(!Qt(this,s,e,n))return-1;let o=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=o[a]&127,this.blockLength++,!!(o[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,o[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=He(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,o=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)o[i]=s[i]|128;return o[this.blockLength-1]=s[this.blockLength-1],o.buffer}let e=xe(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Ut;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),o=e.byteLength-1;for(let i=0;i<o;i++)n[i]=s[i]|128;n[o]=s[o]}return n.buffer}toString(){let t="";return this.isHexOnly?t=M.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};Or.NAME="relativeSidBlock";var _n=class extends dt{constructor({value:t=nr,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let o=new Or;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t,e){let n=[];for(let s=0;s<this.value.length;s++){let o=this.value[s].toBER(t);if(o.byteLength===0)return this.error=this.value[s].error,Ut;n.push(o)}return ko(n)}fromString(t){this.value=[];let e=0,n=0,s="";do{n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1;let o=new Or;if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return!0;this.value.push(o)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(s=`{${s}}`),t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};_n.NAME="RelativeObjectIdentifierValueBlock";var Ba,Dn=class extends ct{constructor(t={}){super(t,_n),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};Ba=Dn;A.RelativeObjectIdentifier=Ba;Dn.NAME="RelativeObjectIdentifier";var Ea,et=class extends ve{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};Ea=et;A.Sequence=Ea;et.NAME="SEQUENCE";var Aa,Kn=class extends ve{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};Aa=Kn;A.Set=Aa;Kn.NAME="SET";var Mn=class extends te(dt){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=nr}toJSON(){return{...super.toJSON(),value:this.value}}};Mn.NAME="StringValueBlock";var Pn=class extends Mn{};Pn.NAME="SimpleStringValueBlock";var mt=class extends Sn{constructor({...t}={}){super(t,Pn)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);this.valueBlock.value=t}};mt.NAME="SIMPLE STRING";var Fn=class extends mt{fromBuffer(t){this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=M.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=M.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf8String(t)),this.valueBlock.value=t}};Fn.NAME="Utf8StringValueBlock";var ka,Xt=class extends Fn{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};ka=Xt;A.Utf8String=ka;Xt.NAME="UTF8String";var qn=class extends mt{fromBuffer(t){this.valueBlock.value=M.Convert.ToUtf16String(t),this.valueBlock.valueHexView=M.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array(M.Convert.FromUtf16String(t))}};qn.NAME="BmpStringValueBlock";var Sa,jn=class extends qn{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};Sa=jn;A.BmpString=Sa;jn.NAME="BMPString";var $n=class extends mt{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let s=0;s<e;s++){let o=xe(t.charCodeAt(s),8),i=new Uint8Array(o);if(i.length>4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[s*4+c+a]=i[c]}this.valueBlock.value=t}};$n.NAME="UniversalStringValueBlock";var Ia,zn=class extends $n{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};Ia=zn;A.UniversalString=Ia;zn.NAME="UniversalString";var Na,Gn=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};Na=Gn;A.NumericString=Na;Gn.NAME="NumericString";var Ca,Zn=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};Ca=Zn;A.PrintableString=Ca;Zn.NAME="PrintableString";var Ta,Wn=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};Ta=Wn;A.TeletexString=Ta;Wn.NAME="TeletexString";var Ua,Jn=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Ua=Jn;A.VideotexString=Ua;Jn.NAME="VideotexString";var Ra,Yn=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};Ra=Yn;A.IA5String=Ra;Yn.NAME="IA5String";var La,Xn=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};La=Xn;A.GraphicString=La;Xn.NAME="GraphicString";var Ha,_r=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};Ha=_r;A.VisibleString=Ha;_r.NAME="VisibleString";var Va,Qn=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Va=Qn;A.GeneralString=Va;Qn.NAME="GeneralString";var Oa,ts=class extends mt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};Oa=ts;A.CharacterString=Oa;ts.NAME="CharacterString";var _a,Dr=class extends _r{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s<t.length;s++)this.valueBlock.valueHexView[s]=t.charCodeAt(s)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,M.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=vt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=vt(this.month,2),e[2]=vt(this.day,2),e[3]=vt(this.hour,2),e[4]=vt(this.minute,2),e[5]=vt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};_a=Dr;A.UTCTime=_a;Dr.NAME="UTCTime";var Da,es=class extends Dr{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",o=0,i,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let f=new Number(t[t.length-1]);if(isNaN(f.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let f=1,h=n.indexOf("+"),y="";if(h===-1&&(h=n.indexOf("-"),f=-1),h!==-1){if(y=n.substring(h+1),n=n.substring(0,h),y.length!==2&&y.length!==4)throw new Error("Wrong input string for conversion");let w=parseInt(y.substring(0,2),10);if(isNaN(w.valueOf()))throw new Error("Wrong input string for conversion");if(a=f*w,y.length===4){if(w=parseInt(y.substring(2,4),10),isNaN(w.valueOf()))throw new Error("Wrong input string for conversion");c=f*w}}}let u=n.indexOf(".");if(u===-1&&(u=n.indexOf(",")),u!==-1){let f=new Number(`0${n.substring(u)}`);if(isNaN(f.valueOf()))throw new Error("Wrong input string for conversion");o=f.valueOf(),s=n.substring(0,u)}else s=n;switch(!0){case s.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,u!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let f=60*o;this.minute=Math.floor(f),f=60*(f-this.minute),this.second=Math.floor(f),f=1e3*(f-this.second),this.millisecond=Math.floor(f)}break;case s.length===12:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let f=60*o;this.second=Math.floor(f),f=1e3*(f-this.second),this.millisecond=Math.floor(f)}break;case s.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,u!==-1){let f=1e3*o;this.millisecond=Math.floor(f)}break;default:throw new Error("Wrong input string for conversion")}let l=i.exec(s);if(l===null)throw new Error("Wrong input string for conversion");for(let f=1;f<l.length;f++)switch(f){case 1:this.year=parseInt(l[f],10);break;case 2:this.month=parseInt(l[f],10);break;case 3:this.day=parseInt(l[f],10);break;case 4:this.hour=parseInt(l[f],10)+a;break;case 5:this.minute=parseInt(l[f],10)+c;break;case 6:this.second=parseInt(l[f],10);break;default:throw new Error("Wrong input string for conversion")}if(e===!1){let f=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=f.getUTCFullYear(),this.month=f.getUTCMonth(),this.day=f.getUTCDay(),this.hour=f.getUTCHours(),this.minute=f.getUTCMinutes(),this.second=f.getUTCSeconds(),this.millisecond=f.getUTCMilliseconds()}}toString(t="iso"){if(t==="iso"){let e=[];return e.push(vt(this.year,4)),e.push(vt(this.month,2)),e.push(vt(this.day,2)),e.push(vt(this.hour,2)),e.push(vt(this.minute,2)),e.push(vt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(vt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Da=es;A.GeneralizedTime=Da;es.NAME="GeneralizedTime";var Ka,rs=class extends Xt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Ka=rs;A.DATE=Ka;rs.NAME="DATE";var Ma,ns=class extends Xt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Ma=ns;A.TimeOfDay=Ma;ns.NAME="TimeOfDay";var Pa,ss=class extends Xt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Pa=ss;A.DateTime=Pa;ss.NAME="DateTime";var Fa,os=class extends Xt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Fa=os;A.Duration=Fa;os.NAME="Duration";var qa,is=class extends Xt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};qa=is;A.TIME=qa;is.NAME="TIME";function Bt(r,t="utf8"){let e=gn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function Oe(r){if(isNaN(r)||r<=0)throw new V("random bytes length must be a Number bigger than 0");return Ye(r)}async function ja(r){let t=await wt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await _f(t);return{privateKey:e[0],publicKey:e[1]}}async function $a(r,t){let e=await wt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await wt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function za(r,t,e){let n=await wt.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return wt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function _f(r){if(r.privateKey==null||r.publicKey==null)throw new V("Private and public key are required");return Promise.all([wt.get().subtle.exportKey("jwk",r.privateKey),wt.get().subtle.exportKey("jwk",r.publicKey)])}function No(r){if(r.kty!=="RSA")throw new V("invalid key type");if(r.n==null)throw new V("invalid key modulus");return q(r.n,"base64url").length*8}var sr=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=Kr.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return Ht.createV1(114,this._multihash)}toString(){return st.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:Ft(this.raw,t.raw)}verify(t,e){return za(this._key,e,t)}},Mr=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=Kr.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:Ft(this.raw,t.raw)}sign(t){return $a(this._key,t)}};var cs=8192,Co=18;function Ga(r){let{result:t}=Ve(r),e=t.valueBlock.value;return{n:Dt(e[1]),e:Dt(e[2]),d:Dt(e[3]),p:Dt(e[4]),q:Dt(e[5]),dp:Dt(e[6]),dq:Dt(e[7]),qi:Dt(e[8]),kty:"RSA",alg:"RS256"}}function Df(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new V("JWK was missing components");let e=new et({value:[new X({value:0}),X.fromBigInt(Kt(q(r.n,"base64url"))),X.fromBigInt(Kt(q(r.e,"base64url"))),X.fromBigInt(Kt(q(r.d,"base64url"))),X.fromBigInt(Kt(q(r.p,"base64url"))),X.fromBigInt(Kt(q(r.q,"base64url"))),X.fromBigInt(Kt(q(r.dp,"base64url"))),X.fromBigInt(Kt(q(r.dq,"base64url"))),X.fromBigInt(Kt(q(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Za(r){let{result:t}=Ve(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:Dt(e[0]),e:Dt(e[1])}}function To(r){if(r.n==null||r.e==null)throw new V("JWK was missing components");let e=new et({value:[new et({value:[new kt({value:"1.2.840.113549.1.1.1"}),new Jt]}),new rr({valueHex:new et({value:[X.fromBigInt(Kt(q(r.n,"base64url"))),X.fromBigInt(Kt(q(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Dt(r){let t=r.valueBlock.valueHexView;for(;t[0]===0;)t=t.subarray(1);return Bt(t,"base64url")}function Kt(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function ls(r){let t=Ga(r);return Ja(t)}function Wa(r){let t=Za(r);if(No(t)>cs)throw new Ke("Key size is too large");let e=be(me.encode({Type:ot.RSA,Data:r})),n=St(Co,e);return new sr(t,n)}function Ja(r){if(No(r)>cs)throw new V("Key size is too large");let t=Xa(r),e=be(me.encode({Type:ot.RSA,Data:To(t.publicKey)})),n=St(Co,e);return new Mr(t.privateKey,new sr(t.publicKey,n))}async function Ya(r){if(r>cs)throw new V("Key size is too large");let t=await ja(r),e=be(me.encode({Type:ot.RSA,Data:To(t.publicKey)})),n=St(Co,e);return new Mr(t.privateKey,new sr(t.publicKey,n))}function Xa(r){if(r==null)throw new V("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var us=class extends We{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,Yr(t);let n=oe(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let s=this.blockLen,o=new Uint8Array(s);o.set(n.length>s?t.create().update(n).digest():n);for(let i=0;i<o.length;i++)o[i]^=54;this.iHash.update(o),this.oHash=t.create();for(let i=0;i<o.length;i++)o[i]^=106;this.oHash.update(o),o.fill(0)}update(t){return Ze(this),this.iHash.update(t),this}digestInto(t){Ze(this),Ge(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:s,destroyed:o,blockLen:i,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=o,t.blockLen=i,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Pr=(r,t,e)=>new us(r,t).update(e).digest();Pr.create=(r,t)=>new us(r,t);function Qa(r){r.lowS!==void 0&&Nt("lowS",r.lowS),r.prehash!==void 0&&Nt("prehash",r.prehash)}function Kf(r){let t=Er(r);Vt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Mf,hexToBytes:Pf}=sn,Uo=class extends Error{constructor(t=""){super(t)}},ee={Err:Uo,_tlv:{encode:(r,t)=>{let{Err:e}=ee;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,s=Se(n);if(s.length/2&128)throw new e("tlv.encode: long form length too big");let o=n>127?Se(s.length/2|128):"";return Se(r)+o+s+t},decode(r,t){let{Err:e}=ee,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let s=t[n++],o=!!(s&128),i=0;if(!o)i=s;else{let c=s&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let u=t.subarray(n,n+c);if(u.length!==c)throw new e("tlv.decode: length bytes not complete");if(u[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let l of u)i=i<<8|l;if(n+=c,i<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(r){let{Err:t}=ee;if(r<re)throw new t("integer: negative integers are not allowed");let e=Se(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return e},decode(r){let{Err:t}=ee;if(r[0]&128)throw new t("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return Mf(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=ee,s=typeof r=="string"?Pf(r):r;Xe(s);let{v:o,l:i}=n.decode(48,s);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,o),{v:u,l}=n.decode(2,c);if(l.length)throw new t("invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(u)}},hexFromSig(r){let{_tlv:t,_int:e}=ee,n=t.encode(2,e.encode(r.r)),s=t.encode(2,e.encode(r.s)),o=n+s;return t.encode(48,o)}},re=BigInt(0),it=BigInt(1),Qp=BigInt(2),tc=BigInt(3),tg=BigInt(4);function Ff(r){let t=Kf(r),{Fp:e}=t,n=de(t.n,t.nBitLength),s=t.toBytes||((m,d,b)=>{let B=d.toAffine();return zt(Uint8Array.from([4]),e.toBytes(B.x),e.toBytes(B.y))}),o=t.fromBytes||(m=>{let d=m.subarray(1),b=e.fromBytes(d.subarray(0,e.BYTES)),B=e.fromBytes(d.subarray(e.BYTES,2*e.BYTES));return{x:b,y:B}});function i(m){let{a:d,b}=t,B=e.sqr(m),p=e.mul(B,m);return e.add(e.add(p,e.mul(m,d)),b)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function a(m){return vr(m,it,t.n)}function c(m){let{allowedPrivateKeyLengths:d,nByteLength:b,wrapPrivateKey:B,n:p}=t;if(d&&typeof m!="bigint"){if(ue(m)&&(m=jt(m)),typeof m!="string"||!d.includes(m.length))throw new Error("invalid private key");m=m.padStart(b*2,"0")}let k;try{k=typeof m=="bigint"?m:$t(J("private key",m,b))}catch{throw new Error("invalid private key, expected hex or "+b+" bytes, got "+typeof m)}return B&&(k=$(k,p)),bt("private key",k,it,p),k}function u(m){if(!(m instanceof h))throw new Error("ProjectivePoint expected")}let l=Ce((m,d)=>{let{px:b,py:B,pz:p}=m;if(e.eql(p,e.ONE))return{x:b,y:B};let k=m.is0();d==null&&(d=k?e.ONE:e.inv(p));let R=e.mul(b,d),U=e.mul(B,d),I=e.mul(p,d);if(k)return{x:e.ZERO,y:e.ZERO};if(!e.eql(I,e.ONE))throw new Error("invZ was invalid");return{x:R,y:U}}),f=Ce(m=>{if(m.is0()){if(t.allowInfinityPoint&&!e.is0(m.py))return;throw new Error("bad point: ZERO")}let{x:d,y:b}=m.toAffine();if(!e.isValid(d)||!e.isValid(b))throw new Error("bad point: x or y not FE");let B=e.sqr(b),p=i(d);if(!e.eql(B,p))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class h{constructor(d,b,B){if(this.px=d,this.py=b,this.pz=B,d==null||!e.isValid(d))throw new Error("x required");if(b==null||!e.isValid(b))throw new Error("y required");if(B==null||!e.isValid(B))throw new Error("z required");Object.freeze(this)}static fromAffine(d){let{x:b,y:B}=d||{};if(!d||!e.isValid(b)||!e.isValid(B))throw new Error("invalid affine point");if(d instanceof h)throw new Error("projective point not allowed");let p=k=>e.eql(k,e.ZERO);return p(b)&&p(B)?h.ZERO:new h(b,B,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(d){let b=e.invertBatch(d.map(B=>B.pz));return d.map((B,p)=>B.toAffine(b[p])).map(h.fromAffine)}static fromHex(d){let b=h.fromAffine(o(J("pointHex",d)));return b.assertValidity(),b}static fromPrivateKey(d){return h.BASE.multiply(c(d))}static msm(d,b){return ln(h,n,d,b)}_setWindowSize(d){w.setWindowSize(this,d)}assertValidity(){f(this)}hasEvenY(){let{y:d}=this.toAffine();if(e.isOdd)return!e.isOdd(d);throw new Error("Field doesn't support isOdd")}equals(d){u(d);let{px:b,py:B,pz:p}=this,{px:k,py:R,pz:U}=d,I=e.eql(e.mul(b,U),e.mul(k,p)),T=e.eql(e.mul(B,U),e.mul(R,p));return I&&T}negate(){return new h(this.px,e.neg(this.py),this.pz)}double(){let{a:d,b}=t,B=e.mul(b,tc),{px:p,py:k,pz:R}=this,U=e.ZERO,I=e.ZERO,T=e.ZERO,N=e.mul(p,p),G=e.mul(k,k),F=e.mul(R,R),K=e.mul(p,k);return K=e.add(K,K),T=e.mul(p,R),T=e.add(T,T),U=e.mul(d,T),I=e.mul(B,F),I=e.add(U,I),U=e.sub(G,I),I=e.add(G,I),I=e.mul(U,I),U=e.mul(K,U),T=e.mul(B,T),F=e.mul(d,F),K=e.sub(N,F),K=e.mul(d,K),K=e.add(K,T),T=e.add(N,N),N=e.add(T,N),N=e.add(N,F),N=e.mul(N,K),I=e.add(I,N),F=e.mul(k,R),F=e.add(F,F),N=e.mul(F,K),U=e.sub(U,N),T=e.mul(F,G),T=e.add(T,T),T=e.add(T,T),new h(U,I,T)}add(d){u(d);let{px:b,py:B,pz:p}=this,{px:k,py:R,pz:U}=d,I=e.ZERO,T=e.ZERO,N=e.ZERO,G=t.a,F=e.mul(t.b,tc),K=e.mul(b,k),Q=e.mul(B,R),E=e.mul(p,U),C=e.add(b,B),x=e.add(k,R);C=e.mul(C,x),x=e.add(K,Q),C=e.sub(C,x),x=e.add(b,p);let g=e.add(k,U);return x=e.mul(x,g),g=e.add(K,E),x=e.sub(x,g),g=e.add(B,p),I=e.add(R,U),g=e.mul(g,I),I=e.add(Q,E),g=e.sub(g,I),N=e.mul(G,x),I=e.mul(F,E),N=e.add(I,N),I=e.sub(Q,N),N=e.add(Q,N),T=e.mul(I,N),Q=e.add(K,K),Q=e.add(Q,K),E=e.mul(G,E),x=e.mul(F,x),Q=e.add(Q,E),E=e.sub(K,E),E=e.mul(G,E),x=e.add(x,E),K=e.mul(Q,x),T=e.add(T,K),K=e.mul(g,x),I=e.mul(C,I),I=e.sub(I,K),K=e.mul(C,Q),N=e.mul(g,N),N=e.add(N,K),new h(I,T,N)}subtract(d){return this.add(d.negate())}is0(){return this.equals(h.ZERO)}wNAF(d){return w.wNAFCached(this,d,h.normalizeZ)}multiplyUnsafe(d){let{endo:b,n:B}=t;bt("scalar",d,re,B);let p=h.ZERO;if(d===re)return p;if(this.is0()||d===it)return this;if(!b||w.hasPrecomputes(this))return w.wNAFCachedUnsafe(this,d,h.normalizeZ);let{k1neg:k,k1:R,k2neg:U,k2:I}=b.splitScalar(d),T=p,N=p,G=this;for(;R>re||I>re;)R&it&&(T=T.add(G)),I&it&&(N=N.add(G)),G=G.double(),R>>=it,I>>=it;return k&&(T=T.negate()),U&&(N=N.negate()),N=new h(e.mul(N.px,b.beta),N.py,N.pz),T.add(N)}multiply(d){let{endo:b,n:B}=t;bt("scalar",d,it,B);let p,k;if(b){let{k1neg:R,k1:U,k2neg:I,k2:T}=b.splitScalar(d),{p:N,f:G}=this.wNAF(U),{p:F,f:K}=this.wNAF(T);N=w.constTimeNegate(R,N),F=w.constTimeNegate(I,F),F=new h(e.mul(F.px,b.beta),F.py,F.pz),p=N.add(F),k=G.add(K)}else{let{p:R,f:U}=this.wNAF(d);p=R,k=U}return h.normalizeZ([p,k])[0]}multiplyAndAddUnsafe(d,b,B){let p=h.BASE,k=(U,I)=>I===re||I===it||!U.equals(p)?U.multiplyUnsafe(I):U.multiply(I),R=k(this,b).add(k(d,B));return R.is0()?void 0:R}toAffine(d){return l(this,d)}isTorsionFree(){let{h:d,isTorsionFree:b}=t;if(d===it)return!0;if(b)return b(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:d,clearCofactor:b}=t;return d===it?this:b?b(h,this):this.multiplyUnsafe(t.h)}toRawBytes(d=!0){return Nt("isCompressed",d),this.assertValidity(),s(h,this,d)}toHex(d=!0){return Nt("isCompressed",d),jt(this.toRawBytes(d))}}h.BASE=new h(t.Gx,t.Gy,e.ONE),h.ZERO=new h(e.ZERO,e.ONE,e.ZERO);let y=t.nBitLength,w=cn(h,t.endo?Math.ceil(y/2):y);return{CURVE:t,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:a}}function qf(r){let t=Er(r);return Vt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function ec(r){let t=qf(r),{Fp:e,n}=t,s=e.BYTES+1,o=2*e.BYTES+1;function i(E){return $(E,n)}function a(E){return on(E,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:f}=Ff({...t,toBytes(E,C,x){let g=C.toAffine(),v=e.toBytes(g.x),S=zt;return Nt("isCompressed",x),x?S(Uint8Array.from([C.hasEvenY()?2:3]),v):S(Uint8Array.from([4]),v,e.toBytes(g.y))},fromBytes(E){let C=E.length,x=E[0],g=E.subarray(1);if(C===s&&(x===2||x===3)){let v=$t(g);if(!vr(v,it,e.ORDER))throw new Error("Point is not on curve");let S=l(v),L;try{L=e.sqrt(S)}catch(P){let O=P instanceof Error?": "+P.message:"";throw new Error("Point is not on curve"+O)}let H=(L&it)===it;return(x&1)===1!==H&&(L=e.neg(L)),{x:v,y:L}}else if(C===o&&x===4){let v=e.fromBytes(g.subarray(0,e.BYTES)),S=e.fromBytes(g.subarray(e.BYTES,2*e.BYTES));return{x:v,y:S}}else{let v=s,S=o;throw new Error("invalid Point, expected length of "+v+", or uncompressed "+S+", got "+C)}}}),h=E=>jt(he(E,t.nByteLength));function y(E){let C=n>>it;return E>C}function w(E){return y(E)?i(-E):E}let m=(E,C,x)=>$t(E.slice(C,x));class d{constructor(C,x,g){this.r=C,this.s=x,this.recovery=g,this.assertValidity()}static fromCompact(C){let x=t.nByteLength;return C=J("compactSignature",C,x*2),new d(m(C,0,x),m(C,x,2*x))}static fromDER(C){let{r:x,s:g}=ee.toSig(J("DER",C));return new d(x,g)}assertValidity(){bt("r",this.r,it,n),bt("s",this.s,it,n)}addRecoveryBit(C){return new d(this.r,this.s,C)}recoverPublicKey(C){let{r:x,s:g,recovery:v}=this,S=U(J("msgHash",C));if(v==null||![0,1,2,3].includes(v))throw new Error("recovery id invalid");let L=v===2||v===3?x+t.n:x;if(L>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=v&1?"03":"02",D=c.fromHex(H+h(L)),P=a(L),O=i(-S*P),j=i(g*P),z=c.BASE.multiplyAndAddUnsafe(D,O,j);if(!z)throw new Error("point at infinify");return z.assertValidity(),z}hasHighS(){return y(this.s)}normalizeS(){return this.hasHighS()?new d(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return Ie(this.toDERHex())}toDERHex(){return ee.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ie(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}let b={isValidPrivateKey(E){try{return u(E),!0}catch{return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{let E=Fs(t.n);return Ii(t.randomBytes(E),t.n)},precompute(E=8,C=c.BASE){return C._setWindowSize(E),C.multiply(BigInt(3)),C}};function B(E,C=!0){return c.fromPrivateKey(E).toRawBytes(C)}function p(E){let C=ue(E),x=typeof E=="string",g=(C||x)&&E.length;return C?g===s||g===o:x?g===2*s||g===2*o:E instanceof c}function k(E,C,x=!0){if(p(E))throw new Error("first arg must be private key");if(!p(C))throw new Error("second arg must be public key");return c.fromHex(C).multiply(u(E)).toRawBytes(x)}let R=t.bits2int||function(E){if(E.length>8192)throw new Error("input is too large");let C=$t(E),x=E.length*8-t.nBitLength;return x>0?C>>BigInt(x):C},U=t.bits2int_modN||function(E){return i(R(E))},I=Br(t.nBitLength);function T(E){return bt("num < 2^"+t.nBitLength,E,re,I),he(E,t.nByteLength)}function N(E,C,x=G){if(["recovered","canonical"].some(nt=>nt in x))throw new Error("sign() legacy options not supported");let{hash:g,randomBytes:v}=t,{lowS:S,prehash:L,extraEntropy:H}=x;S==null&&(S=!0),E=J("msgHash",E),Qa(x),L&&(E=J("prehashed msgHash",g(E)));let D=U(E),P=u(C),O=[T(P),T(D)];if(H!=null&&H!==!1){let nt=H===!0?v(e.BYTES):H;O.push(J("extraEntropy",nt))}let j=zt(...O),z=D;function rt(nt){let at=R(nt);if(!f(at))return;let ut=a(at),yt=c.BASE.multiply(at).toAffine(),pt=i(yt.x);if(pt===re)return;let Lt=i(ut*i(z+pt*P));if(Lt===re)return;let Mt=(yt.x===pt?0:2)|Number(yt.y&it),fr=Lt;return S&&y(Lt)&&(fr=w(Lt),Mt^=1),new d(pt,fr,Mt)}return{seed:j,k2sig:rt}}let G={lowS:t.lowS,prehash:!1},F={lowS:t.lowS,prehash:!1};function K(E,C,x=G){let{seed:g,k2sig:v}=N(E,C,x),S=t;return Ds(S.hash.outputLen,S.nByteLength,S.hmac)(g,v)}c.BASE._setWindowSize(8);function Q(E,C,x,g=F){let v=E;C=J("msgHash",C),x=J("publicKey",x);let{lowS:S,prehash:L,format:H}=g;if(Qa(g),"strict"in g)throw new Error("options.strict was renamed to lowS");if(H!==void 0&&H!=="compact"&&H!=="der")throw new Error("format must be compact or der");let D=typeof v=="string"||ue(v),P=!D&&!H&&typeof v=="object"&&v!==null&&typeof v.r=="bigint"&&typeof v.s=="bigint";if(!D&&!P)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let O,j;try{if(P&&(O=new d(v.r,v.s)),D){try{H!=="compact"&&(O=d.fromDER(v))}catch(Mt){if(!(Mt instanceof ee.Err))throw Mt}!O&&H!=="der"&&(O=d.fromCompact(v))}j=c.fromHex(x)}catch{return!1}if(!O||S&&O.hasHighS())return!1;L&&(C=t.hash(C));let{r:z,s:rt}=O,nt=U(C),at=a(rt),ut=i(nt*at),yt=i(z*at),pt=c.BASE.multiplyAndAddUnsafe(j,ut,yt)?.toAffine();return pt?i(pt.x)===z:!1}return{CURVE:t,getPublicKey:B,getSharedSecret:k,sign:K,verify:Q,ProjectivePoint:c,Signature:d,utils:b}}function jf(r){return{hash:r,hmac:(t,...e)=>Pr(r,t,Us(...e)),randomBytes:Ye}}function rc(r,t){let e=n=>ec({...r,...jf(n)});return{...e(t),create:e}}var oc=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),nc=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),$f=BigInt(1),Ro=BigInt(2),sc=(r,t)=>(r+t/Ro)/t;function zf(r){let t=oc,e=BigInt(3),n=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=r*r*r%t,l=u*u*r%t,f=W(l,e,t)*l%t,h=W(f,e,t)*l%t,y=W(h,Ro,t)*u%t,w=W(y,s,t)*y%t,m=W(w,o,t)*w%t,d=W(m,a,t)*m%t,b=W(d,c,t)*d%t,B=W(b,a,t)*m%t,p=W(B,e,t)*l%t,k=W(p,i,t)*w%t,R=W(k,n,t)*u%t,U=W(R,Ro,t);if(!Lo.eql(Lo.sqr(U),r))throw new Error("Cannot find square root");return U}var Lo=de(oc,void 0,void 0,{sqrt:zf}),Rt=rc({a:BigInt(0),b:BigInt(7),Fp:Lo,n:nc,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=nc,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-$f*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=e,i=BigInt("0x100000000000000000000000000000000"),a=sc(o*r,t),c=sc(-n*r,t),u=$(r-a*e-c*s,t),l=$(-a*n-c*o,t),f=u>i,h=l>i;if(f&&(u=t-u),h&&(l=t-l),u>i||l>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:f,k1:u,k2neg:h,k2:l}}}},be),lg=BigInt(0);var ug=Rt.ProjectivePoint;function Ho(r,t){t==null&&(t=r.reduce((s,o)=>s+o.length,0));let e=Ot(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function Vo(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function ic(r,t){let e=Qe.digest(t instanceof Uint8Array?t:t.subarray());if(Vo(e))return e.then(({digest:n})=>Rt.sign(n,r).toDERRawBytes()).catch(n=>{throw new hr(String(n))});try{return Rt.sign(e.digest,r).toDERRawBytes()}catch(n){throw new hr(String(n))}}function ac(r,t,e){let n=Qe.digest(e instanceof Uint8Array?e:e.subarray());if(Vo(n))return n.then(({digest:s})=>Rt.verify(t,s,r)).catch(s=>{throw new dr(String(s))});try{return Rt.verify(t,n.digest,r)}catch(s){throw new dr(String(s))}}var fs=class{type="secp256k1";raw;_key;constructor(t){this._key=uc(t),this.raw=cc(this._key)}toMultihash(){return xr.digest(hn(this))}toCID(){return Ht.createV1(114,this.toMultihash())}toString(){return st.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:Ft(this.raw,t.raw)}verify(t,e){return ac(this._key,e,t)}},hs=class{type="secp256k1";raw;publicKey;constructor(t,e){this.raw=lc(t),this.publicKey=new fs(e??fc(t))}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:Ft(this.raw,t.raw)}sign(t){return ic(this.raw,t)}};function Oo(r){return new hs(r)}function cc(r){return Rt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function lc(r){try{return Rt.getPublicKey(r,!0),r}catch(t){throw new pr(String(t))}}function uc(r){try{return Rt.ProjectivePoint.fromHex(r),r}catch(t){throw new Ke(String(t))}}function fc(r){try{return Rt.getPublicKey(r,!0)}catch(t){throw new pr(String(t))}}function hn(r){return me.encode({Type:ot[r.type],Data:r.raw})}function hc(r){let t=Tr.decode(r),e=t.Data??new Uint8Array;switch(t.Type){case ot.RSA:return ls(e);case ot.Ed25519:return Ws(e);case ot.secp256k1:return Oo(e);default:throw new Me}}function dc(r){return r.byteLength===64?Ws(r):r.byteLength===32?Oo(r):ls(r)}function or(r){return Tr.encode({Type:ot[r.type],Data:r.raw})}function pc(r,t,e,n){Yr(r);let s=bi({dkLen:32,asyncTick:10},n),{c:o,dkLen:i,asyncTick:a}=s;if(ze(o),ze(i),ze(a),o<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=oe(t),u=oe(e),l=new Uint8Array(i),f=Pr.create(r,c),h=f._cloneInto().update(u);return{c:o,dkLen:i,asyncTick:a,DK:l,PRF:f,PRFSalt:h}}function gc(r,t,e,n,s){return r.destroy(),t.destroy(),n&&n.destroy(),s.fill(0),e}function mc(r,t,e,n){let{c:s,dkLen:o,DK:i,PRF:a,PRFSalt:c}=pc(r,t,e,n),u,l=new Uint8Array(4),f=ke(l),h=new Uint8Array(a.outputLen);for(let y=1,w=0;w<o;y++,w+=a.outputLen){let m=i.subarray(w,w+a.outputLen);f.setInt32(0,y,!1),(u=c._cloneInto(u)).update(l).digestInto(h),m.set(h.subarray(0,m.length));for(let d=1;d<s;d++){a._cloneInto(u).update(h).digestInto(h);for(let b=0;b<m.length;b++)m[b]^=h[b]}}return gc(a,c,i,u,h)}async function ds(r,t,e,n){let{c:s,dkLen:o,asyncTick:i,DK:a,PRF:c,PRFSalt:u}=pc(r,t,e,n),l,f=new Uint8Array(4),h=ke(f),y=new Uint8Array(c.outputLen);for(let w=1,m=0;m<o;w++,m+=c.outputLen){let d=a.subarray(m,m+c.outputLen);h.setInt32(0,w,!1),(l=u._cloneInto(l)).update(f).digestInto(y),d.set(y.subarray(0,d.length)),await yi(s-1,i,()=>{c._cloneInto(l).update(y).digestInto(y);for(let b=0;b<d.length;b++)d[b]^=y[b]})}return gc(c,u,a,l,y)}var Fr=new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),Be=new Uint32Array(80),_o=class extends ie{constructor(){super(64,20,8,!1),this.A=Fr[0]|0,this.B=Fr[1]|0,this.C=Fr[2]|0,this.D=Fr[3]|0,this.E=Fr[4]|0}get(){let{A:t,B:e,C:n,D:s,E:o}=this;return[t,e,n,s,o]}set(t,e,n,s,o){this.A=t|0,this.B=e|0,this.C=n|0,this.D=s|0,this.E=o|0}process(t,e){for(let c=0;c<16;c++,e+=4)Be[c]=t.getUint32(e,!1);for(let c=16;c<80;c++)Be[c]=Xr(Be[c-3]^Be[c-8]^Be[c-14]^Be[c-16],1);let{A:n,B:s,C:o,D:i,E:a}=this;for(let c=0;c<80;c++){let u,l;c<20?(u=Qr(s,o,i),l=1518500249):c<40?(u=s^o^i,l=1859775393):c<60?(u=tn(s,o,i),l=2400959708):(u=s^o^i,l=3395469782);let f=Xr(n,5)+u+a+l+Be[c]|0;a=i,i=o,o=Xr(s,30),s=n,n=f}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,this.set(n,s,o,i,a)}roundClean(){Be.fill(0)}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0)}},yc=Je(()=>new _o);var wc={sha1:yc,"sha2-256":be,"sha2-512":le};function qr(r,t,e,n,s){if(s!=="sha1"&&s!=="sha2-256"&&s!=="sha2-512"){let a=Object.keys(wc).join(" / ");throw new V(`Hash '${s}' is unknown or not supported. Must be ${a}`)}let o=wc[s],i=mc(o,r,t,{c:e,dkLen:n});return Re.encode(i).substring(1)}var ne="/",bc=new TextEncoder().encode(ne),ps=bc[0],jr=class r{_buf;constructor(t,e){if(typeof t=="string")this._buf=q(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(e==null&&(e=!0),e&&this.clean(),this._buf.byteLength===0||this._buf[0]!==ps)throw new Error("Invalid key")}toString(t="utf8"){return Bt(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new r(t.join(ne))}static random(){return new r(Math.random().toString().substring(2))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new r(t):typeof t.uint8Array=="function"?new r(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=bc),this._buf[0]!==ps){let t=new Uint8Array(this._buf.byteLength+1);t.fill(ps,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ps;)this._buf=this._buf.subarray(0,-1)}less(t){let e=this.list(),n=t.list();for(let s=0;s<e.length;s++){if(n.length<s+1)return!1;let o=e[s],i=n[s];if(o<i)return!0;if(o>i)return!1}return e.length<n.length}reverse(){return r.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(ne).slice(1)}type(){return Gf(this.baseNamespace())}name(){return Zf(this.baseNamespace())}instance(t){return new r(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(ne)||(t+=ne),t+=this.type(),new r(t)}parent(){let t=this.list();return t.length===1?new r(ne):new r(t.slice(0,-1).join(ne))}child(t){return this.toString()===ne?t:t.toString()===ne?this:new r(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return r.withNamespaces([...this.namespaces(),...Wf(t.map(e=>e.namespaces()))])}};function Gf(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function Zf(r){let t=r.split(":");return t[t.length-1]}function Wf(r){return[].concat(...r)}var Nc=xs(Ic(),1),Cc=Nc.default;var Fc=xs(Dc(),1);var cr={};ft(cr,{create:()=>dh,derivedEmptyPasswordKey:()=>ys});var ys={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function dh(r){let t=r?.algorithm??"AES-GCM",e=r?.keyLength??16,n=r?.nonceLength??12,s=r?.digest??"SHA-256",o=r?.saltLength??16,i=r?.iterations??32767,a=wt.get();e*=8;async function c(f,h){let y=a.getRandomValues(new Uint8Array(o)),w=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:w};typeof h=="string"&&(h=q(h));let d;if(h.length===0){d=await a.subtle.importKey("jwk",ys,{name:"AES-GCM"},!0,["encrypt"]);try{let B={name:"PBKDF2",salt:y,iterations:i,hash:{name:s}},p=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);d=await a.subtle.deriveKey(B,p,{name:t,length:e},!0,["encrypt"])}catch{d=await a.subtle.importKey("jwk",ys,{name:"AES-GCM"},!0,["encrypt"])}}else{let B={name:"PBKDF2",salt:y,iterations:i,hash:{name:s}},p=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);d=await a.subtle.deriveKey(B,p,{name:t,length:e},!0,["encrypt"])}let b=await a.subtle.encrypt(m,d,f);return Ho([y,m.iv,new Uint8Array(b)])}async function u(f,h){let y=f.subarray(0,o),w=f.subarray(o,o+n),m=f.subarray(o+n),d={name:t,iv:w};typeof h=="string"&&(h=q(h));let b;if(h.length===0)try{let p={name:"PBKDF2",salt:y,iterations:i,hash:{name:s}},k=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);b=await a.subtle.deriveKey(p,k,{name:t,length:e},!0,["decrypt"])}catch{b=await a.subtle.importKey("jwk",ys,{name:"AES-GCM"},!0,["decrypt"])}else{let p={name:"PBKDF2",salt:y,iterations:i,hash:{name:s}},k=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);b=await a.subtle.deriveKey(p,k,{name:t,length:e},!0,["decrypt"])}let B=await a.subtle.decrypt(d,b,m);return new Uint8Array(B)}return{encrypt:c,decrypt:u}}async function Ko(r,t){let n=await cr.create().encrypt(r,t);return Re.encode(n)}async function Mo(r,t,e){if(r.type==="RSA")return mh(r,t,e);if(r.type==="Ed25519")return ph(r,t,e);if(r.type==="secp256k1")return gh(r,t,e);throw new Me}async function ph(r,t,e="libp2p-key"){if(e==="libp2p-key")return Ko(or(r),t);throw new V(`export format '${e}' is not supported`)}async function gh(r,t,e="libp2p-key"){if(e==="libp2p-key")return Ko(or(r),t);throw new V("Export format is not supported")}async function mh(r,t,e="pkcs-8"){if(e==="pkcs-8")return yh(r,t);if(e==="libp2p-key")return Ko(or(r),t);throw new V("Export format is not supported")}async function yh(r,t){let e=wt.get(),s=new et({value:[new X({value:0}),new et({value:[new kt({value:"1.2.840.113549.1.1.1"}),new Jt]}),new Yt({valueHex:r.raw})]}).toBER(),o=new Uint8Array(s,0,s.byteLength),i=Oe(16),a=await ds(le,t,i,{c:1e4,dkLen:32}),c=Oe(16),u=await e.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),l=await e.subtle.encrypt({name:"AES-CBC",iv:c},u,o),f=new et({value:[new Yt({valueHex:i}),new X({value:1e4}),new X({value:32}),new et({value:[new kt({value:"1.2.840.113549.2.11"}),new Jt]})]}),h=new et({value:[new kt({value:"1.2.840.113549.1.5.13"}),new et({value:[new et({value:[new kt({value:"1.2.840.113549.1.5.12"}),f]}),new et({value:[new kt({value:"2.16.840.1.101.3.4.1.42"}),new Yt({valueHex:c})]})]})]}),w=new et({value:[h,new Yt({valueHex:l})]}).toBER(),m=new Uint8Array(w,0,w.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...Bt(m,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
7
- `)}async function Po(r,t){try{let e=await wh(r,t);return hc(e)}catch{}if(!r.includes("BEGIN"))throw new V("Encrypted key was not a libp2p-key or a PEM file");return bh(r,t)}async function wh(r,t){let e=Re.decode(r);return cr.create().decrypt(e,t)}async function bh(r,t){let e=wt.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=q(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Ve(o),{iv:a,salt:c,iterations:u,keySize:l,cipherText:f}=xh(i),h=await ds(le,t,c,{c:u,dkLen:l}),y=await e.subtle.importKey("raw",h,"AES-CBC",!1,["decrypt"]),w=$r(await e.subtle.decrypt({name:"AES-CBC",iv:a},y,f)),{result:m}=Ve(w);n=Pc(m)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=q(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Ve(o);n=Pc(i)}else throw new V("Could not parse private key from PEM data");let s=dc(n);if(s.type!=="RSA")throw new V("Could not parse RSA private key from PEM data");return s}function xh(r){let t=r.valueBlock.value[0];if(t.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new V("Only pkcs5PBES2 encrypted private keys are supported");let n=t.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new V("Only pkcs5PBKDF2 key derivation functions are supported");let o=n.valueBlock.value[1],i=$r(o.valueBlock.value[0].getValue()),a=1e4,c=32;if(o.valueBlock.value.length===3)a=Number(o.valueBlock.value[1].toBigInt()),c=Number(o.valueBlock.value[2].toBigInt());else if(o.valueBlock.value.length===2)throw new V("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key");let u=t.valueBlock.value[1].valueBlock.value[1],l=u.valueBlock.value[0].toString();if(l!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(l!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new V("Only AES-CBC encryption schemes are supported")}}}}let f=$r(u.valueBlock.value[1].getValue());return{cipherText:$r(r.valueBlock.value[1].getValue()),salt:i,iterations:a,keySize:c,iv:f}}function Pc(r){return $r(r.valueBlock.value[2].getValue())}function $r(r){return new Uint8Array(r,0,r.byteLength)}var vh="/pkcs8/",qo="/info/",zr=new WeakMap,_e={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Fo={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function lr(r){return r==null||typeof r!="string"?!1:r===(0,Fc.default)(r.trim())&&r.length>0}async function lt(){let e=Math.random()*800+200;await new Promise(n=>setTimeout(n,e))}function De(r){return new jr(vh+r)}function ur(r){return new jr(qo+r)}async function Bh(r){let t=or(r),e=await Qe.digest(t);return st.encode(e.bytes).substring(1)}var ws=class{components;init;log;constructor(t,e){if(this.components=t,this.log=t.logger.forComponent("libp2p:keychain"),this.init=Cc(Fo,e),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<_e.minKeyLength)throw new Error(`dek.keyLength must be least ${_e.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<_e.minSaltLength)throw new Error(`dek.saltLength must be least ${_e.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<_e.minIterationCount)throw new Error(`dek.iterationCount must be least ${_e.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?qr(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";zr.set(this,{dek:n})}[Symbol.toStringTag]="@libp2p/keychain";[Qo]=["@libp2p/keychain"];static generateOptions(){let t=Object.assign({},Fo),e=Math.ceil(_e.minSaltLength/3)*3;return t.dek.salt=Bt(Oe(e),"base64"),t}static get options(){return Fo}async findKeyByName(t){if(!lr(t))throw await lt(),new V(`Invalid key name '${t}'`);let e=ur(t);try{let n=await this.components.datastore.get(e);return JSON.parse(Bt(n))}catch(n){throw await lt(),this.log.error(n),new Wr(`Key '${t}' does not exist.`)}}async findKeyById(t){try{let e={prefix:qo};for await(let n of this.components.datastore.query(e)){let s=JSON.parse(Bt(n.value));if(s.id===t)return s}throw new V(`Key with id '${t}' does not exist.`)}catch(e){throw await lt(),e}}async importKey(t,e){if(!lr(t))throw await lt(),new V(`Invalid key name '${t}'`);if(e==null)throw await lt(),new V("Key is required");let n=De(t);if(await this.components.datastore.has(n))throw await lt(),new V(`Key '${t}' already exists`);let o,i;try{o=await Bh(e);let u=zr.get(this);if(u==null)throw new V("dek missing");let l=u.dek;i=await Mo(e,l,e.type==="RSA"?"pkcs-8":"libp2p-key")}catch(u){throw await lt(),u}let a={name:t,id:o},c=this.components.datastore.batch();return c.put(n,q(i)),c.put(ur(t),q(JSON.stringify(a))),await c.commit(),a}async exportKey(t){if(!lr(t))throw await lt(),new V(`Invalid key name '${t}'`);let e=De(t);try{let n=await this.components.datastore.get(e),s=Bt(n),o=zr.get(this);if(o==null)throw new V("dek missing");let i=o.dek;return await Po(s,i)}catch(n){throw await lt(),n}}async removeKey(t){if(!lr(t)||t==="self")throw await lt(),new V(`Invalid key name '${t}'`);let e=De(t),n=await this.findKeyByName(t),s=this.components.datastore.batch();return s.delete(e),s.delete(ur(t)),await s.commit(),n}async listKeys(){let t={prefix:qo},e=[];for await(let n of this.components.datastore.query(t))e.push(JSON.parse(Bt(n.value)));return e}async renameKey(t,e){if(!lr(t)||t==="self")throw await lt(),new V(`Invalid old key name '${t}'`);if(!lr(e)||e==="self")throw await lt(),new V(`Invalid new key name '${e}'`);let n=De(t),s=De(e),o=ur(t),i=ur(e);if(await this.components.datastore.has(s))throw await lt(),new V(`Key '${e}' already exists`);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(o),l=JSON.parse(Bt(u));l.name=e;let f=this.components.datastore.batch();return f.put(s,c),f.put(i,q(JSON.stringify(l))),f.delete(n),f.delete(o),await f.commit(),l}catch(c){throw await lt(),c}}async rotateKeychainPass(t,e){if(typeof t!="string")throw await lt(),new V(`Invalid old pass type '${typeof t}'`);if(typeof e!="string")throw await lt(),new V(`Invalid new pass type '${typeof e}'`);if(e.length<20)throw await lt(),new V(`Invalid pass length ${e.length}`);this.log("recreating keychain");let n=zr.get(this);if(n==null)throw new V("dek missing");let s=n.dek;this.init.pass=e;let o=e!=null&&this.init.dek?.salt!=null?qr(e,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";zr.set(this,{dek:o});let i=await this.listKeys();for(let a of i){let c=await this.components.datastore.get(De(a.name)),u=Bt(c),l=await Po(u,s),f=o.toString(),h=await Mo(l,f,l.type==="RSA"?"pkcs-8":"libp2p-key"),y=this.components.datastore.batch(),w={name:a.name,id:a.id};y.put(De(a.name),q(h)),y.put(ur(a.name),q(JSON.stringify(w))),await y.commit()}this.log("keychain reconstructed")}};function Eh(r={}){return t=>new ws(t,r)}return rl(Ah);})();
7
+ `)}async function Po(r,t){try{let e=await wh(r,t);return hc(e)}catch{}if(!r.includes("BEGIN"))throw new V("Encrypted key was not a libp2p-key or a PEM file");return bh(r,t)}async function wh(r,t){let e=Re.decode(r);return cr.create().decrypt(e,t)}async function bh(r,t){let e=wt.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let o=q(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Ve(o),{iv:a,salt:c,iterations:u,keySize:l,cipherText:f}=xh(i),h=await ds(le,t,c,{c:u,dkLen:l}),y=await e.subtle.importKey("raw",h,"AES-CBC",!1,["decrypt"]),w=$r(await e.subtle.decrypt({name:"AES-CBC",iv:a},y,f)),{result:m}=Ve(w);n=Pc(m)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let o=q(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Ve(o);n=Pc(i)}else throw new V("Could not parse private key from PEM data");let s=dc(n);if(s.type!=="RSA")throw new V("Could not parse RSA private key from PEM data");return s}function xh(r){let t=r.valueBlock.value[0];if(t.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new V("Only pkcs5PBES2 encrypted private keys are supported");let n=t.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new V("Only pkcs5PBKDF2 key derivation functions are supported");let o=n.valueBlock.value[1],i=$r(o.valueBlock.value[0].getValue()),a=1e4,c=32;if(o.valueBlock.value.length===3)a=Number(o.valueBlock.value[1].toBigInt()),c=Number(o.valueBlock.value[2].toBigInt());else if(o.valueBlock.value.length===2)throw new V("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key");let u=t.valueBlock.value[1].valueBlock.value[1],l=u.valueBlock.value[0].toString();if(l!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(l!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(l!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new V("Only AES-CBC encryption schemes are supported")}}}}let f=$r(u.valueBlock.value[1].getValue());return{cipherText:$r(r.valueBlock.value[1].getValue()),salt:i,iterations:a,keySize:c,iv:f}}function Pc(r){return $r(r.valueBlock.value[2].getValue())}function $r(r){return new Uint8Array(r,0,r.byteLength)}var vh="/pkcs8/",qo="/info/",zr=new WeakMap,_e={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Fo={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function lr(r){return r==null||typeof r!="string"?!1:r===(0,Fc.default)(r.trim())&&r.length>0}async function lt(){let e=Math.random()*800+200;await new Promise(n=>setTimeout(n,e))}function De(r){return new jr(vh+r)}function ur(r){return new jr(qo+r)}async function Bh(r){let t=or(r),e=await Qe.digest(t);return st.encode(e.bytes).substring(1)}var ws=class{components;init;log;self;constructor(t,e){if(this.components=t,this.log=t.logger.forComponent("libp2p:keychain"),this.init=Cc(Fo,e),this.self=e.selfKey??"self",this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<_e.minKeyLength)throw new Error(`dek.keyLength must be least ${_e.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<_e.minSaltLength)throw new Error(`dek.saltLength must be least ${_e.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<_e.minIterationCount)throw new Error(`dek.iterationCount must be least ${_e.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?qr(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";zr.set(this,{dek:n})}[Symbol.toStringTag]="@libp2p/keychain";[Qo]=["@libp2p/keychain"];static generateOptions(){let t=Object.assign({},Fo),e=Math.ceil(_e.minSaltLength/3)*3;return t.dek.salt=Bt(Oe(e),"base64"),t}static get options(){return Fo}async findKeyByName(t){if(!lr(t))throw await lt(),new V(`Invalid key name '${t}'`);let e=ur(t);try{let n=await this.components.datastore.get(e);return JSON.parse(Bt(n))}catch(n){throw await lt(),this.log.error(n),new Wr(`Key '${t}' does not exist.`)}}async findKeyById(t){try{let e={prefix:qo};for await(let n of this.components.datastore.query(e)){let s=JSON.parse(Bt(n.value));if(s.id===t)return s}throw new V(`Key with id '${t}' does not exist.`)}catch(e){throw await lt(),e}}async importKey(t,e){if(!lr(t))throw await lt(),new V(`Invalid key name '${t}'`);if(e==null)throw await lt(),new V("Key is required");let n=De(t);if(await this.components.datastore.has(n))throw await lt(),new V(`Key '${t}' already exists`);let o,i;try{o=await Bh(e);let u=zr.get(this);if(u==null)throw new V("dek missing");let l=u.dek;i=await Mo(e,l,e.type==="RSA"?"pkcs-8":"libp2p-key")}catch(u){throw await lt(),u}let a={name:t,id:o},c=this.components.datastore.batch();return c.put(n,q(i)),c.put(ur(t),q(JSON.stringify(a))),await c.commit(),a}async exportKey(t){if(!lr(t))throw await lt(),new V(`Invalid key name '${t}'`);let e=De(t);try{let n=await this.components.datastore.get(e),s=Bt(n),o=zr.get(this);if(o==null)throw new V("dek missing");let i=o.dek;return await Po(s,i)}catch(n){throw await lt(),n}}async removeKey(t){if(!lr(t)||t===this.self)throw await lt(),new V(`Invalid key name '${t}'`);let e=De(t),n=await this.findKeyByName(t),s=this.components.datastore.batch();return s.delete(e),s.delete(ur(t)),await s.commit(),n}async listKeys(){let t={prefix:qo},e=[];for await(let n of this.components.datastore.query(t))e.push(JSON.parse(Bt(n.value)));return e}async renameKey(t,e){if(!lr(t)||t===this.self)throw await lt(),new V(`Invalid old key name '${t}'`);if(!lr(e)||e===this.self)throw await lt(),new V(`Invalid new key name '${e}'`);let n=De(t),s=De(e),o=ur(t),i=ur(e);if(await this.components.datastore.has(s))throw await lt(),new V(`Key '${e}' already exists`);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(o),l=JSON.parse(Bt(u));l.name=e;let f=this.components.datastore.batch();return f.put(s,c),f.put(i,q(JSON.stringify(l))),f.delete(n),f.delete(o),await f.commit(),l}catch(c){throw await lt(),c}}async rotateKeychainPass(t,e){if(typeof t!="string")throw await lt(),new V(`Invalid old pass type '${typeof t}'`);if(typeof e!="string")throw await lt(),new V(`Invalid new pass type '${typeof e}'`);if(e.length<20)throw await lt(),new V(`Invalid pass length ${e.length}`);this.log("recreating keychain");let n=zr.get(this);if(n==null)throw new V("dek missing");let s=n.dek;this.init.pass=e;let o=e!=null&&this.init.dek?.salt!=null?qr(e,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";zr.set(this,{dek:o});let i=await this.listKeys();for(let a of i){let c=await this.components.datastore.get(De(a.name)),u=Bt(c),l=await Po(u,s),f=o.toString(),h=await Mo(l,f,l.type==="RSA"?"pkcs-8":"libp2p-key"),y=this.components.datastore.batch(),w={name:a.name,id:a.id};y.put(De(a.name),q(h)),y.put(ur(a.name),q(JSON.stringify(w))),await y.commit()}this.log("keychain reconstructed")}};function Eh(r={}){return t=>new ws(t,r)}return rl(Ah);})();
8
8
  /*! Bundled license information:
9
9
 
10
10
  pvtsutils/build/index.js:
@@ -59,8 +59,27 @@ export interface DEKConfig {
59
59
  keyLength: number;
60
60
  }
61
61
  export interface KeychainInit {
62
+ /**
63
+ * The password is used to derive a key which encrypts the keychain at rest
64
+ */
62
65
  pass?: string;
66
+ /**
67
+ * This key configures how the keychain encryption key is derived from the
68
+ * configured password
69
+ */
63
70
  dek?: DEKConfig;
71
+ /**
72
+ * The 'self' key is the private key of the node from which the peer id is
73
+ * derived.
74
+ *
75
+ * It cannot be renamed or removed.
76
+ *
77
+ * By default it is stored under the 'self' key, to use a different name, pass
78
+ * this option.
79
+ *
80
+ * @default 'self'
81
+ */
82
+ selfKey?: string;
64
83
  }
65
84
  export interface KeychainComponents {
66
85
  datastore: Datastore;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,SAAS,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7C;;;;;;;;;;;;OAYG;IACH,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1D;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAE5C;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEzC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7D;;;;;;;;OAQG;IACH,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAE9B;;;;;;;;OAQG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpE;AAED,wBAAgB,QAAQ,CAAE,IAAI,GAAE,YAAiB,GAAG,CAAC,UAAU,EAAE,kBAAkB,KAAK,QAAQ,CAI/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;;OAGG;IACH,GAAG,CAAC,EAAE,SAAS,CAAA;IAEf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7C;;;;;;;;;;;;OAYG;IACH,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1C;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE1D;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAE5C;;;;;;;;;OASG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEzC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE7D;;;;;;;;OAQG;IACH,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAE9B;;;;;;;;OAQG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpE;AAED,wBAAgB,QAAQ,CAAE,IAAI,GAAE,YAAiB,GAAG,CAAC,UAAU,EAAE,kBAAkB,KAAK,QAAQ,CAI/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AA6IzD,MAAM,UAAU,QAAQ,CAAE,OAAqB,EAAE;IAC/C,OAAO,CAAC,UAA8B,EAAE,EAAE;QACxC,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AAkKzD,MAAM,UAAU,QAAQ,CAAE,OAAqB,EAAE;IAC/C,OAAO,CAAC,UAA8B,EAAE,EAAE;QACxC,OAAO,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5C,CAAC,CAAA;AACH,CAAC"}
@@ -22,6 +22,7 @@ export declare class Keychain implements KeychainInterface {
22
22
  private readonly components;
23
23
  private readonly init;
24
24
  private readonly log;
25
+ private readonly self;
25
26
  /**
26
27
  * Creates a new instance of a key chain
27
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/keychain.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyC,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAU9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,IAAI,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC1G,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAa3D,QAAA,MAAM,cAAc;;;;;;;CAQnB,CAAA;AAwCD,wBAAsB,KAAK,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7D;AAED;;;;;;;GAOG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B;;OAEG;gBACU,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;IA+B/D,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAqB;IAElD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAK,YAAY;IAOvC;;;;;OAKG;IACH,MAAM,KAAK,OAAO,IAAK,OAAO,cAAc,CAE3C;IAEK,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB9C,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB1C,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA6C3D,SAAS,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB7C,SAAS,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD;;;;OAIG;IACG,QAAQ,IAAK,OAAO,CAAC,OAAO,EAAE,CAAC;IAarC;;;;;;OAMG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCpE;;OAEG;IACG,kBAAkB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmD3E"}
1
+ {"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/keychain.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyC,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAU9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,IAAI,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC1G,OAAO,KAAK,EAAU,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAa3D,QAAA,MAAM,cAAc;;;;;;;CAQnB,CAAA;AAwCD,wBAAsB,KAAK,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAK7D;AAED;;;;;;;GAOG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAE7B;;OAEG;gBACU,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY;IAgC/D,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAqB;IAElD,QAAQ,CAAC,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAEvC;IAED;;;;OAIG;IACH,MAAM,CAAC,eAAe,IAAK,YAAY;IAOvC;;;;;OAKG;IACH,MAAM,KAAK,OAAO,IAAK,OAAO,cAAc,CAE3C;IAEK,aAAa,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB9C,WAAW,CAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB1C,SAAS,CAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IA6C3D,SAAS,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAyB7C,SAAS,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD;;;;OAIG;IACG,QAAQ,IAAK,OAAO,CAAC,OAAO,EAAE,CAAC;IAarC;;;;;;OAMG;IACG,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuCpE;;OAEG;IACG,kBAAkB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmD3E"}
@@ -79,6 +79,7 @@ export class Keychain {
79
79
  components;
80
80
  init;
81
81
  log;
82
+ self;
82
83
  /**
83
84
  * Creates a new instance of a key chain
84
85
  */
@@ -86,6 +87,7 @@ export class Keychain {
86
87
  this.components = components;
87
88
  this.log = components.logger.forComponent('libp2p:keychain');
88
89
  this.init = mergeOptions(defaultOptions, init);
90
+ this.self = init.selfKey ?? 'self';
89
91
  // Enforce NIST SP 800-132
90
92
  if (this.init.pass != null && this.init.pass?.length < 20) {
91
93
  throw new Error('pass must be least 20 characters');
@@ -224,7 +226,7 @@ export class Keychain {
224
226
  }
225
227
  }
226
228
  async removeKey(name) {
227
- if (!validateKeyName(name) || name === 'self') {
229
+ if (!validateKeyName(name) || name === this.self) {
228
230
  await randomDelay();
229
231
  throw new InvalidParametersError(`Invalid key name '${name}'`);
230
232
  }
@@ -259,11 +261,11 @@ export class Keychain {
259
261
  * @returns {Promise<KeyInfo>}
260
262
  */
261
263
  async renameKey(oldName, newName) {
262
- if (!validateKeyName(oldName) || oldName === 'self') {
264
+ if (!validateKeyName(oldName) || oldName === this.self) {
263
265
  await randomDelay();
264
266
  throw new InvalidParametersError(`Invalid old key name '${oldName}'`);
265
267
  }
266
- if (!validateKeyName(newName) || newName === 'self') {
268
+ if (!validateKeyName(newName) || newName === this.self) {
267
269
  await randomDelay();
268
270
  throw new InvalidParametersError(`Invalid new key name '${newName}'`);
269
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/keychain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/keychain.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/keychain",
3
- "version": "5.0.14",
3
+ "version": "5.1.0",
4
4
  "description": "Key management and cryptographically protected messages",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/keychain#readme",
@@ -59,8 +59,8 @@
59
59
  "test:electron-main": "aegir test -t electron-main"
60
60
  },
61
61
  "dependencies": {
62
- "@libp2p/crypto": "^5.0.11",
63
- "@libp2p/interface": "^2.5.0",
62
+ "@libp2p/crypto": "^5.0.12",
63
+ "@libp2p/interface": "^2.6.0",
64
64
  "@noble/hashes": "^1.6.1",
65
65
  "asn1js": "^3.0.5",
66
66
  "interface-datastore": "^8.3.1",
@@ -70,7 +70,7 @@
70
70
  "uint8arrays": "^5.1.0"
71
71
  },
72
72
  "devDependencies": {
73
- "@libp2p/logger": "^5.1.8",
73
+ "@libp2p/logger": "^5.1.9",
74
74
  "aegir": "^45.0.5",
75
75
  "datastore-core": "^10.0.2"
76
76
  },
package/src/index.ts CHANGED
@@ -63,8 +63,29 @@ export interface DEKConfig {
63
63
  }
64
64
 
65
65
  export interface KeychainInit {
66
+ /**
67
+ * The password is used to derive a key which encrypts the keychain at rest
68
+ */
66
69
  pass?: string
70
+
71
+ /**
72
+ * This key configures how the keychain encryption key is derived from the
73
+ * configured password
74
+ */
67
75
  dek?: DEKConfig
76
+
77
+ /**
78
+ * The 'self' key is the private key of the node from which the peer id is
79
+ * derived.
80
+ *
81
+ * It cannot be renamed or removed.
82
+ *
83
+ * By default it is stored under the 'self' key, to use a different name, pass
84
+ * this option.
85
+ *
86
+ * @default 'self'
87
+ */
88
+ selfKey?: string
68
89
  }
69
90
 
70
91
  export interface KeychainComponents {
package/src/keychain.ts CHANGED
@@ -93,6 +93,7 @@ export class Keychain implements KeychainInterface {
93
93
  private readonly components: KeychainComponents
94
94
  private readonly init: KeychainInit
95
95
  private readonly log: Logger
96
+ private readonly self: string
96
97
 
97
98
  /**
98
99
  * Creates a new instance of a key chain
@@ -101,6 +102,7 @@ export class Keychain implements KeychainInterface {
101
102
  this.components = components
102
103
  this.log = components.logger.forComponent('libp2p:keychain')
103
104
  this.init = mergeOptions(defaultOptions, init)
105
+ this.self = init.selfKey ?? 'self'
104
106
 
105
107
  // Enforce NIST SP 800-132
106
108
  if (this.init.pass != null && this.init.pass?.length < 20) {
@@ -266,7 +268,7 @@ export class Keychain implements KeychainInterface {
266
268
  }
267
269
 
268
270
  async removeKey (name: string): Promise<KeyInfo> {
269
- if (!validateKeyName(name) || name === 'self') {
271
+ if (!validateKeyName(name) || name === this.self) {
270
272
  await randomDelay()
271
273
  throw new InvalidParametersError(`Invalid key name '${name}'`)
272
274
  }
@@ -307,11 +309,11 @@ export class Keychain implements KeychainInterface {
307
309
  * @returns {Promise<KeyInfo>}
308
310
  */
309
311
  async renameKey (oldName: string, newName: string): Promise<KeyInfo> {
310
- if (!validateKeyName(oldName) || oldName === 'self') {
312
+ if (!validateKeyName(oldName) || oldName === this.self) {
311
313
  await randomDelay()
312
314
  throw new InvalidParametersError(`Invalid old key name '${oldName}'`)
313
315
  }
314
- if (!validateKeyName(newName) || newName === 'self') {
316
+ if (!validateKeyName(newName) || newName === this.self) {
315
317
  await randomDelay()
316
318
  throw new InvalidParametersError(`Invalid new key name '${newName}'`)
317
319
  }