Astroport.ONE/www/crypto.mjs

4 lines
65 KiB
JavaScript
Raw Normal View History

2022-12-31 03:40:41 +01:00
var Qt=function(){for(var t=0,r=0,e=arguments.length;r<e;r++)t+=arguments[r].length;for(var f=Array(t),n=0,r=0;r<e;r++)for(var x=arguments[r],o=0,s=x.length;o<s;o++,n++)f[n]=x[o];return f};function Jt(t,r,e){var f=e===void 0?{}:e,n=f.N,x=n===void 0?16384:n,o=f.logN,s=f.r,a=s===void 0?8:s,b=f.p,d=b===void 0?1:b,S=f.dkLen,p=S===void 0?32:S,g=f.interruptStep,B=g===void 0?0:g,I=f.encoding;return new Promise(function(O,P){if(!o&&!x)return P(new Error("scrypt: missing N or logN parameter"));if(o||o===0){if(o<1||o>31)return P(new Error("scrypt: logN must be between 1 and 31"));x=1<<o>>>0}else{if(x<2||x>cf)return P(new Error("scrypt: N is out of range"));if((x&x-1)!==0)return P(Error("scrypt: N is not a power of 2"))}if(d<1)return P(new Error("scrypt: invalid p"));if(a<1)return P(new Error("scrypt: invalid r"));kt({password:t,salt:r,N:x,r:a,p:d,dkLen:p,interruptStep:B,encoding:I},O)})}function kt(t,r){var e=t.password,f=t.salt,n=t.N,x=t.r,o=t.p,s=t.dkLen,a=t.interruptStep,b=t.encoding;function d(c){var i=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],y=1779033703,l=3144134277,N=1013904242,z=2773480762,X=1359893119,m=2600822924,W=528734635,V=1541459225,Q=new Array(64);function f0(L0){for(var J0=0,A=L0.length;A>=64;){var d0=y,w0=l,v0=N,R0=z,a0=X,E0=m,A0=W,I0=V,s0=void 0,e0=void 0,p0=void 0,g0=void 0,F0=void 0;for(e0=0;e0<16;e0++)p0=J0+e0*4,Q[e0]=(L0[p0]&255)<<24|(L0[p0+1]&255)<<16|(L0[p0+2]&255)<<8|L0[p0+3]&255;for(e0=16;e0<64;e0++)s0=Q[e0-2],g0=(s0>>>17|s0<<32-17)^(s0>>>19|s0<<32-19)^s0>>>10,s0=Q[e0-15],F0=(s0>>>7|s0<<32-7)^(s0>>>18|s0<<32-18)^s0>>>3,Q[e0]=(g0+Q[e0-7]|0)+(F0+Q[e0-16]|0)|0;for(e0=0;e0<64;e0++)g0=(((a0>>>6|a0<<32-6)^(a0>>>11|a0<<32-11)^(a0>>>25|a0<<32-25))+(a0&E0^~a0&A0)|0)+(I0+(i[e0]+Q[e0]|0)|0)|0,F0=((d0>>>2|d0<<32-2)^(d0>>>13|d0<<32-13)^(d0>>>22|d0<<32-22))+(d0&w0^d0&v0^w0&v0)|0,I0=A0,A0=E0,E0=a0,a0=R0+g0|0,R0=v0,v0=w0,w0=d0,d0=g0+F0|0;y=y+d0|0,l=l+w0|0,N=N+v0|0,z=z+R0|0,X=X+a0|0,m=m+E0|0,W=W+A0|0,V=V+I0|0,J0+=64,A-=64}}f0(c);var k,r0=c.length%64,n0=c.length/536870912|0,x0=c.length<<3,i0=r0<56?56:120,y0=c.slice(c.length-r0,c.length);for(y0.push(128),k=r0+1;k<i0;k++)y0.push(0);return y0.push(n0>>>24&255),y0.push(n0>>>16&255),y0.push(n0>>>8&255),y0.push(n0>>>0&255),y0.push(x0>>>24&255),y0.push(x0>>>16&255),y0.push(x0>>>8&255),y0.push(x0>>>0&255),f0(y0),[y>>>24&255,y>>>16&255,y>>>8&255,y>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255,N>>>24&255,N>>>16&255,N>>>8&255,N>>>0&255,z>>>24&255,z>>>16&255,z>>>8&255,z>>>0&255,X>>>24&255,X>>>16&255,X>>>8&255,X>>>0&255,m>>>24&255,m>>>16&255,m>>>8&255,m>>>0&255,W>>>24&255,W>>>16&255,W>>>8&255,W>>>0&255,V>>>24&255,V>>>16&255,V>>>8&255,V>>>0&255]}function S(c,i,y){c.length>64&&(c=d(c.push?c:Qt(c)));var l,N=64+i.length+4,z=new Array(N),X=new Array(64),m=[];for(l=0;l<64;l++)z[l]=54;for(l=0;l<c.length;l++)z[l]^=c[l];for(l=0;l<i.length;l++)z[64+l]=i[l];for(l=N-4;l<N;l++)z[l]=0;for(l=0;l<64;l++)X[l]=92;for(l=0;l<c.length;l++)X[l]^=c[l];function W(){for(var V=N-1;V>=N-4;V--){if(z[V]++,z[V]<=255)return;z[V]=0}}for(;y>=32;)W(),m=m.concat(d(X.concat(d(z)))),y-=32;return y>0&&(W(),m=m.concat(d(X.concat(d(z))).slice(0,y))),m}function p(c,i,y,l){var N=c[0]^i[y++],z=c[1]^i[y++],X=c[2]^i[y++],m=c[3]^i[y++],W=c[4]^i[y++],V=c[5]^i[y++],Q=c[6]^i[y++],f0=c[7]^i[y++],k=c[8]^i[y++],r0=c[9]^i[y++],n0=c[10]^i[y++],x0=c[11]^i[y++],i0=c[12]^i[y++],y0=c[13]^i[y++],L0=c[14]^i[y++],J0=c[15]^i[y++],A,d0,w0=N,v0=z,R0=X,a0=m,E0=W,A0=V,I0=Q,s0=f0,e0=k,p0=r0,g0=n0,F0=x0,C0=i0,
`,r);return`${t.trim()}
${e}`}function $t(t,r,e="b64"){const f=new TextEncoder,n=Dr(f.encode(t),Kr(r).slice(0,32));switch(e.toLocaleLowerCase()){case"raw":case"array":case"uint8array":return n;case"b64":return xt.encode(n);case"b58":return b0.encode(n);default:throw new Error(`OutputFormat ${e} not handled.`)}}function Dr(t,r){const e=ct(r);return Z.sign.detached(t,e.secretKey)}const Hr=24,mr=32;function Xr(t,r){return typeof t=="string"?r(t):t}function Vr(t){const r=new TextEncoder;return typeof t=="string"?r.encode(t):t}function qr(t){return Xr(t,b0.decode)}function Gr(t){return new TextDecoder().decode(t)}function jf(t){return qr(t).slice(0,mr)}function re(t,r,e,f=0,n=""){const x=n?b0.decode(n):Z.randomBytes(Hr),o=Ht(of(e)),s=mt(jf(r)),a=p=>xt.encode(Z.box(Vr(p),x,o,s)),b=b0.encode(ct(jf(r)).publicKey),d=f||Math.trunc(Date.now()/1e3),S={nonce:b0.encode(x),issuer:b,recipient:e,time:d,version:2};return t.title&&(S.title=a(t.title)),t.content&&(S.content=a(t.content)),S.hash=dr.encode(Cf.digest(JSON.stringify(S))).toUpperCase(),S.signature=$t(S.hash,r),S}function ee(t,r){const e=b0.decode(t.nonce),f=mt(jf(r)),n=Ht(of(t.issuer)),x=s=>Gr(Z.box.open(xt.decode(s),e,n,f)),o={};return t.content&&(o.content=x(t.content)),t.title&&(o.title=x(t.title)),o}class O0 extends Error{constructor(r,e){super(e),this.name=r}}export{b0 as b58,qr as b58orBin2bin,Bt as b58pubKey2bin,Kr as b58secretKey2bin,xt as b64,Gr as bin2str,jr as checkDuniterPubKey,Wt as checkEd25519PubKey,Zr as checkKey,$r as idSecPass2cleanKeys,Pr as idSecPass2rawAll,Jr as isDuniterPubKey,kr as isEd25519PubKey,fe as isPubKey,Wr as mockRandom,Cr as onlyPubKey,of as pubKey2bin,M0 as pubKey2checksum,Qr as pubKey2shortKey,Yr as raw2b58,Dr as rawSign,Or as saltPass2seed,ct as seed2keyPair,Zf as sha256,$t as sign,te as signDocument,Lr as sliceInitialsZero,Vr as strOrBin2bin,ee as textDecrypt,re as textEncrypt,Xr as typedStrOrBin2Bin};