27 lines
55 KiB
JavaScript
27 lines
55 KiB
JavaScript
var Et="0123456789abcdefghijklmnopqrstuvwxyz";function A(r){return Et.charAt(r)}function Dt(r,t){return r&t}function Z(r,t){return r|t}function at(r,t){return r^t}function ut(r,t){return r&~t}function xt(r){if(r==0)return-1;var t=0;return r&65535||(r>>=16,t+=16),r&255||(r>>=8,t+=8),r&15||(r>>=4,t+=4),r&3||(r>>=2,t+=2),r&1||++t,t}function Rt(r){for(var t=0;r!=0;)r&=r-1,++t;return t}var C="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Tt="=";function W(r){var t,e,i="";for(t=0;t+3<=r.length;t+=3)e=parseInt(r.substring(t,t+3),16),i+=C.charAt(e>>6)+C.charAt(e&63);for(t+1==r.length?(e=parseInt(r.substring(t,t+1),16),i+=C.charAt(e<<2)):t+2==r.length&&(e=parseInt(r.substring(t,t+2),16),i+=C.charAt(e>>2)+C.charAt((e&3)<<4));(i.length&3)>0;)i+=Tt;return i}function lt(r){var t="",e,i=0,n=0;for(e=0;e<r.length&&r.charAt(e)!=Tt;++e){var s=C.indexOf(r.charAt(e));s<0||(i==0?(t+=A(s>>2),n=s&3,i=1):i==1?(t+=A(n<<2|s>>4),n=s&15,i=2):i==2?(t+=A(n),t+=A(s>>2),n=s&3,i=3):(t+=A(n<<2|s>>4),t+=A(s&15),i=0))}return i==1&&(t+=A(n<<2)),t}var H,Bt={decode:function(r){var t;if(H===void 0){var e="0123456789ABCDEF",i=` \f
|
||
\r \u2028\u2029`;for(H={},t=0;t<16;++t)H[e.charAt(t)]=t;for(e=e.toLowerCase(),t=10;t<16;++t)H[e.charAt(t)]=t;for(t=0;t<i.length;++t)H[i.charAt(t)]=-1}var n=[],s=0,h=0;for(t=0;t<r.length;++t){var o=r.charAt(t);if(o=="=")break;if(o=H[o],o!=-1){if(o===void 0)throw new Error("Illegal character at offset "+t);s|=o,++h>=2?(n[n.length]=s,s=0,h=0):s<<=4}}if(h)throw new Error("Hex encoding incomplete: 4 bits missing");return n}},P,st={decode:function(r){var t;if(P===void 0){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=`= \f
|
||
\r \u2028\u2029`;for(P=Object.create(null),t=0;t<64;++t)P[e.charAt(t)]=t;for(P["-"]=62,P._=63,t=0;t<i.length;++t)P[i.charAt(t)]=-1}var n=[],s=0,h=0;for(t=0;t<r.length;++t){var o=r.charAt(t);if(o=="=")break;if(o=P[o],o!=-1){if(o===void 0)throw new Error("Illegal character at offset "+t);s|=o,++h>=4?(n[n.length]=s>>16,n[n.length]=s>>8&255,n[n.length]=s&255,s=0,h=0):s<<=6}}switch(h){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:n[n.length]=s>>10;break;case 3:n[n.length]=s>>16,n[n.length]=s>>8&255;break}return n},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(r){var t=st.re.exec(r);if(t)if(t[1])r=t[1];else if(t[2])r=t[2];else throw new Error("RegExp out of sync");return st.decode(r)}},_=1e13,j=function(){function r(t){this.buf=[+t||0]}return r.prototype.mulAdd=function(t,e){var i=this.buf,n=i.length,s,h;for(s=0;s<n;++s)h=i[s]*t+e,h<_?e=0:(e=0|h/_,h-=e*_),i[s]=h;e>0&&(i[s]=e)},r.prototype.sub=function(t){var e=this.buf,i=e.length,n,s;for(n=0;n<i;++n)s=e[n]-t,s<0?(s+=_,t=1):t=0,e[n]=s;for(;e[e.length-1]===0;)e.pop()},r.prototype.toString=function(t){if((t||10)!=10)throw new Error("only base 10 is supported");for(var e=this.buf,i=e[e.length-1].toString(),n=e.length-2;n>=0;--n)i+=(_+e[n]).toString().substring(1);return i},r.prototype.valueOf=function(){for(var t=this.buf,e=0,i=t.length-1;i>=0;--i)e=e*_+t[i];return e},r.prototype.simplify=function(){var t=this.buf;return t.length==1?t[0]:this},r}(),mt="…",At=/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,Ot=/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;function F(r,t){return r.length>t&&(r=r.substring(0,t)+mt),r}var it=function(){function r(t,e){this.hexDigits="0123456789ABCDEF",t instanceof r?(this.enc=t.enc,this.pos=t.pos):(this.enc=t,this.pos=e)}return r.prototype.get=function(t){if(t===void 0&&(t=this.pos++),t>=this.enc.length)throw new Error("Requesting byte offset ".concat(t," on a stream of length ").concat(this.enc.length));return typeof this.enc=="string"?this.enc.charCodeAt(t):this.enc[t]},r.prototype.hexByte=function(t){return this.hexDigits.charAt(t>>4&15)+this.hexDigits.charAt(t&15)},r.prototype.hexDump=function(t,e,i){for(var n="",s=t;s<e;++s)if(n+=this.hexByte(this.get(s)),i!==!0)switch(s&15){case 7:n+=" ";break;case 15:n+=`
|
||
`;break;default:n+=" "}return n},r.prototype.isASCII=function(t,e){for(var i=t;i<e;++i){var n=this.get(i);if(n<32||n>176)return!1}return!0},r.prototype.parseStringISO=function(t,e){for(var i="",n=t;n<e;++n)i+=String.fromCharCode(this.get(n));return i},r.prototype.parseStringUTF=function(t,e){for(var i="",n=t;n<e;){var s=this.get(n++);s<128?i+=String.fromCharCode(s):s>191&&s<224?i+=String.fromCharCode((s&31)<<6|this.get(n++)&63):i+=String.fromCharCode((s&15)<<12|(this.get(n++)&63)<<6|this.get(n++)&63)}return i},r.prototype.parseStringBMP=function(t,e){for(var i="",n,s,h=t;h<e;)n=this.get(h++),s=this.get(h++),i+=String.fromCharCode(n<<8|s);return i},r.prototype.parseTime=function(t,e,i){var n=this.parseStringISO(t,e),s=(i?At:Ot).exec(n);return s?(i&&(s[1]=+s[1],s[1]+=+s[1]<70?2e3:1900),n=s[1]+"-"+s[2]+"-"+s[3]+" "+s[4],s[5]&&(n+=":"+s[5],s[6]&&(n+=":"+s[6],s[7]&&(n+="."+s[7]))),s[8]&&(n+=" UTC",s[8]!="Z"&&(n+=s[8],s[9]&&(n+=":"+s[9]))),n):"Unrecognized time: "+n},r.prototype.parseInteger=function(t,e){for(var i=this.get(t),n=i>127,s=n?255:0,h,o="";i==s&&++t<e;)i=this.get(t);if(h=e-t,h===0)return n?-1:0;if(h>4){for(o=i,h<<=3;!((+o^s)&128);)o=+o<<1,--h;o="("+h+` bit)
|
||
`}n&&(i=i-256);for(var f=new j(i),u=t+1;u<e;++u)f.mulAdd(256,this.get(u));return o+f.toString()},r.prototype.parseBitString=function(t,e,i){for(var n=this.get(t),s=(e-t-1<<3)-n,h="("+s+` bit)
|
||
`,o="",f=t+1;f<e;++f){for(var u=this.get(f),l=f==e-1?n:0,g=7;g>=l;--g)o+=u>>g&1?"1":"0";if(o.length>i)return h+F(o,i)}return h+o},r.prototype.parseOctetString=function(t,e,i){if(this.isASCII(t,e))return F(this.parseStringISO(t,e),i);var n=e-t,s="("+n+` byte)
|
||
`;i/=2,n>i&&(e=t+i);for(var h=t;h<e;++h)s+=this.hexByte(this.get(h));return n>i&&(s+=mt),s},r.prototype.parseOID=function(t,e,i){for(var n="",s=new j,h=0,o=t;o<e;++o){var f=this.get(o);if(s.mulAdd(128,f&127),h+=7,!(f&128)){if(n==="")if(s=s.simplify(),s instanceof j)s.sub(80),n="2."+s.toString();else{var u=s<80?s<40?0:1:2;n=u+"."+(s-u*40)}else n+="."+s.toString();if(n.length>i)return F(n,i);s=new j,h=0}}return h>0&&(n+=".incomplete"),n},r}(),Vt=function(){function r(t,e,i,n,s){if(!(n instanceof ct))throw new Error("Invalid tag value.");this.stream=t,this.header=e,this.length=i,this.tag=n,this.sub=s}return r.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0:return"EOC";case 1:return"BOOLEAN";case 2:return"INTEGER";case 3:return"BIT_STRING";case 4:return"OCTET_STRING";case 5:return"NULL";case 6:return"OBJECT_IDENTIFIER";case 7:return"ObjectDescriptor";case 8:return"EXTERNAL";case 9:return"REAL";case 10:return"ENUMERATED";case 11:return"EMBEDDED_PDV";case 12:return"UTF8String";case 16:return"SEQUENCE";case 17:return"SET";case 18:return"NumericString";case 19:return"PrintableString";case 20:return"TeletexString";case 21:return"VideotexString";case 22:return"IA5String";case 23:return"UTCTime";case 24:return"GeneralizedTime";case 25:return"GraphicString";case 26:return"VisibleString";case 27:return"GeneralString";case 28:return"UniversalString";case 30:return"BMPString"}return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString()}},r.prototype.content=function(t){if(this.tag===void 0)return null;t===void 0&&(t=1/0);var e=this.posContent(),i=Math.abs(this.length);if(!this.tag.isUniversal())return this.sub!==null?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);switch(this.tag.tagNumber){case 1:return this.stream.get(e)===0?"false":"true";case 2:return this.stream.parseInteger(e,e+i);case 3:return this.sub?"("+this.sub.length+" elem)":this.stream.parseBitString(e,e+i,t);case 4:return this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(e,e+i,t);case 6:return this.stream.parseOID(e,e+i,t);case 16:case 17:return this.sub!==null?"("+this.sub.length+" elem)":"(no elem)";case 12:return F(this.stream.parseStringUTF(e,e+i),t);case 18:case 19:case 20:case 21:case 22:case 26:return F(this.stream.parseStringISO(e,e+i),t);case 30:return F(this.stream.parseStringBMP(e,e+i),t);case 23:case 24:return this.stream.parseTime(e,e+i,this.tag.tagNumber==23)}return null},r.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+(this.sub===null?"null":this.sub.length)+"]"},r.prototype.toPrettyString=function(t){t===void 0&&(t="");var e=t+this.typeName()+" @"+this.stream.pos;if(this.length>=0&&(e+="+"),e+=this.length,this.tag.tagConstructed?e+=" (constructed)":this.tag.isUniversal()&&(this.tag.tagNumber==3||this.tag.tagNumber==4)&&this.sub!==null&&(e+=" (encapsulates)"),e+=`
|
||
`,this.sub!==null){t+=" ";for(var i=0,n=this.sub.length;i<n;++i)e+=this.sub[i].toPrettyString(t)}return e},r.prototype.posStart=function(){return this.stream.pos},r.prototype.posContent=function(){return this.stream.pos+this.header},r.prototype.posEnd=function(){return this.stream.pos+this.header+Math.abs(this.length)},r.prototype.toHexString=function(){return this.stream.hexDump(this.posStart(),this.posEnd(),!0)},r.decodeLength=function(t){var e=t.get(),i=e&127;if(i==e)return i;if(i>6)throw new Error("Length over 48 bits not supported at position "+(t.pos-1));if(i===0)return null;e=0;for(var n=0;n<i;++n)e=e*256+t.get();return e},r.prototype.getHexStringValue=function(){var t=this.toHexString(),e=this.header*2,i=this.length*2;return t.substr(e,i)},r.decode=function(t){var e;t instanceof it?e=t:e=new it(t,0);var i=new it(e),n=new ct(e),s=r.decodeLength(e),h=e.pos,o=h-i.pos,f=null,u=function(){var g=[];if(s!==null){for(var d=h+s;e.pos<d;)g[g.length]=r.decode(e);if(e.pos!=d)throw new Error("Content size is not correct for container starting at offset "+h)}else try{for(;;){var y=r.decode(e);if(y.tag.isEOC())break;g[g.length]=y}s=h-e.pos}catch(T){throw new Error("Exception while decoding undefined length content: "+T)}return g};if(n.tagConstructed)f=u();else if(n.isUniversal()&&(n.tagNumber==3||n.tagNumber==4))try{if(n.tagNumber==3&&e.get()!=0)throw new Error("BIT STRINGs with unused bits cannot encapsulate.");f=u();for(var l=0;l<f.length;++l)if(f[l].tag.isEOC())throw new Error("EOC is not supposed to be actual content.")}catch{f=null}if(f===null){if(s===null)throw new Error("We can't skip over an invalid tag with undefined length at offset "+h);e.pos=h+Math.abs(s)}return new r(i,o,s,n,f)},r}(),ct=function(){function r(t){var e=t.get();if(this.tagClass=e>>6,this.tagConstructed=(e&32)!==0,this.tagNumber=e&31,this.tagNumber==31){var i=new j;do e=t.get(),i.mulAdd(128,e&127);while(e&128);this.tagNumber=i.simplify()}}return r.prototype.isUniversal=function(){return this.tagClass===0},r.prototype.isEOC=function(){return this.tagClass===0&&this.tagNumber===0},r}(),I,It=0xdeadbeefcafe,pt=(It&16777215)==15715070,w=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Nt=(1<<26)/w[w.length-1],c=function(){function r(t,e,i){t!=null&&(typeof t=="number"?this.fromNumber(t,e,i):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}return r.prototype.toString=function(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var i=(1<<e)-1,n,s=!1,h="",o=this.t,f=this.DB-o*this.DB%e;if(o-- >0)for(f<this.DB&&(n=this[o]>>f)>0&&(s=!0,h=A(n));o>=0;)f<e?(n=(this[o]&(1<<f)-1)<<e-f,n|=this[--o]>>(f+=this.DB-e)):(n=this[o]>>(f-=e)&i,f<=0&&(f+=this.DB,--o)),n>0&&(s=!0),s&&(h+=A(n));return s?h:"0"},r.prototype.negate=function(){var t=p();return r.ZERO.subTo(this,t),t},r.prototype.abs=function(){return this.s<0?this.negate():this},r.prototype.compareTo=function(t){var e=this.s-t.s;if(e!=0)return e;var i=this.t;if(e=i-t.t,e!=0)return this.s<0?-e:e;for(;--i>=0;)if((e=this[i]-t[i])!=0)return e;return 0},r.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+G(this[this.t-1]^this.s&this.DM)},r.prototype.mod=function(t){var e=p();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(r.ZERO)>0&&t.subTo(e,e),e},r.prototype.modPowInt=function(t,e){var i;return t<256||e.isEven()?i=new gt(e):i=new vt(e),this.exp(t,i)},r.prototype.clone=function(){var t=p();return this.copyTo(t),t},r.prototype.intValue=function(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<<this.DB|this[0]},r.prototype.byteValue=function(){return this.t==0?this.s:this[0]<<24>>24},r.prototype.shortValue=function(){return this.t==0?this.s:this[0]<<16>>16},r.prototype.signum=function(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1},r.prototype.toByteArray=function(){var t=this.t,e=[];e[0]=this.s;var i=this.DB-t*this.DB%8,n,s=0;if(t-- >0)for(i<this.DB&&(n=this[t]>>i)!=(this.s&this.DM)>>i&&(e[s++]=n|this.s<<this.DB-i);t>=0;)i<8?(n=(this[t]&(1<<i)-1)<<8-i,n|=this[--t]>>(i+=this.DB-8)):(n=this[t]>>(i-=8)&255,i<=0&&(i+=this.DB,--t)),n&128&&(n|=-256),s==0&&(this.s&128)!=(n&128)&&++s,(s>0||n!=this.s)&&(e[s++]=n);return e},r.prototype.equals=function(t){return this.compareTo(t)==0},r.prototype.min=function(t){return this.compareTo(t)<0?this:t},r.prototype.max=function(t){return this.compareTo(t)>0?this:t},r.prototype.and=function(t){var e=p();return this.bitwiseTo(t,Dt,e),e},r.prototype.or=function(t){var e=p();return this.bitwiseTo(t,Z,e),e},r.prototype.xor=function(t){var e=p();return this.bitwiseTo(t,at,e),e},r.prototype.andNot=function(t){var e=p();return this.bitwiseTo(t,ut,e),e},r.prototype.not=function(){for(var t=p(),e=0;e<this.t;++e)t[e]=this.DM&~this[e];return t.t=this.t,t.s=~this.s,t},r.prototype.shiftLeft=function(t){var e=p();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e},r.prototype.shiftRight=function(t){var e=p();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e},r.prototype.getLowestSetBit=function(){for(var t=0;t<this.t;++t)if(this[t]!=0)return t*this.DB+xt(this[t]);return this.s<0?this.t*this.DB:-1},r.prototype.bitCount=function(){for(var t=0,e=this.s&this.DM,i=0;i<this.t;++i)t+=Rt(this[i]^e);return t},r.prototype.testBit=function(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this[e]&1<<t%this.DB)!=0},r.prototype.setBit=function(t){return this.changeBit(t,Z)},r.prototype.clearBit=function(t){return this.changeBit(t,ut)},r.prototype.flipBit=function(t){return this.changeBit(t,at)},r.prototype.add=function(t){var e=p();return this.addTo(t,e),e},r.prototype.subtract=function(t){var e=p();return this.subTo(t,e),e},r.prototype.multiply=function(t){var e=p();return this.multiplyTo(t,e),e},r.prototype.divide=function(t){var e=p();return this.divRemTo(t,e,null),e},r.prototype.remainder=function(t){var e=p();return this.divRemTo(t,null,e),e},r.prototype.divideAndRemainder=function(t){var e=p(),i=p();return this.divRemTo(t,e,i),[e,i]},r.prototype.modPow=function(t,e){var i=t.bitLength(),n,s=O(1),h;if(i<=0)return s;i<18?n=1:i<48?n=3:i<144?n=4:i<768?n=5:n=6,i<8?h=new gt(e):e.isEven()?h=new Mt(e):h=new vt(e);var o=[],f=3,u=n-1,l=(1<<n)-1;if(o[1]=h.convert(this),n>1){var g=p();for(h.sqrTo(o[1],g);f<=l;)o[f]=p(),h.mulTo(g,o[f-2],o[f]),f+=2}var d=t.t-1,y,T=!0,b=p(),E;for(i=G(t[d])-1;d>=0;){for(i>=u?y=t[d]>>i-u&l:(y=(t[d]&(1<<i+1)-1)<<u-i,d>0&&(y|=t[d-1]>>this.DB+i-u)),f=n;!(y&1);)y>>=1,--f;if((i-=f)<0&&(i+=this.DB,--d),T)o[y].copyTo(s),T=!1;else{for(;f>1;)h.sqrTo(s,b),h.sqrTo(b,s),f-=2;f>0?h.sqrTo(s,b):(E=s,s=b,b=E),h.mulTo(b,o[y],s)}for(;d>=0&&!(t[d]&1<<i);)h.sqrTo(s,b),E=s,s=b,b=E,--i<0&&(i=this.DB-1,--d)}return h.revert(s)},r.prototype.modInverse=function(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return r.ZERO;for(var i=t.clone(),n=this.clone(),s=O(1),h=O(0),o=O(0),f=O(1);i.signum()!=0;){for(;i.isEven();)i.rShiftTo(1,i),e?((!s.isEven()||!h.isEven())&&(s.addTo(this,s),h.subTo(t,h)),s.rShiftTo(1,s)):h.isEven()||h.subTo(t,h),h.rShiftTo(1,h);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!f.isEven())&&(o.addTo(this,o),f.subTo(t,f)),o.rShiftTo(1,o)):f.isEven()||f.subTo(t,f),f.rShiftTo(1,f);i.compareTo(n)>=0?(i.subTo(n,i),e&&s.subTo(o,s),h.subTo(f,h)):(n.subTo(i,n),e&&o.subTo(s,o),f.subTo(h,f))}if(n.compareTo(r.ONE)!=0)return r.ZERO;if(f.compareTo(t)>=0)return f.subtract(t);if(f.signum()<0)f.addTo(t,f);else return f;return f.signum()<0?f.add(t):f},r.prototype.pow=function(t){return this.exp(t,new Pt)},r.prototype.gcd=function(t){var e=this.s<0?this.negate():this.clone(),i=t.s<0?t.negate():t.clone();if(e.compareTo(i)<0){var n=e;e=i,i=n}var s=e.getLowestSetBit(),h=i.getLowestSetBit();if(h<0)return e;for(s<h&&(h=s),h>0&&(e.rShiftTo(h,e),i.rShiftTo(h,i));e.signum()>0;)(s=e.getLowestSetBit())>0&&e.rShiftTo(s,e),(s=i.getLowestSetBit())>0&&i.rShiftTo(s,i),e.compareTo(i)>=0?(e.subTo(i,e),e.rShiftTo(1,e)):(i.subTo(e,i),i.rShiftTo(1,i));return h>0&&i.lShiftTo(h,i),i},r.prototype.isProbablePrime=function(t){var e,i=this.abs();if(i.t==1&&i[0]<=w[w.length-1]){for(e=0;e<w.length;++e)if(i[0]==w[e])return!0;return!1}if(i.isEven())return!1;for(e=1;e<w.length;){for(var n=w[e],s=e+1;s<w.length&&n<Nt;)n*=w[s++];for(n=i.modInt(n);e<s;)if(n%w[e++]==0)return!1}return i.millerRabin(t)},r.prototype.copyTo=function(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},r.prototype.fromInt=function(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},r.prototype.fromString=function(t,e){var i;if(e==16)i=4;else if(e==8)i=3;else if(e==256)i=8;else if(e==2)i=1;else if(e==32)i=5;else if(e==4)i=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,s=!1,h=0;--n>=0;){var o=i==8?+t[n]&255:yt(t,n);if(o<0){t.charAt(n)=="-"&&(s=!0);continue}s=!1,h==0?this[this.t++]=o:h+i>this.DB?(this[this.t-1]|=(o&(1<<this.DB-h)-1)<<h,this[this.t++]=o>>this.DB-h):this[this.t-1]|=o<<h,h+=i,h>=this.DB&&(h-=this.DB)}i==8&&+t[0]&128&&(this.s=-1,h>0&&(this[this.t-1]|=(1<<this.DB-h)-1<<h)),this.clamp(),s&&r.ZERO.subTo(this,this)},r.prototype.clamp=function(){for(var t=this.s&this.DM;this.t>0&&this[this.t-1]==t;)--this.t},r.prototype.dlShiftTo=function(t,e){var i;for(i=this.t-1;i>=0;--i)e[i+t]=this[i];for(i=t-1;i>=0;--i)e[i]=0;e.t=this.t+t,e.s=this.s},r.prototype.drShiftTo=function(t,e){for(var i=t;i<this.t;++i)e[i-t]=this[i];e.t=Math.max(this.t-t,0),e.s=this.s},r.prototype.lShiftTo=function(t,e){for(var i=t%this.DB,n=this.DB-i,s=(1<<n)-1,h=Math.floor(t/this.DB),o=this.s<<i&this.DM,f=this.t-1;f>=0;--f)e[f+h+1]=this[f]>>n|o,o=(this[f]&s)<<i;for(var f=h-1;f>=0;--f)e[f]=0;e[h]=o,e.t=this.t+h+1,e.s=this.s,e.clamp()},r.prototype.rShiftTo=function(t,e){e.s=this.s;var i=Math.floor(t/this.DB);if(i>=this.t){e.t=0;return}var n=t%this.DB,s=this.DB-n,h=(1<<n)-1;e[0]=this[i]>>n;for(var o=i+1;o<this.t;++o)e[o-i-1]|=(this[o]&h)<<s,e[o-i]=this[o]>>n;n>0&&(e[this.t-i-1]|=(this.s&h)<<s),e.t=this.t-i,e.clamp()},r.prototype.subTo=function(t,e){for(var i=0,n=0,s=Math.min(t.t,this.t);i<s;)n+=this[i]-t[i],e[i++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;i<this.t;)n+=this[i],e[i++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;i<t.t;)n-=t[i],e[i++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[i++]=this.DV+n:n>0&&(e[i++]=n),e.t=i,e.clamp()},r.prototype.multiplyTo=function(t,e){var i=this.abs(),n=t.abs(),s=i.t;for(e.t=s+n.t;--s>=0;)e[s]=0;for(s=0;s<n.t;++s)e[s+i.t]=i.am(0,n[s],e,s,0,i.t);e.s=0,e.clamp(),this.s!=t.s&&r.ZERO.subTo(e,e)},r.prototype.squareTo=function(t){for(var e=this.abs(),i=t.t=2*e.t;--i>=0;)t[i]=0;for(i=0;i<e.t-1;++i){var n=e.am(i,e[i],t,2*i,0,1);(t[i+e.t]+=e.am(i+1,2*e[i],t,2*i+1,n,e.t-i-1))>=e.DV&&(t[i+e.t]-=e.DV,t[i+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(i,e[i],t,2*i,0,1)),t.s=0,t.clamp()},r.prototype.divRemTo=function(t,e,i){var n=t.abs();if(!(n.t<=0)){var s=this.abs();if(s.t<n.t){e!=null&&e.fromInt(0),i!=null&&this.copyTo(i);return}i==null&&(i=p());var h=p(),o=this.s,f=t.s,u=this.DB-G(n[n.t-1]);u>0?(n.lShiftTo(u,h),s.lShiftTo(u,i)):(n.copyTo(h),s.copyTo(i));var l=h.t,g=h[l-1];if(g!=0){var d=g*(1<<this.F1)+(l>1?h[l-2]>>this.F2:0),y=this.FV/d,T=(1<<this.F1)/d,b=1<<this.F2,E=i.t,M=E-l,B=e??p();for(h.dlShiftTo(M,B),i.compareTo(B)>=0&&(i[i.t++]=1,i.subTo(B,i)),r.ONE.dlShiftTo(l,B),B.subTo(h,h);h.t<l;)h[h.t++]=0;for(;--M>=0;){var q=i[--E]==g?this.DM:Math.floor(i[E]*y+(i[E-1]+b)*T);if((i[E]+=h.am(0,q,i,M,0,l))<q)for(h.dlShiftTo(M,B),i.subTo(B,i);i[E]<--q;)i.subTo(B,i)}e!=null&&(i.drShiftTo(l,e),o!=f&&r.ZERO.subTo(e,e)),i.t=l,i.clamp(),u>0&&i.rShiftTo(u,i),o<0&&r.ZERO.subTo(i,i)}}},r.prototype.invDigit=function(){if(this.t<1)return 0;var t=this[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e},r.prototype.isEven=function(){return(this.t>0?this[0]&1:this.s)==0},r.prototype.exp=function(t,e){if(t>4294967295||t<1)return r.ONE;var i=p(),n=p(),s=e.convert(this),h=G(t)-1;for(s.copyTo(i);--h>=0;)if(e.sqrTo(i,n),(t&1<<h)>0)e.mulTo(n,s,i);else{var o=i;i=n,n=o}return e.revert(i)},r.prototype.chunkSize=function(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},r.prototype.toRadix=function(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),i=Math.pow(t,e),n=O(i),s=p(),h=p(),o="";for(this.divRemTo(n,s,h);s.signum()>0;)o=(i+h.intValue()).toString(t).substr(1)+o,s.divRemTo(n,s,h);return h.intValue().toString(t)+o},r.prototype.fromRadix=function(t,e){this.fromInt(0),e==null&&(e=10);for(var i=this.chunkSize(e),n=Math.pow(e,i),s=!1,h=0,o=0,f=0;f<t.length;++f){var u=yt(t,f);if(u<0){t.charAt(f)=="-"&&this.signum()==0&&(s=!0);continue}o=e*o+u,++h>=i&&(this.dMultiply(n),this.dAddOffset(o,0),h=0,o=0)}h>0&&(this.dMultiply(Math.pow(e,h)),this.dAddOffset(o,0)),s&&r.ZERO.subTo(this,this)},r.prototype.fromNumber=function(t,e,i){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(r.ONE.shiftLeft(t-1),Z,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(r.ONE.shiftLeft(t-1),this);else{var n=[],s=t&7;n.length=(t>>3)+1,e.nextBytes(n),s>0?n[0]&=(1<<s)-1:n[0]=0,this.fromString(n,256)}},r.prototype.bitwiseTo=function(t,e,i){var n,s,h=Math.min(t.t,this.t);for(n=0;n<h;++n)i[n]=e(this[n],t[n]);if(t.t<this.t){for(s=t.s&this.DM,n=h;n<this.t;++n)i[n]=e(this[n],s);i.t=this.t}else{for(s=this.s&this.DM,n=h;n<t.t;++n)i[n]=e(s,t[n]);i.t=t.t}i.s=e(this.s,t.s),i.clamp()},r.prototype.changeBit=function(t,e){var i=r.ONE.shiftLeft(t);return this.bitwiseTo(i,e,i),i},r.prototype.addTo=function(t,e){for(var i=0,n=0,s=Math.min(t.t,this.t);i<s;)n+=this[i]+t[i],e[i++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;i<this.t;)n+=this[i],e[i++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;i<t.t;)n+=t[i],e[i++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[i++]=n:n<-1&&(e[i++]=this.DV+n),e.t=i,e.clamp()},r.prototype.dMultiply=function(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},r.prototype.dAddOffset=function(t,e){if(t!=0){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},r.prototype.multiplyLowerTo=function(t,e,i){var n=Math.min(this.t+t.t,e);for(i.s=0,i.t=n;n>0;)i[--n]=0;for(var s=i.t-this.t;n<s;++n)i[n+this.t]=this.am(0,t[n],i,n,0,this.t);for(var s=Math.min(t.t,e);n<s;++n)this.am(0,t[n],i,n,0,e-n);i.clamp()},r.prototype.multiplyUpperTo=function(t,e,i){--e;var n=i.t=this.t+t.t-e;for(i.s=0;--n>=0;)i[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)i[this.t+n-e]=this.am(e-n,t[n],i,0,0,this.t+n-e);i.clamp(),i.drShiftTo(1,i)},r.prototype.modInt=function(t){if(t<=0)return 0;var e=this.DV%t,i=this.s<0?t-1:0;if(this.t>0)if(e==0)i=this[0]%t;else for(var n=this.t-1;n>=0;--n)i=(e*i+this[n])%t;return i},r.prototype.millerRabin=function(t){var e=this.subtract(r.ONE),i=e.getLowestSetBit();if(i<=0)return!1;var n=e.shiftRight(i);t=t+1>>1,t>w.length&&(t=w.length);for(var s=p(),h=0;h<t;++h){s.fromInt(w[Math.floor(Math.random()*w.length)]);var o=s.modPow(n,this);if(o.compareTo(r.ONE)!=0&&o.compareTo(e)!=0){for(var f=1;f++<i&&o.compareTo(e)!=0;)if(o=o.modPowInt(2,this),o.compareTo(r.ONE)==0)return!1;if(o.compareTo(e)!=0)return!1}}return!0},r.prototype.square=function(){var t=p();return this.squareTo(t),t},r.prototype.gcda=function(t,e){var i=this.s<0?this.negate():this.clone(),n=t.s<0?t.negate():t.clone();if(i.compareTo(n)<0){var s=i;i=n,n=s}var h=i.getLowestSetBit(),o=n.getLowestSetBit();if(o<0){e(i);return}h<o&&(o=h),o>0&&(i.rShiftTo(o,i),n.rShiftTo(o,n));var f=function(){(h=i.getLowestSetBit())>0&&i.rShiftTo(h,i),(h=n.getLowestSetBit())>0&&n.rShiftTo(h,n),i.compareTo(n)>=0?(i.subTo(n,i),i.rShiftTo(1,i)):(n.subTo(i,n),n.rShiftTo(1,n)),i.signum()>0?setTimeout(f,0):(o>0&&n.lShiftTo(o,n),setTimeout(function(){e(n)},0))};setTimeout(f,10)},r.prototype.fromNumberAsync=function(t,e,i,n){if(typeof e=="number")if(t<2)this.fromInt(1);else{this.fromNumber(t,i),this.testBit(t-1)||this.bitwiseTo(r.ONE.shiftLeft(t-1),Z,this),this.isEven()&&this.dAddOffset(1,0);var s=this,h=function(){s.dAddOffset(2,0),s.bitLength()>t&&s.subTo(r.ONE.shiftLeft(t-1),s),s.isProbablePrime(e)?setTimeout(function(){n()},0):setTimeout(h,0)};setTimeout(h,0)}else{var o=[],f=t&7;o.length=(t>>3)+1,e.nextBytes(o),f>0?o[0]&=(1<<f)-1:o[0]=0,this.fromString(o,256)}},r}(),Pt=function(){function r(){}return r.prototype.convert=function(t){return t},r.prototype.revert=function(t){return t},r.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i)},r.prototype.sqrTo=function(t,e){t.squareTo(e)},r}(),gt=function(){function r(t){this.m=t}return r.prototype.convert=function(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},r.prototype.revert=function(t){return t},r.prototype.reduce=function(t){t.divRemTo(this.m,null,t)},r.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},r.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},r}(),vt=function(){function r(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}return r.prototype.convert=function(t){var e=p();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(c.ZERO)>0&&this.m.subTo(e,e),e},r.prototype.revert=function(t){var e=p();return t.copyTo(e),this.reduce(e),e},r.prototype.reduce=function(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e<this.m.t;++e){var i=t[e]&32767,n=i*this.mpl+((i*this.mph+(t[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(i=e+this.m.t,t[i]+=this.m.am(0,n,t,e,0,this.m.t);t[i]>=t.DV;)t[i]-=t.DV,t[++i]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},r.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},r.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},r}(),Mt=function(){function r(t){this.m=t,this.r2=p(),this.q3=p(),c.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t)}return r.prototype.convert=function(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=p();return t.copyTo(e),this.reduce(e),e},r.prototype.revert=function(t){return t},r.prototype.reduce=function(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},r.prototype.mulTo=function(t,e,i){t.multiplyTo(e,i),this.reduce(i)},r.prototype.sqrTo=function(t,e){t.squareTo(e),this.reduce(e)},r}();function p(){return new c(null)}function S(r,t){return new c(r,t)}var dt=typeof navigator<"u";dt&&pt&&navigator.appName=="Microsoft Internet Explorer"?(c.prototype.am=function(t,e,i,n,s,h){for(var o=e&32767,f=e>>15;--h>=0;){var u=this[t]&32767,l=this[t++]>>15,g=f*u+l*o;u=o*u+((g&32767)<<15)+i[n]+(s&1073741823),s=(u>>>30)+(g>>>15)+f*l+(s>>>30),i[n++]=u&1073741823}return s},I=30):dt&&pt&&navigator.appName!="Netscape"?(c.prototype.am=function(t,e,i,n,s,h){for(;--h>=0;){var o=e*this[t++]+i[n]+s;s=Math.floor(o/67108864),i[n++]=o&67108863}return s},I=26):(c.prototype.am=function(t,e,i,n,s,h){for(var o=e&16383,f=e>>14;--h>=0;){var u=this[t]&16383,l=this[t++]>>14,g=f*u+l*o;u=o*u+((g&16383)<<14)+i[n]+s,s=(u>>28)+(g>>14)+f*l,i[n++]=u&268435455}return s},I=28);c.prototype.DB=I;c.prototype.DM=(1<<I)-1;c.prototype.DV=1<<I;var ht=52;c.prototype.FV=Math.pow(2,ht);c.prototype.F1=ht-I;c.prototype.F2=2*I-ht;var tt=[],L,D;L=48;for(D=0;D<=9;++D)tt[L++]=D;L=97;for(D=10;D<36;++D)tt[L++]=D;L=65;for(D=10;D<36;++D)tt[L++]=D;function yt(r,t){var e=tt[r.charCodeAt(t)];return e??-1}function O(r){var t=p();return t.fromInt(r),t}function G(r){var t=1,e;return(e=r>>>16)!=0&&(r=e,t+=16),(e=r>>8)!=0&&(r=e,t+=8),(e=r>>4)!=0&&(r=e,t+=4),(e=r>>2)!=0&&(r=e,t+=2),(e=r>>1)!=0&&(r=e,t+=1),t}c.ZERO=O(0);c.ONE=O(1);var qt=function(){function r(){this.i=0,this.j=0,this.S=[]}return r.prototype.init=function(t){var e,i,n;for(e=0;e<256;++e)this.S[e]=e;for(i=0,e=0;e<256;++e)i=i+this.S[e]+t[e%t.length]&255,n=this.S[e],this.S[e]=this.S[i],this.S[i]=n;this.i=0,this.j=0},r.prototype.next=function(){var t;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,t=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=t,this.S[t+this.S[this.i]&255]},r}();function Ht(){return new qt}var bt=256,$,V=null,R;if(V==null){V=[],R=0;var J=void 0;if(typeof window<"u"&&window.crypto&&window.crypto.getRandomValues){var rt=new Uint32Array(256);for(window.crypto.getRandomValues(rt),J=0;J<rt.length;++J)V[R++]=rt[J]&255}var Y=0,X=function(r){if(Y=Y||0,Y>=256||R>=bt){window.removeEventListener?window.removeEventListener("mousemove",X,!1):window.detachEvent&&window.detachEvent("onmousemove",X);return}try{var t=r.x+r.y;V[R++]=t&255,Y+=1}catch{}};typeof window<"u"&&(window.addEventListener?window.addEventListener("mousemove",X,!1):window.attachEvent&&window.attachEvent("onmousemove",X))}function _t(){if($==null){for($=Ht();R<bt;){var r=Math.floor(65536*Math.random());V[R++]=r&255}for($.init(V),R=0;R<V.length;++R)V[R]=0;R=0}return $.next()}var ot=function(){function r(){}return r.prototype.nextBytes=function(t){for(var e=0;e<t.length;++e)t[e]=_t()},r}();function Ct(r,t){if(t<r.length+22)return console.error("Message too long for RSA"),null;for(var e=t-r.length-6,i="",n=0;n<e;n+=2)i+="ff";var s="0001"+i+"00"+r;return S(s,16)}function Ft(r,t){if(t<r.length+11)return console.error("Message too long for RSA"),null;for(var e=[],i=r.length-1;i>=0&&t>0;){var n=r.charCodeAt(i--);n<128?e[--t]=n:n>127&&n<2048?(e[--t]=n&63|128,e[--t]=n>>6|192):(e[--t]=n&63|128,e[--t]=n>>6&63|128,e[--t]=n>>12|224)}e[--t]=0;for(var s=new ot,h=[];t>2;){for(h[0]=0;h[0]==0;)s.nextBytes(h);e[--t]=h[0]}return e[--t]=2,e[--t]=0,new c(e)}var Lt=function(){function r(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}return r.prototype.doPublic=function(t){return t.modPowInt(this.e,this.n)},r.prototype.doPrivate=function(t){if(this.p==null||this.q==null)return t.modPow(this.d,this.n);for(var e=t.mod(this.p).modPow(this.dmp1,this.p),i=t.mod(this.q).modPow(this.dmq1,this.q);e.compareTo(i)<0;)e=e.add(this.p);return e.subtract(i).multiply(this.coeff).mod(this.p).multiply(this.q).add(i)},r.prototype.setPublic=function(t,e){t!=null&&e!=null&&t.length>0&&e.length>0?(this.n=S(t,16),this.e=parseInt(e,16)):console.error("Invalid RSA public key")},r.prototype.encrypt=function(t){var e=this.n.bitLength()+7>>3,i=Ft(t,e);if(i==null)return null;var n=this.doPublic(i);if(n==null)return null;for(var s=n.toString(16),h=s.length,o=0;o<e*2-h;o++)s="0"+s;return s},r.prototype.setPrivate=function(t,e,i){t!=null&&e!=null&&t.length>0&&e.length>0?(this.n=S(t,16),this.e=parseInt(e,16),this.d=S(i,16)):console.error("Invalid RSA private key")},r.prototype.setPrivateEx=function(t,e,i,n,s,h,o,f){t!=null&&e!=null&&t.length>0&&e.length>0?(this.n=S(t,16),this.e=parseInt(e,16),this.d=S(i,16),this.p=S(n,16),this.q=S(s,16),this.dmp1=S(h,16),this.dmq1=S(o,16),this.coeff=S(f,16)):console.error("Invalid RSA private key")},r.prototype.generate=function(t,e){var i=new ot,n=t>>1;this.e=parseInt(e,16);for(var s=new c(e,16);;){for(;this.p=new c(t-n,1,i),!(this.p.subtract(c.ONE).gcd(s).compareTo(c.ONE)==0&&this.p.isProbablePrime(10)););for(;this.q=new c(n,1,i),!(this.q.subtract(c.ONE).gcd(s).compareTo(c.ONE)==0&&this.q.isProbablePrime(10)););if(this.p.compareTo(this.q)<=0){var h=this.p;this.p=this.q,this.q=h}var o=this.p.subtract(c.ONE),f=this.q.subtract(c.ONE),u=o.multiply(f);if(u.gcd(s).compareTo(c.ONE)==0){this.n=this.p.multiply(this.q),this.d=s.modInverse(u),this.dmp1=this.d.mod(o),this.dmq1=this.d.mod(f),this.coeff=this.q.modInverse(this.p);break}}},r.prototype.decrypt=function(t){var e=S(t,16),i=this.doPrivate(e);return i==null?null:Kt(i,this.n.bitLength()+7>>3)},r.prototype.generateAsync=function(t,e,i){var n=new ot,s=t>>1;this.e=parseInt(e,16);var h=new c(e,16),o=this,f=function(){var u=function(){if(o.p.compareTo(o.q)<=0){var d=o.p;o.p=o.q,o.q=d}var y=o.p.subtract(c.ONE),T=o.q.subtract(c.ONE),b=y.multiply(T);b.gcd(h).compareTo(c.ONE)==0?(o.n=o.p.multiply(o.q),o.d=h.modInverse(b),o.dmp1=o.d.mod(y),o.dmq1=o.d.mod(T),o.coeff=o.q.modInverse(o.p),setTimeout(function(){i()},0)):setTimeout(f,0)},l=function(){o.q=p(),o.q.fromNumberAsync(s,1,n,function(){o.q.subtract(c.ONE).gcda(h,function(d){d.compareTo(c.ONE)==0&&o.q.isProbablePrime(10)?setTimeout(u,0):setTimeout(l,0)})})},g=function(){o.p=p(),o.p.fromNumberAsync(t-s,1,n,function(){o.p.subtract(c.ONE).gcda(h,function(d){d.compareTo(c.ONE)==0&&o.p.isProbablePrime(10)?setTimeout(l,0):setTimeout(g,0)})})};setTimeout(g,0)};setTimeout(f,0)},r.prototype.sign=function(t,e,i){var n=Ut(i),s=n+e(t).toString(),h=Ct(s,this.n.bitLength()/4);if(h==null)return null;var o=this.doPrivate(h);if(o==null)return null;var f=o.toString(16);return f.length&1?"0"+f:f},r.prototype.verify=function(t,e,i){var n=S(e,16),s=this.doPublic(n);if(s==null)return null;var h=s.toString(16).replace(/^1f+00/,""),o=jt(h);return o==i(t).toString()},r}();function Kt(r,t){for(var e=r.toByteArray(),i=0;i<e.length&&e[i]==0;)++i;if(e.length-i!=t-1||e[i]!=2)return null;for(++i;e[i]!=0;)if(++i>=e.length)return null;for(var n="";++i<e.length;){var s=e[i]&255;s<128?n+=String.fromCharCode(s):s>191&&s<224?(n+=String.fromCharCode((s&31)<<6|e[i+1]&63),++i):(n+=String.fromCharCode((s&15)<<12|(e[i+1]&63)<<6|e[i+2]&63),i+=2)}return n}var Q={md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",ripemd160:"3021300906052b2403020105000414"};function Ut(r){return Q[r]||""}function jt(r){for(var t in Q)if(Q.hasOwnProperty(t)){var e=Q[t],i=e.length;if(r.substr(0,i)==e)return r.substr(i)}return r}/*!
|
||
Copyright (c) 2011, Yahoo! Inc. All rights reserved.
|
||
Code licensed under the BSD License:
|
||
http://developer.yahoo.com/yui/license.html
|
||
version: 2.9.0
|
||
*/var m={};m.lang={extend:function(r,t,e){if(!t||!r)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var i=function(){};if(i.prototype=t.prototype,r.prototype=new i,r.prototype.constructor=r,r.superclass=t.prototype,t.prototype.constructor==Object.prototype.constructor&&(t.prototype.constructor=t),e){var n;for(n in e)r.prototype[n]=e[n];var s=function(){},h=["toString","valueOf"];try{/MSIE/.test(navigator.userAgent)&&(s=function(o,f){for(n=0;n<h.length;n=n+1){var u=h[n],l=f[u];typeof l=="function"&&l!=Object.prototype[u]&&(o[u]=l)}})}catch{}s(r.prototype,e)}}};/**
|
||
* @fileOverview
|
||
* @name asn1-1.0.js
|
||
* @author Kenji Urushima kenji.urushima@gmail.com
|
||
* @version asn1 1.0.13 (2017-Jun-02)
|
||
* @since jsrsasign 2.1
|
||
* @license <a href="https://kjur.github.io/jsrsasign/license/">MIT License</a>
|
||
*/var a={};(typeof a.asn1>"u"||!a.asn1)&&(a.asn1={});a.asn1.ASN1Util=new function(){this.integerToByteHex=function(r){var t=r.toString(16);return t.length%2==1&&(t="0"+t),t},this.bigIntToMinTwosComplementsHex=function(r){var t=r.toString(16);if(t.substr(0,1)!="-")t.length%2==1?t="0"+t:t.match(/^[0-7]/)||(t="00"+t);else{var e=t.substr(1),i=e.length;i%2==1?i+=1:t.match(/^[0-7]/)||(i+=2);for(var n="",s=0;s<i;s++)n+="f";var h=new c(n,16),o=h.xor(r).add(c.ONE);t=o.toString(16).replace(/^-/,"")}return t},this.getPEMStringFromHex=function(r,t){return hextopem(r,t)},this.newObject=function(r){var t=a,e=t.asn1,i=e.DERBoolean,n=e.DERInteger,s=e.DERBitString,h=e.DEROctetString,o=e.DERNull,f=e.DERObjectIdentifier,u=e.DEREnumerated,l=e.DERUTF8String,g=e.DERNumericString,d=e.DERPrintableString,y=e.DERTeletexString,T=e.DERIA5String,b=e.DERUTCTime,E=e.DERGeneralizedTime,M=e.DERSequence,B=e.DERSet,q=e.DERTaggedObject,k=e.ASN1Util.newObject,ft=Object.keys(r);if(ft.length!=1)throw"key of param shall be only one.";var v=ft[0];if(":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:".indexOf(":"+v+":")==-1)throw"undefined key: "+v;if(v=="bool")return new i(r[v]);if(v=="int")return new n(r[v]);if(v=="bitstr")return new s(r[v]);if(v=="octstr")return new h(r[v]);if(v=="null")return new o(r[v]);if(v=="oid")return new f(r[v]);if(v=="enum")return new u(r[v]);if(v=="utf8str")return new l(r[v]);if(v=="numstr")return new g(r[v]);if(v=="prnstr")return new d(r[v]);if(v=="telstr")return new y(r[v]);if(v=="ia5str")return new T(r[v]);if(v=="utctime")return new b(r[v]);if(v=="gentime")return new E(r[v]);if(v=="seq"){for(var K=r[v],U=[],N=0;N<K.length;N++){var et=k(K[N]);U.push(et)}return new M({array:U})}if(v=="set"){for(var K=r[v],U=[],N=0;N<K.length;N++){var et=k(K[N]);U.push(et)}return new B({array:U})}if(v=="tag"){var x=r[v];if(Object.prototype.toString.call(x)==="[object Array]"&&x.length==3){var wt=k(x[2]);return new q({tag:x[0],explicit:x[1],obj:wt})}else{var z={};if(x.explicit!==void 0&&(z.explicit=x.explicit),x.tag!==void 0&&(z.tag=x.tag),x.obj===void 0)throw"obj shall be specified for 'tag'.";return z.obj=k(x.obj),new q(z)}}},this.jsonToASN1HEX=function(r){var t=this.newObject(r);return t.getEncodedHex()}};a.asn1.ASN1Util.oidHexToInt=function(r){for(var n="",t=parseInt(r.substr(0,2),16),e=Math.floor(t/40),i=t%40,n=e+"."+i,s="",h=2;h<r.length;h+=2){var o=parseInt(r.substr(h,2),16),f=("00000000"+o.toString(2)).slice(-8);if(s=s+f.substr(1,7),f.substr(0,1)=="0"){var u=new c(s,2);n=n+"."+u.toString(10),s=""}}return n};a.asn1.ASN1Util.oidIntToHex=function(r){var t=function(o){var f=o.toString(16);return f.length==1&&(f="0"+f),f},e=function(o){var f="",u=new c(o,10),l=u.toString(2),g=7-l.length%7;g==7&&(g=0);for(var d="",y=0;y<g;y++)d+="0";l=d+l;for(var y=0;y<l.length-1;y+=7){var T=l.substr(y,7);y!=l.length-7&&(T="1"+T),f+=t(parseInt(T,2))}return f};if(!r.match(/^[0-9.]+$/))throw"malformed oid string: "+r;var i="",n=r.split("."),s=parseInt(n[0])*40+parseInt(n[1]);i+=t(s),n.splice(0,2);for(var h=0;h<n.length;h++)i+=e(n[h]);return i};a.asn1.ASN1Object=function(){var r="";this.getLengthHexFromValue=function(){if(typeof this.hV>"u"||this.hV==null)throw"this.hV is null or undefined.";if(this.hV.length%2==1)throw"value hex must be even length: n="+r.length+",v="+this.hV;var t=this.hV.length/2,e=t.toString(16);if(e.length%2==1&&(e="0"+e),t<128)return e;var i=e.length/2;if(i>15)throw"ASN.1 length too long to represent by 8x: n = "+t.toString(16);var n=128+i;return n.toString(16)+e},this.getEncodedHex=function(){return(this.hTLV==null||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""}};a.asn1.DERAbstractString=function(r){a.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(this.s)},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},typeof r<"u"&&(typeof r=="string"?this.setString(r):typeof r.str<"u"?this.setString(r.str):typeof r.hex<"u"&&this.setStringHex(r.hex))};m.lang.extend(a.asn1.DERAbstractString,a.asn1.ASN1Object);a.asn1.DERAbstractTime=function(r){a.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(t){utc=t.getTime()+t.getTimezoneOffset()*6e4;var e=new Date(utc);return e},this.formatDate=function(t,e,i){var n=this.zeroPadding,s=this.localDateToUTC(t),h=String(s.getFullYear());e=="utc"&&(h=h.substr(2,2));var o=n(String(s.getMonth()+1),2),f=n(String(s.getDate()),2),u=n(String(s.getHours()),2),l=n(String(s.getMinutes()),2),g=n(String(s.getSeconds()),2),d=h+o+f+u+l+g;if(i===!0){var y=s.getMilliseconds();if(y!=0){var T=n(String(y),3);T=T.replace(/[0]+$/,""),d=d+"."+T}}return d+"Z"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join("0")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=stohex(t)},this.setByDateValue=function(t,e,i,n,s,h){var o=new Date(Date.UTC(t,e-1,i,n,s,h,0));this.setByDate(o)},this.getFreshValueHex=function(){return this.hV}};m.lang.extend(a.asn1.DERAbstractTime,a.asn1.ASN1Object);a.asn1.DERAbstractStructured=function(r){a.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,typeof r<"u"&&typeof r.array<"u"&&(this.asn1Array=r.array)};m.lang.extend(a.asn1.DERAbstractStructured,a.asn1.ASN1Object);a.asn1.DERBoolean=function(){a.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV="0101ff"};m.lang.extend(a.asn1.DERBoolean,a.asn1.ASN1Object);a.asn1.DERInteger=function(r){a.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=a.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new c(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},typeof r<"u"&&(typeof r.bigint<"u"?this.setByBigInteger(r.bigint):typeof r.int<"u"?this.setByInteger(r.int):typeof r=="number"?this.setByInteger(r):typeof r.hex<"u"&&this.setValueHex(r.hex))};m.lang.extend(a.asn1.DERInteger,a.asn1.ASN1Object);a.asn1.DERBitString=function(r){if(r!==void 0&&typeof r.obj<"u"){var t=a.asn1.ASN1Util.newObject(r.obj);r.hex="00"+t.getEncodedHex()}a.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(e){this.hTLV=null,this.isModified=!0,this.hV=e},this.setUnusedBitsAndHexValue=function(e,i){if(e<0||7<e)throw"unused bits shall be from 0 to 7: u = "+e;var n="0"+e;this.hTLV=null,this.isModified=!0,this.hV=n+i},this.setByBinaryString=function(e){e=e.replace(/0+$/,"");var i=8-e.length%8;i==8&&(i=0);for(var n=0;n<=i;n++)e+="0";for(var s="",n=0;n<e.length-1;n+=8){var h=e.substr(n,8),o=parseInt(h,2).toString(16);o.length==1&&(o="0"+o),s+=o}this.hTLV=null,this.isModified=!0,this.hV="0"+i+s},this.setByBooleanArray=function(e){for(var i="",n=0;n<e.length;n++)e[n]==!0?i+="1":i+="0";this.setByBinaryString(i)},this.newFalseArray=function(e){for(var i=new Array(e),n=0;n<e;n++)i[n]=!1;return i},this.getFreshValueHex=function(){return this.hV},typeof r<"u"&&(typeof r=="string"&&r.toLowerCase().match(/^[0-9a-f]+$/)?this.setHexValueIncludingUnusedBits(r):typeof r.hex<"u"?this.setHexValueIncludingUnusedBits(r.hex):typeof r.bin<"u"?this.setByBinaryString(r.bin):typeof r.array<"u"&&this.setByBooleanArray(r.array))};m.lang.extend(a.asn1.DERBitString,a.asn1.ASN1Object);a.asn1.DEROctetString=function(r){if(r!==void 0&&typeof r.obj<"u"){var t=a.asn1.ASN1Util.newObject(r.obj);r.hex=t.getEncodedHex()}a.asn1.DEROctetString.superclass.constructor.call(this,r),this.hT="04"};m.lang.extend(a.asn1.DEROctetString,a.asn1.DERAbstractString);a.asn1.DERNull=function(){a.asn1.DERNull.superclass.constructor.call(this),this.hT="05",this.hTLV="0500"};m.lang.extend(a.asn1.DERNull,a.asn1.ASN1Object);a.asn1.DERObjectIdentifier=function(r){var t=function(i){var n=i.toString(16);return n.length==1&&(n="0"+n),n},e=function(i){var n="",s=new c(i,10),h=s.toString(2),o=7-h.length%7;o==7&&(o=0);for(var f="",u=0;u<o;u++)f+="0";h=f+h;for(var u=0;u<h.length-1;u+=7){var l=h.substr(u,7);u!=h.length-7&&(l="1"+l),n+=t(parseInt(l,2))}return n};a.asn1.DERObjectIdentifier.superclass.constructor.call(this),this.hT="06",this.setValueHex=function(i){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=i},this.setValueOidString=function(i){if(!i.match(/^[0-9.]+$/))throw"malformed oid string: "+i;var n="",s=i.split("."),h=parseInt(s[0])*40+parseInt(s[1]);n+=t(h),s.splice(0,2);for(var o=0;o<s.length;o++)n+=e(s[o]);this.hTLV=null,this.isModified=!0,this.s=null,this.hV=n},this.setValueName=function(i){var n=a.asn1.x509.OID.name2oid(i);if(n!=="")this.setValueOidString(n);else throw"DERObjectIdentifier oidName undefined: "+i},this.getFreshValueHex=function(){return this.hV},r!==void 0&&(typeof r=="string"?r.match(/^[0-2].[0-9.]+$/)?this.setValueOidString(r):this.setValueName(r):r.oid!==void 0?this.setValueOidString(r.oid):r.hex!==void 0?this.setValueHex(r.hex):r.name!==void 0&&this.setValueName(r.name))};m.lang.extend(a.asn1.DERObjectIdentifier,a.asn1.ASN1Object);a.asn1.DEREnumerated=function(r){a.asn1.DEREnumerated.superclass.constructor.call(this),this.hT="0a",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=a.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new c(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},typeof r<"u"&&(typeof r.int<"u"?this.setByInteger(r.int):typeof r=="number"?this.setByInteger(r):typeof r.hex<"u"&&this.setValueHex(r.hex))};m.lang.extend(a.asn1.DEREnumerated,a.asn1.ASN1Object);a.asn1.DERUTF8String=function(r){a.asn1.DERUTF8String.superclass.constructor.call(this,r),this.hT="0c"};m.lang.extend(a.asn1.DERUTF8String,a.asn1.DERAbstractString);a.asn1.DERNumericString=function(r){a.asn1.DERNumericString.superclass.constructor.call(this,r),this.hT="12"};m.lang.extend(a.asn1.DERNumericString,a.asn1.DERAbstractString);a.asn1.DERPrintableString=function(r){a.asn1.DERPrintableString.superclass.constructor.call(this,r),this.hT="13"};m.lang.extend(a.asn1.DERPrintableString,a.asn1.DERAbstractString);a.asn1.DERTeletexString=function(r){a.asn1.DERTeletexString.superclass.constructor.call(this,r),this.hT="14"};m.lang.extend(a.asn1.DERTeletexString,a.asn1.DERAbstractString);a.asn1.DERIA5String=function(r){a.asn1.DERIA5String.superclass.constructor.call(this,r),this.hT="16"};m.lang.extend(a.asn1.DERIA5String,a.asn1.DERAbstractString);a.asn1.DERUTCTime=function(r){a.asn1.DERUTCTime.superclass.constructor.call(this,r),this.hT="17",this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return typeof this.date>"u"&&typeof this.s>"u"&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)),this.hV},r!==void 0&&(r.str!==void 0?this.setString(r.str):typeof r=="string"&&r.match(/^[0-9]{12}Z$/)?this.setString(r):r.hex!==void 0?this.setStringHex(r.hex):r.date!==void 0&&this.setByDate(r.date))};m.lang.extend(a.asn1.DERUTCTime,a.asn1.DERAbstractTime);a.asn1.DERGeneralizedTime=function(r){a.asn1.DERGeneralizedTime.superclass.constructor.call(this,r),this.hT="18",this.withMillis=!1,this.setByDate=function(t){this.hTLV=null,this.isModified=!0,this.date=t,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return this.date===void 0&&this.s===void 0&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)),this.hV},r!==void 0&&(r.str!==void 0?this.setString(r.str):typeof r=="string"&&r.match(/^[0-9]{14}Z$/)?this.setString(r):r.hex!==void 0?this.setStringHex(r.hex):r.date!==void 0&&this.setByDate(r.date),r.millis===!0&&(this.withMillis=!0))};m.lang.extend(a.asn1.DERGeneralizedTime,a.asn1.DERAbstractTime);a.asn1.DERSequence=function(r){a.asn1.DERSequence.superclass.constructor.call(this,r),this.hT="30",this.getFreshValueHex=function(){for(var t="",e=0;e<this.asn1Array.length;e++){var i=this.asn1Array[e];t+=i.getEncodedHex()}return this.hV=t,this.hV}};m.lang.extend(a.asn1.DERSequence,a.asn1.DERAbstractStructured);a.asn1.DERSet=function(r){a.asn1.DERSet.superclass.constructor.call(this,r),this.hT="31",this.sortFlag=!0,this.getFreshValueHex=function(){for(var t=new Array,e=0;e<this.asn1Array.length;e++){var i=this.asn1Array[e];t.push(i.getEncodedHex())}return this.sortFlag==!0&&t.sort(),this.hV=t.join(""),this.hV},typeof r<"u"&&typeof r.sortflag<"u"&&r.sortflag==!1&&(this.sortFlag=!1)};m.lang.extend(a.asn1.DERSet,a.asn1.DERAbstractStructured);a.asn1.DERTaggedObject=function(r){a.asn1.DERTaggedObject.superclass.constructor.call(this),this.hT="a0",this.hV="",this.isExplicit=!0,this.asn1Object=null,this.setASN1Object=function(t,e,i){this.hT=e,this.isExplicit=t,this.asn1Object=i,this.isExplicit?(this.hV=this.asn1Object.getEncodedHex(),this.hTLV=null,this.isModified=!0):(this.hV=null,this.hTLV=i.getEncodedHex(),this.hTLV=this.hTLV.replace(/^../,e),this.isModified=!1)},this.getFreshValueHex=function(){return this.hV},typeof r<"u"&&(typeof r.tag<"u"&&(this.hT=r.tag),typeof r.explicit<"u"&&(this.isExplicit=r.explicit),typeof r.obj<"u"&&(this.asn1Object=r.obj,this.setASN1Object(this.isExplicit,this.hT,this.asn1Object)))};m.lang.extend(a.asn1.DERTaggedObject,a.asn1.ASN1Object);var kt=function(){var r=function(t,e){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(t,e)};return function(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");r(t,e);function i(){this.constructor=t}t.prototype=e===null?Object.create(e):(i.prototype=e.prototype,new i)}}(),St=function(r){kt(t,r);function t(e){var i=r.call(this)||this;return e&&(typeof e=="string"?i.parseKey(e):(t.hasPrivateKeyProperty(e)||t.hasPublicKeyProperty(e))&&i.parsePropertiesFrom(e)),i}return t.prototype.parseKey=function(e){try{var i=0,n=0,s=/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/,h=s.test(e)?Bt.decode(e):st.unarmor(e),o=Vt.decode(h);if(o.sub.length===3&&(o=o.sub[2].sub[0]),o.sub.length===9){i=o.sub[1].getHexStringValue(),this.n=S(i,16),n=o.sub[2].getHexStringValue(),this.e=parseInt(n,16);var f=o.sub[3].getHexStringValue();this.d=S(f,16);var u=o.sub[4].getHexStringValue();this.p=S(u,16);var l=o.sub[5].getHexStringValue();this.q=S(l,16);var g=o.sub[6].getHexStringValue();this.dmp1=S(g,16);var d=o.sub[7].getHexStringValue();this.dmq1=S(d,16);var y=o.sub[8].getHexStringValue();this.coeff=S(y,16)}else if(o.sub.length===2)if(o.sub[0].sub){var T=o.sub[1],b=T.sub[0];i=b.sub[0].getHexStringValue(),this.n=S(i,16),n=b.sub[1].getHexStringValue(),this.e=parseInt(n,16)}else i=o.sub[0].getHexStringValue(),this.n=S(i,16),n=o.sub[1].getHexStringValue(),this.e=parseInt(n,16);else return!1;return!0}catch{return!1}},t.prototype.getPrivateBaseKey=function(){var e={array:[new a.asn1.DERInteger({int:0}),new a.asn1.DERInteger({bigint:this.n}),new a.asn1.DERInteger({int:this.e}),new a.asn1.DERInteger({bigint:this.d}),new a.asn1.DERInteger({bigint:this.p}),new a.asn1.DERInteger({bigint:this.q}),new a.asn1.DERInteger({bigint:this.dmp1}),new a.asn1.DERInteger({bigint:this.dmq1}),new a.asn1.DERInteger({bigint:this.coeff})]},i=new a.asn1.DERSequence(e);return i.getEncodedHex()},t.prototype.getPrivateBaseKeyB64=function(){return W(this.getPrivateBaseKey())},t.prototype.getPublicBaseKey=function(){var e=new a.asn1.DERSequence({array:[new a.asn1.DERObjectIdentifier({oid:"1.2.840.113549.1.1.1"}),new a.asn1.DERNull]}),i=new a.asn1.DERSequence({array:[new a.asn1.DERInteger({bigint:this.n}),new a.asn1.DERInteger({int:this.e})]}),n=new a.asn1.DERBitString({hex:"00"+i.getEncodedHex()}),s=new a.asn1.DERSequence({array:[e,n]});return s.getEncodedHex()},t.prototype.getPublicBaseKeyB64=function(){return W(this.getPublicBaseKey())},t.wordwrap=function(e,i){if(i=i||64,!e)return e;var n="(.{1,"+i+`})( +|$
|
||
?)|(.{1,`+i+"})";return e.match(RegExp(n,"g")).join(`
|
||
`)},t.prototype.getPrivateKey=function(){var e=`-----BEGIN RSA PRIVATE KEY-----
|
||
`;return e+=t.wordwrap(this.getPrivateBaseKeyB64())+`
|
||
`,e+="-----END RSA PRIVATE KEY-----",e},t.prototype.getPublicKey=function(){var e=`-----BEGIN PUBLIC KEY-----
|
||
`;return e+=t.wordwrap(this.getPublicBaseKeyB64())+`
|
||
`,e+="-----END PUBLIC KEY-----",e},t.hasPublicKeyProperty=function(e){return e=e||{},e.hasOwnProperty("n")&&e.hasOwnProperty("e")},t.hasPrivateKeyProperty=function(e){return e=e||{},e.hasOwnProperty("n")&&e.hasOwnProperty("e")&&e.hasOwnProperty("d")&&e.hasOwnProperty("p")&&e.hasOwnProperty("q")&&e.hasOwnProperty("dmp1")&&e.hasOwnProperty("dmq1")&&e.hasOwnProperty("coeff")},t.prototype.parsePropertiesFrom=function(e){this.n=e.n,this.e=e.e,e.hasOwnProperty("d")&&(this.d=e.d,this.p=e.p,this.q=e.q,this.dmp1=e.dmp1,this.dmq1=e.dmq1,this.coeff=e.coeff)},t}(Lt),zt={},nt,Zt=typeof process<"u"?(nt=zt)===null||nt===void 0?void 0:nt.npm_package_version:void 0,Gt=function(){function r(t){t===void 0&&(t={}),t=t||{},this.default_key_size=t.default_key_size?parseInt(t.default_key_size,10):1024,this.default_public_exponent=t.default_public_exponent||"010001",this.log=t.log||!1,this.key=null}return r.prototype.setKey=function(t){this.log&&this.key&&console.warn("A key was already set, overriding existing."),this.key=new St(t)},r.prototype.setPrivateKey=function(t){this.setKey(t)},r.prototype.setPublicKey=function(t){this.setKey(t)},r.prototype.decrypt=function(t){try{return this.getKey().decrypt(lt(t))}catch{return!1}},r.prototype.encrypt=function(t){try{return W(this.getKey().encrypt(t))}catch{return!1}},r.prototype.sign=function(t,e,i){try{return W(this.getKey().sign(t,e,i))}catch{return!1}},r.prototype.verify=function(t,e,i){try{return this.getKey().verify(t,lt(e),i)}catch{return!1}},r.prototype.getKey=function(t){if(!this.key){if(this.key=new St,t&&{}.toString.call(t)==="[object Function]"){this.key.generateAsync(this.default_key_size,this.default_public_exponent,t);return}this.key.generate(this.default_key_size,this.default_public_exponent)}return this.key},r.prototype.getPrivateKey=function(){return this.getKey().getPrivateKey()},r.prototype.getPrivateKeyB64=function(){return this.getKey().getPrivateBaseKeyB64()},r.prototype.getPublicKey=function(){return this.getKey().getPublicKey()},r.prototype.getPublicKeyB64=function(){return this.getKey().getPublicBaseKeyB64()},r.version=Zt,r}();export{Gt as J};
|