@gjsify/crypto 0.4.27 → 0.4.29

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.
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";const e=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),t=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),n=[1,2,4,8,16,32,64,128,27,54];function gmul(e,t){let n=0;for(let r=0;r<8;r++){t&1&&(n^=e);let r=e&128;e=e<<1&255,r&&(e^=27),t>>=1}return n}function keyExpansion(t){let r=t.length/4,i=r+6,a=4*(i+1),o=Array(a);for(let e=0;e<r;e++)o[e]=new Uint8Array([t[4*e],t[4*e+1],t[4*e+2],t[4*e+3]]);for(let t=r;t<a;t++){let i=new Uint8Array(o[t-1]);t%r===0?i=new Uint8Array([e[i[1]]^n[t/r-1],e[i[2]],e[i[3]],e[i[0]]]):r>6&&t%r===4&&(i=new Uint8Array([e[i[0]],e[i[1]],e[i[2]],e[i[3]]])),o[t]=new Uint8Array(4);for(let e=0;e<4;e++)o[t][e]=o[t-r][e]^i[e]}let s=[];for(let e=0;e<=i;e++){let t=new Uint8Array(16);for(let n=0;n<4;n++)t[4*n]=o[4*e+n][0],t[4*n+1]=o[4*e+n][1],t[4*n+2]=o[4*e+n][2],t[4*n+3]=o[4*e+n][3];s.push(t)}return s}function aesEncryptBlock(t,n){let r=new Uint8Array(t),i=n.length-1;for(let e=0;e<16;e++)r[e]^=n[0][e];for(let t=1;t<i;t++){for(let t=0;t<16;t++)r[t]=e[r[t]];let i=r[1];r[1]=r[5],r[5]=r[9],r[9]=r[13],r[13]=i;let a=r[2],o=r[6];r[2]=r[10],r[6]=r[14],r[10]=a,r[14]=o;let s=r[15];r[15]=r[11],r[11]=r[7],r[7]=r[3],r[3]=s;for(let e=0;e<4;e++){let t=e*4,n=r[t],i=r[t+1],a=r[t+2],o=r[t+3];r[t]=gmul(2,n)^gmul(3,i)^a^o,r[t+1]=n^gmul(2,i)^gmul(3,a)^o,r[t+2]=n^i^gmul(2,a)^gmul(3,o),r[t+3]=gmul(3,n)^i^a^gmul(2,o)}for(let e=0;e<16;e++)r[e]^=n[t][e]}for(let t=0;t<16;t++)r[t]=e[r[t]];let a=r[1];r[1]=r[5],r[5]=r[9],r[9]=r[13],r[13]=a;let o=r[2],s=r[6];r[2]=r[10],r[6]=r[14],r[10]=o,r[14]=s;let c=r[15];r[15]=r[11],r[11]=r[7],r[7]=r[3],r[3]=c;for(let e=0;e<16;e++)r[e]^=n[i][e];return r}function aesDecryptBlock(e,n){let r=new Uint8Array(e),i=n.length-1;for(let e=0;e<16;e++)r[e]^=n[i][e];for(let e=i-1;e>0;e--){let i=r[13];r[13]=r[9],r[9]=r[5],r[5]=r[1],r[1]=i;let a=r[10],o=r[14];r[10]=r[2],r[14]=r[6],r[2]=a,r[6]=o;let s=r[3];r[3]=r[7],r[7]=r[11],r[11]=r[15],r[15]=s;for(let e=0;e<16;e++)r[e]=t[r[e]];for(let t=0;t<16;t++)r[t]^=n[e][t];for(let e=0;e<4;e++){let t=e*4,n=r[t],i=r[t+1],a=r[t+2],o=r[t+3];r[t]=gmul(14,n)^gmul(11,i)^gmul(13,a)^gmul(9,o),r[t+1]=gmul(9,n)^gmul(14,i)^gmul(11,a)^gmul(13,o),r[t+2]=gmul(13,n)^gmul(9,i)^gmul(14,a)^gmul(11,o),r[t+3]=gmul(11,n)^gmul(13,i)^gmul(9,a)^gmul(14,o)}}let a=r[13];r[13]=r[9],r[9]=r[5],r[5]=r[1],r[1]=a;let o=r[10],s=r[14];r[10]=r[2],r[14]=r[6],r[2]=o,r[6]=s;let c=r[3];r[3]=r[7],r[7]=r[11],r[11]=r[15],r[15]=c;for(let e=0;e<16;e++)r[e]=t[r[e]];for(let e=0;e<16;e++)r[e]^=n[0][e];return r}function incrementCounter(e){for(let t=15;t>=0&&++e[t]===0;t--);}function gcmIncrementCounter(e){for(let t=15;t>=12&&++e[t]===0;t--);}function gfMul(e,t){let n=new Uint8Array(16),r=new Uint8Array(e);for(let e=0;e<128;e++){if(t[e>>>3]&1<<7-(e&7))for(let e=0;e<16;e++)n[e]^=r[e];let i=r[15]&1;for(let e=15;e>0;e--)r[e]=r[e]>>>1|(r[e-1]&1)<<7;r[0]>>>=1,i&&(r[0]^=225)}return n}function ghash(e,t,n){let r=new Uint8Array(16),i=Math.ceil(t.length/16)||0;for(let n=0;n<i;n++){let i=n*16,a=Math.min(i+16,t.length);for(let e=0;e<16;e++){let n=i+e;n<a&&(r[e]^=t[n])}let o=gfMul(r,e);r.set(o)}let a=Math.ceil(n.length/16)||0;for(let t=0;t<a;t++){let i=t*16,a=Math.min(i+16,n.length);for(let e=0;e<16;e++){let t=i+e;t<a&&(r[e]^=n[t])}let o=gfMul(r,e);r.set(o)}let o=new Uint8Array(16),s=t.length*8,c=n.length*8,l=Math.floor(s/4294967296),u=s>>>0;o[0]=l>>>24&255,o[1]=l>>>16&255,o[2]=l>>>8&255,o[3]=l&255,o[4]=u>>>24&255,o[5]=u>>>16&255,o[6]=u>>>8&255,o[7]=u&255;let d=Math.floor(c/4294967296),f=c>>>0;o[8]=d>>>24&255,o[9]=d>>>16&255,o[10]=d>>>8&255,o[11]=d&255,o[12]=f>>>24&255,o[13]=f>>>16&255,o[14]=f>>>8&255,o[15]=f&255;for(let e=0;e<16;e++)r[e]^=o[e];let p=gfMul(r,e);return r.set(p),r}export{aesDecryptBlock,aesEncryptBlock,gcmIncrementCounter,ghash,incrementCounter,keyExpansion};
1
+ import"./_virtual/_rolldown/runtime.js";const e=new Uint8Array([99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22]),t=new Uint8Array([82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125]),n=[1,2,4,8,16,32,64,128,27,54];function gmul(e,t){let n=0;for(let r=0;r<8;r++){t&1&&(n^=e);let r=e&128;e=e<<1&255,r&&(e^=27),t>>=1}return n}function keyExpansion(t){let r=t.length/4,i=r+6,a=4*(i+1),o=Array.from({length:a});for(let e=0;e<r;e++)o[e]=new Uint8Array([t[4*e],t[4*e+1],t[4*e+2],t[4*e+3]]);for(let t=r;t<a;t++){let i=new Uint8Array(o[t-1]);t%r===0?i=new Uint8Array([e[i[1]]^n[t/r-1],e[i[2]],e[i[3]],e[i[0]]]):r>6&&t%r===4&&(i=new Uint8Array([e[i[0]],e[i[1]],e[i[2]],e[i[3]]])),o[t]=new Uint8Array(4);for(let e=0;e<4;e++)o[t][e]=o[t-r][e]^i[e]}let s=[];for(let e=0;e<=i;e++){let t=new Uint8Array(16);for(let n=0;n<4;n++)t[4*n]=o[4*e+n][0],t[4*n+1]=o[4*e+n][1],t[4*n+2]=o[4*e+n][2],t[4*n+3]=o[4*e+n][3];s.push(t)}return s}function aesEncryptBlock(t,n){let r=new Uint8Array(t),i=n.length-1;for(let e=0;e<16;e++)r[e]^=n[0][e];for(let t=1;t<i;t++){for(let t=0;t<16;t++)r[t]=e[r[t]];let i=r[1];r[1]=r[5],r[5]=r[9],r[9]=r[13],r[13]=i;let a=r[2],o=r[6];r[2]=r[10],r[6]=r[14],r[10]=a,r[14]=o;let s=r[15];r[15]=r[11],r[11]=r[7],r[7]=r[3],r[3]=s;for(let e=0;e<4;e++){let t=e*4,n=r[t],i=r[t+1],a=r[t+2],o=r[t+3];r[t]=gmul(2,n)^gmul(3,i)^a^o,r[t+1]=n^gmul(2,i)^gmul(3,a)^o,r[t+2]=n^i^gmul(2,a)^gmul(3,o),r[t+3]=gmul(3,n)^i^a^gmul(2,o)}for(let e=0;e<16;e++)r[e]^=n[t][e]}for(let t=0;t<16;t++)r[t]=e[r[t]];let a=r[1];r[1]=r[5],r[5]=r[9],r[9]=r[13],r[13]=a;let o=r[2],s=r[6];r[2]=r[10],r[6]=r[14],r[10]=o,r[14]=s;let c=r[15];r[15]=r[11],r[11]=r[7],r[7]=r[3],r[3]=c;for(let e=0;e<16;e++)r[e]^=n[i][e];return r}function aesDecryptBlock(e,n){let r=new Uint8Array(e),i=n.length-1;for(let e=0;e<16;e++)r[e]^=n[i][e];for(let e=i-1;e>0;e--){let i=r[13];r[13]=r[9],r[9]=r[5],r[5]=r[1],r[1]=i;let a=r[10],o=r[14];r[10]=r[2],r[14]=r[6],r[2]=a,r[6]=o;let s=r[3];r[3]=r[7],r[7]=r[11],r[11]=r[15],r[15]=s;for(let e=0;e<16;e++)r[e]=t[r[e]];for(let t=0;t<16;t++)r[t]^=n[e][t];for(let e=0;e<4;e++){let t=e*4,n=r[t],i=r[t+1],a=r[t+2],o=r[t+3];r[t]=gmul(14,n)^gmul(11,i)^gmul(13,a)^gmul(9,o),r[t+1]=gmul(9,n)^gmul(14,i)^gmul(11,a)^gmul(13,o),r[t+2]=gmul(13,n)^gmul(9,i)^gmul(14,a)^gmul(11,o),r[t+3]=gmul(11,n)^gmul(13,i)^gmul(9,a)^gmul(14,o)}}let a=r[13];r[13]=r[9],r[9]=r[5],r[5]=r[1],r[1]=a;let o=r[10],s=r[14];r[10]=r[2],r[14]=r[6],r[2]=o,r[6]=s;let c=r[3];r[3]=r[7],r[7]=r[11],r[11]=r[15],r[15]=c;for(let e=0;e<16;e++)r[e]=t[r[e]];for(let e=0;e<16;e++)r[e]^=n[0][e];return r}function incrementCounter(e){for(let t=15;t>=0&&++e[t]===0;t--);}function gcmIncrementCounter(e){for(let t=15;t>=12&&++e[t]===0;t--);}function gfMul(e,t){let n=new Uint8Array(16),r=new Uint8Array(e);for(let e=0;e<128;e++){if(t[e>>>3]&1<<7-(e&7))for(let e=0;e<16;e++)n[e]^=r[e];let i=r[15]&1;for(let e=15;e>0;e--)r[e]=r[e]>>>1|(r[e-1]&1)<<7;r[0]>>>=1,i&&(r[0]^=225)}return n}function ghash(e,t,n){let r=new Uint8Array(16),i=Math.ceil(t.length/16)||0;for(let n=0;n<i;n++){let i=n*16,a=Math.min(i+16,t.length);for(let e=0;e<16;e++){let n=i+e;n<a&&(r[e]^=t[n])}let o=gfMul(r,e);r.set(o)}let a=Math.ceil(n.length/16)||0;for(let t=0;t<a;t++){let i=t*16,a=Math.min(i+16,n.length);for(let e=0;e<16;e++){let t=i+e;t<a&&(r[e]^=n[t])}let o=gfMul(r,e);r.set(o)}let o=new Uint8Array(16),s=t.length*8,c=n.length*8,l=Math.floor(s/4294967296),u=s>>>0;o[0]=l>>>24&255,o[1]=l>>>16&255,o[2]=l>>>8&255,o[3]=l&255,o[4]=u>>>24&255,o[5]=u>>>16&255,o[6]=u>>>8&255,o[7]=u&255;let d=Math.floor(c/4294967296),f=c>>>0;o[8]=d>>>24&255,o[9]=d>>>16&255,o[10]=d>>>8&255,o[11]=d&255,o[12]=f>>>24&255,o[13]=f>>>16&255,o[14]=f>>>8&255,o[15]=f&255;for(let e=0;e<16;e++)r[e]^=o[e];let p=gfMul(r,e);return r.set(p),r}export{aesDecryptBlock,aesEncryptBlock,gcmIncrementCounter,ghash,incrementCounter,keyExpansion};
package/lib/esm/mgf1.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{hashSize as e}from"./crypto-utils.js";import{Hash as t}from"./hash.js";function mgf1(n,r,i){e(n);let a=new Uint8Array(i),o=0,s=0;for(;o<i;){let e=new Uint8Array(4);e[0]=s>>>24&255,e[1]=s>>>16&255,e[2]=s>>>8&255,e[3]=s&255;let c=new t(n);c.update(r),c.update(e);let l=new Uint8Array(c.digest()),u=Math.min(l.length,i-o);a.set(l.slice(0,u),o),o+=u,s++}return a}export{mgf1};
1
+ import"./_virtual/_rolldown/runtime.js";import{Hash as e}from"./hash.js";function mgf1(t,n,r){let i=new Uint8Array(r),a=0,o=0;for(;a<r;){let s=new Uint8Array(4);s[0]=o>>>24&255,s[1]=o>>>16&255,s[2]=o>>>8&255,s[3]=o&255;let c=new e(t);c.update(n),c.update(s);let l=new Uint8Array(c.digest()),u=Math.min(l.length,r-a);i.set(l.slice(0,u),a),a+=u,o++}return i}export{mgf1};
package/lib/esm/pbkdf2.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{DIGEST_SIZES as e,SUPPORTED_ALGORITHMS as t,normalizeAlgorithm as n,toBuffer as r}from"./crypto-utils.js";import{Hmac as i}from"./hmac.js";import{Buffer as a}from"node:buffer";function hmacDigest(e,t,n){let r=new i(e,t);return r.update(n),r.digest()}function validateParameters(e,t){if(typeof e!=`number`||e<0||!Number.isFinite(e)||e===0)throw TypeError(`iterations must be a positive number`);if(typeof t!=`number`||t<0||!Number.isFinite(t)||t>2147483647)throw TypeError(`keylen must be a positive number`)}function pbkdf2Sync(i,o,s,c,l){validateParameters(s,c);let u=r(i),d=r(o),f=n(l||`sha1`),p=e[f];if(!t.has(f)||p===void 0)throw TypeError(`Unknown message digest: ${l||`sha1`}`);if(c===0)return a.alloc(0);let m=Math.ceil(c/p),h=a.allocUnsafe(m*p);for(let e=1;e<=m;e++){let t=a.allocUnsafe(d.length+4);d.copy(t,0),t.writeUInt32BE(e,d.length);let n=hmacDigest(f,u,t),r=a.from(n);for(let e=1;e<s;e++){n=hmacDigest(f,u,n);for(let e=0;e<p;e++)r[e]^=n[e]}r.copy(h,(e-1)*p)}return a.from(h.buffer,h.byteOffset,c)}function pbkdf2(e,t,n,r,i,a){try{validateParameters(n,r)}catch(e){throw e}setTimeout(()=>{try{a(null,pbkdf2Sync(e,t,n,r,i))}catch(e){a(e instanceof Error?e:Error(String(e)))}},0)}export{pbkdf2,pbkdf2Sync};
1
+ import"./_virtual/_rolldown/runtime.js";import{DIGEST_SIZES as e,SUPPORTED_ALGORITHMS as t,normalizeAlgorithm as n,toBuffer as r}from"./crypto-utils.js";import{Hmac as i}from"./hmac.js";import{Buffer as a}from"node:buffer";function hmacDigest(e,t,n){let r=new i(e,t);return r.update(n),r.digest()}function validateParameters(e,t){if(typeof e!=`number`||e<0||!Number.isFinite(e)||e===0)throw TypeError(`iterations must be a positive number`);if(typeof t!=`number`||t<0||!Number.isFinite(t)||t>2147483647)throw TypeError(`keylen must be a positive number`)}function pbkdf2Sync(i,o,s,c,l){validateParameters(s,c);let u=r(i),d=r(o),f=n(l||`sha1`),p=e[f];if(!t.has(f)||p===void 0)throw TypeError(`Unknown message digest: ${l||`sha1`}`);if(c===0)return a.alloc(0);let m=Math.ceil(c/p),h=a.allocUnsafe(m*p);for(let e=1;e<=m;e++){let t=a.allocUnsafe(d.length+4);d.copy(t,0),t.writeUInt32BE(e,d.length);let n=hmacDigest(f,u,t),r=a.from(n);for(let e=1;e<s;e++){n=hmacDigest(f,u,n);for(let e=0;e<p;e++)r[e]^=n[e]}r.copy(h,(e-1)*p)}return a.from(h.buffer,h.byteOffset,c)}function pbkdf2(e,t,n,r,i,a){validateParameters(n,r),setTimeout(()=>{try{a(null,pbkdf2Sync(e,t,n,r,i))}catch(e){a(e instanceof Error?e:Error(String(e)))}},0)}export{pbkdf2,pbkdf2Sync};
package/lib/esm/scrypt.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{pbkdf2Sync as e}from"./pbkdf2.js";import{Buffer as t}from"node:buffer";function R(e,t){return(e<<t|e>>>32-t)>>>0}function salsa20_8(e){let t=new Uint32Array(16);for(let n=0;n<16;n++)t[n]=e[n];for(let e=0;e<4;e++)t[4]^=R(t[0]+t[12],7),t[8]^=R(t[4]+t[0],9),t[12]^=R(t[8]+t[4],13),t[0]^=R(t[12]+t[8],18),t[9]^=R(t[5]+t[1],7),t[13]^=R(t[9]+t[5],9),t[1]^=R(t[13]+t[9],13),t[5]^=R(t[1]+t[13],18),t[14]^=R(t[10]+t[6],7),t[2]^=R(t[14]+t[10],9),t[6]^=R(t[2]+t[14],13),t[10]^=R(t[6]+t[2],18),t[3]^=R(t[15]+t[11],7),t[7]^=R(t[3]+t[15],9),t[11]^=R(t[7]+t[3],13),t[15]^=R(t[11]+t[7],18),t[1]^=R(t[0]+t[3],7),t[2]^=R(t[1]+t[0],9),t[3]^=R(t[2]+t[1],13),t[0]^=R(t[3]+t[2],18),t[6]^=R(t[5]+t[4],7),t[7]^=R(t[6]+t[5],9),t[4]^=R(t[7]+t[6],13),t[5]^=R(t[4]+t[7],18),t[11]^=R(t[10]+t[9],7),t[8]^=R(t[11]+t[10],9),t[9]^=R(t[8]+t[11],13),t[10]^=R(t[9]+t[8],18),t[12]^=R(t[15]+t[14],7),t[13]^=R(t[12]+t[15],9),t[14]^=R(t[13]+t[12],13),t[15]^=R(t[14]+t[13],18);for(let n=0;n<16;n++)e[n]=e[n]+t[n]>>>0}function blockMix(e,t){let n=2*t*16,r=new Uint32Array(16);for(let t=0;t<16;t++)r[t]=e[n-16+t];let i=new Uint32Array(n);for(let n=0;n<2*t;n++){for(let t=0;t<16;t++)r[t]^=e[n*16+t];salsa20_8(r);for(let e=0;e<16;e++)i[n*16+e]=r[e]}for(let n=0;n<t;n++)for(let t=0;t<16;t++)e[n*16+t]=i[2*n*16+t];for(let n=0;n<t;n++)for(let r=0;r<16;r++)e[(t+n)*16+r]=i[(2*n+1)*16+r]}function roMix(e,t,n){let r=2*n*16,i=Array(t);for(let r=0;r<t;r++)i[r]=new Uint32Array(e),blockMix(e,n);for(let a=0;a<t;a++){let a=e[r-16]&t-1;for(let t=0;t<r;t++)e[t]^=i[a][t];blockMix(e,n)}}function bytesToWords(e){let t=new Uint32Array(e.length/4);for(let n=0;n<t.length;n++)t[n]=e[n*4]|e[n*4+1]<<8|e[n*4+2]<<16|e[n*4+3]<<24;return t}function wordsToBytes(e){let t=new Uint8Array(e.length*4);for(let n=0;n<e.length;n++)t[n*4]=e[n]&255,t[n*4+1]=e[n]>>8&255,t[n*4+2]=e[n]>>16&255,t[n*4+3]=e[n]>>24&255;return t}function scryptCore(t,n,r,i,a,o){let s=128*i,c=e(t,n,1,a*s,`sha256`);for(let e=0;e<a;e++){let t=new Uint8Array(c.buffer,c.byteOffset+e*s,s),n=bytesToWords(t);roMix(n,r,i);let a=wordsToBytes(n);t.set(a)}return e(t,c,1,o,`sha256`)}function scryptSync(e,n,r,i){let a=t.from(e),o=t.from(n),s=i?.N??16384,c=i?.r??8,l=i?.p??1;if(s<=0||s&s-1)throw Error(`N must be a positive power of 2`);return scryptCore(a,o,s,c,l,r)}function scrypt(e,n,r,i,a){let o={},s;typeof i==`function`?s=i:(o=i,s=a);try{let t=scryptSync(e,n,r,o);setTimeout(()=>s(null,t),0)}catch(e){setTimeout(()=>s(e instanceof Error?e:Error(String(e)),t.alloc(0)),0)}}export{scrypt,scryptSync};
1
+ import"./_virtual/_rolldown/runtime.js";import{pbkdf2Sync as e}from"./pbkdf2.js";import{Buffer as t}from"node:buffer";function R(e,t){return(e<<t|e>>>32-t)>>>0}function salsa20_8(e){let t=new Uint32Array(16);for(let n=0;n<16;n++)t[n]=e[n];for(let e=0;e<4;e++)t[4]^=R(t[0]+t[12],7),t[8]^=R(t[4]+t[0],9),t[12]^=R(t[8]+t[4],13),t[0]^=R(t[12]+t[8],18),t[9]^=R(t[5]+t[1],7),t[13]^=R(t[9]+t[5],9),t[1]^=R(t[13]+t[9],13),t[5]^=R(t[1]+t[13],18),t[14]^=R(t[10]+t[6],7),t[2]^=R(t[14]+t[10],9),t[6]^=R(t[2]+t[14],13),t[10]^=R(t[6]+t[2],18),t[3]^=R(t[15]+t[11],7),t[7]^=R(t[3]+t[15],9),t[11]^=R(t[7]+t[3],13),t[15]^=R(t[11]+t[7],18),t[1]^=R(t[0]+t[3],7),t[2]^=R(t[1]+t[0],9),t[3]^=R(t[2]+t[1],13),t[0]^=R(t[3]+t[2],18),t[6]^=R(t[5]+t[4],7),t[7]^=R(t[6]+t[5],9),t[4]^=R(t[7]+t[6],13),t[5]^=R(t[4]+t[7],18),t[11]^=R(t[10]+t[9],7),t[8]^=R(t[11]+t[10],9),t[9]^=R(t[8]+t[11],13),t[10]^=R(t[9]+t[8],18),t[12]^=R(t[15]+t[14],7),t[13]^=R(t[12]+t[15],9),t[14]^=R(t[13]+t[12],13),t[15]^=R(t[14]+t[13],18);for(let n=0;n<16;n++)e[n]=e[n]+t[n]>>>0}function blockMix(e,t){let n=2*t*16,r=new Uint32Array(16);for(let t=0;t<16;t++)r[t]=e[n-16+t];let i=new Uint32Array(n);for(let n=0;n<2*t;n++){for(let t=0;t<16;t++)r[t]^=e[n*16+t];salsa20_8(r);for(let e=0;e<16;e++)i[n*16+e]=r[e]}for(let n=0;n<t;n++)for(let t=0;t<16;t++)e[n*16+t]=i[2*n*16+t];for(let n=0;n<t;n++)for(let r=0;r<16;r++)e[(t+n)*16+r]=i[(2*n+1)*16+r]}function roMix(e,t,n){let r=2*n*16,i=Array.from({length:t});for(let r=0;r<t;r++)i[r]=new Uint32Array(e),blockMix(e,n);for(let a=0;a<t;a++){let a=e[r-16]&t-1;for(let t=0;t<r;t++)e[t]^=i[a][t];blockMix(e,n)}}function bytesToWords(e){let t=new Uint32Array(e.length/4);for(let n=0;n<t.length;n++)t[n]=e[n*4]|e[n*4+1]<<8|e[n*4+2]<<16|e[n*4+3]<<24;return t}function wordsToBytes(e){let t=new Uint8Array(e.length*4);for(let n=0;n<e.length;n++)t[n*4]=e[n]&255,t[n*4+1]=e[n]>>8&255,t[n*4+2]=e[n]>>16&255,t[n*4+3]=e[n]>>24&255;return t}function scryptCore(t,n,r,i,a,o){let s=128*i,c=e(t,n,1,a*s,`sha256`);for(let e=0;e<a;e++){let t=new Uint8Array(c.buffer,c.byteOffset+e*s,s),n=bytesToWords(t);roMix(n,r,i);let a=wordsToBytes(n);t.set(a)}return e(t,c,1,o,`sha256`)}function scryptSync(e,n,r,i){let a=t.from(e),o=t.from(n),s=i?.N??16384,c=i?.r??8,l=i?.p??1;if(s<=0||s&s-1)throw Error(`N must be a positive power of 2`);return scryptCore(a,o,s,c,l,r)}function scrypt(e,n,r,i,a){let o={},s;typeof i==`function`?s=i:(o=i,s=a);try{let t=scryptSync(e,n,r,o);setTimeout(()=>s(null,t),0)}catch(e){setTimeout(()=>s(e instanceof Error?e:Error(String(e)),t.alloc(0)),0)}}export{scrypt,scryptSync};
package/lib/esm/sign.js CHANGED
@@ -1 +1 @@
1
- import"./_virtual/_rolldown/runtime.js";import{parsePemKey as e,rsaKeySize as t}from"./asn1.js";import{bigIntToBytes as n,bytesToBigInt as r,modPow as i}from"./bigint-math.js";import{Hash as a}from"./hash.js";import{Buffer as o}from"node:buffer";const s={sha1:new Uint8Array([48,33,48,9,6,5,43,14,3,2,26,5,0,4,20]),sha256:new Uint8Array([48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32]),sha512:new Uint8Array([48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64])};function normalizeSignAlgorithm(e){let t=e.toLowerCase().replace(/-/g,``);if(t.startsWith(`rsa`)&&(t=t.slice(3)),!s[t])throw Error(`Unsupported algorithm: ${e}. Supported: RSA-SHA1, RSA-SHA256, RSA-SHA512`);return t}function extractPem(e){if(typeof e==`string`)return e;if(o.isBuffer(e)||e instanceof Uint8Array)return o.from(e).toString(`utf8`);if(e&&typeof e==`object`&&`key`in e){let t=e.key;if(typeof t==`string`)return t;if(o.isBuffer(t)||t instanceof Uint8Array)return o.from(t).toString(`utf8`)}throw TypeError(`Invalid key argument`)}var Sign=class{_algorithm;_hash;_finalized=!1;constructor(e){this._algorithm=normalizeSignAlgorithm(e),this._hash=new a(this._algorithm)}update(e,t){if(this._finalized)throw Error(`Sign was already finalized`);return this._hash.update(e,t),this}sign(a,c){if(this._finalized)throw Error(`Sign was already finalized`);this._finalized=!0;let l=this._hash.digest(),u=e(extractPem(a));if(u.type!==`rsa-private`)throw Error(`privateKey must be an RSA private key`);let{n:d,e:f,d:p}=u.components,m=t(d),h=s[this._algorithm],g=new Uint8Array(h.length+l.length);g.set(h,0),g.set(l,h.length);let _=m-g.length-3;if(_<8)throw Error(`Key is too short for the specified hash algorithm`);let v=new Uint8Array(m);v[0]=0,v[1]=1;for(let e=2;e<2+_;e++)v[e]=255;v[2+_]=0,v.set(g,3+_);let y=n(i(r(v),p,d),m),b=o.from(y);return c?b.toString(c):b}},Verify=class{_algorithm;_hash;_finalized=!1;constructor(e){this._algorithm=normalizeSignAlgorithm(e),this._hash=new a(this._algorithm)}update(e,t){if(this._finalized)throw Error(`Verify was already finalized`);return this._hash.update(e,t),this}verify(a,c,l){if(this._finalized)throw Error(`Verify was already finalized`);this._finalized=!0;let u=this._hash.digest(),d=e(extractPem(a)),f,p;if(d.type===`rsa-public`)f=d.components.n,p=d.components.e;else if(d.type===`rsa-private`)f=d.components.n,p=d.components.e;else throw Error(`publicKey must be an RSA public or private key`);let m=t(f),h;if(h=typeof c==`string`?o.from(c,l||`base64`):c instanceof Uint8Array?c:o.from(c),h.length!==m)return!1;let g=r(h);if(g>=f)return!1;let _=n(i(g,p,f),m);if(_[0]!==0||_[1]!==1)return!1;let v=2;for(;v<_.length&&_[v]===255;)v++;if(v>=_.length||_[v]!==0||v-2<8)return!1;v++;let y=_.slice(v),b=s[this._algorithm],x=new Uint8Array(b.length+u.length);if(x.set(b,0),x.set(u,b.length),y.length!==x.length)return!1;let S=0;for(let e=0;e<y.length;e++)S|=y[e]^x[e];return S===0}};function createSign(e){return new Sign(e)}function createVerify(e){return new Verify(e)}export{Sign,Verify,createSign,createVerify};
1
+ import"./_virtual/_rolldown/runtime.js";import{parsePemKey as e,rsaKeySize as t}from"./asn1.js";import{bigIntToBytes as n,bytesToBigInt as r,modPow as i}from"./bigint-math.js";import{Hash as a}from"./hash.js";import{Buffer as o}from"node:buffer";const s={sha1:new Uint8Array([48,33,48,9,6,5,43,14,3,2,26,5,0,4,20]),sha256:new Uint8Array([48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32]),sha512:new Uint8Array([48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64])};function normalizeSignAlgorithm(e){let t=e.toLowerCase().replace(/-/g,``);if(t.startsWith(`rsa`)&&(t=t.slice(3)),!s[t])throw Error(`Unsupported algorithm: ${e}. Supported: RSA-SHA1, RSA-SHA256, RSA-SHA512`);return t}function extractPem(e){if(typeof e==`string`)return e;if(o.isBuffer(e)||e instanceof Uint8Array)return o.from(e).toString(`utf8`);if(e&&typeof e==`object`&&`key`in e){let t=e.key;if(typeof t==`string`)return t;if(o.isBuffer(t)||t instanceof Uint8Array)return o.from(t).toString(`utf8`)}throw TypeError(`Invalid key argument`)}var Sign=class{_algorithm;_hash;_finalized=!1;constructor(e){this._algorithm=normalizeSignAlgorithm(e),this._hash=new a(this._algorithm)}update(e,t){if(this._finalized)throw Error(`Sign was already finalized`);return this._hash.update(e,t),this}sign(a,c){if(this._finalized)throw Error(`Sign was already finalized`);this._finalized=!0;let l=this._hash.digest(),u=e(extractPem(a));if(u.type!==`rsa-private`)throw Error(`privateKey must be an RSA private key`);let{n:d,d:f}=u.components,p=t(d),m=s[this._algorithm],h=new Uint8Array(m.length+l.length);h.set(m,0),h.set(l,m.length);let g=p-h.length-3;if(g<8)throw Error(`Key is too short for the specified hash algorithm`);let _=new Uint8Array(p);_[0]=0,_[1]=1;for(let e=2;e<2+g;e++)_[e]=255;_[2+g]=0,_.set(h,3+g);let v=n(i(r(_),f,d),p),y=o.from(v);return c?y.toString(c):y}},Verify=class{_algorithm;_hash;_finalized=!1;constructor(e){this._algorithm=normalizeSignAlgorithm(e),this._hash=new a(this._algorithm)}update(e,t){if(this._finalized)throw Error(`Verify was already finalized`);return this._hash.update(e,t),this}verify(a,c,l){if(this._finalized)throw Error(`Verify was already finalized`);this._finalized=!0;let u=this._hash.digest(),d=e(extractPem(a)),f,p;if(d.type===`rsa-public`)f=d.components.n,p=d.components.e;else if(d.type===`rsa-private`)f=d.components.n,p=d.components.e;else throw Error(`publicKey must be an RSA public or private key`);let m=t(f),h;if(h=typeof c==`string`?o.from(c,l||`base64`):c instanceof Uint8Array?c:o.from(c),h.length!==m)return!1;let g=r(h);if(g>=f)return!1;let _=n(i(g,p,f),m);if(_[0]!==0||_[1]!==1)return!1;let v=2;for(;v<_.length&&_[v]===255;)v++;if(v>=_.length||_[v]!==0||v-2<8)return!1;v++;let y=_.slice(v),b=s[this._algorithm],x=new Uint8Array(b.length+u.length);if(x.set(b,0),x.set(u,b.length),y.length!==x.length)return!1;let S=0;for(let e=0;e<y.length;e++)S|=y[e]^x[e];return S===0}};function createSign(e){return new Sign(e)}function createVerify(e){return new Verify(e)}export{Sign,Verify,createSign,createVerify};
@@ -1,6 +1,6 @@
1
1
  export { Hash, getHashes, hash } from './hash.js';
2
2
  export { Hmac } from './hmac.js';
3
- export { randomBytes, randomFill, randomFillSync, randomUUID, randomInt, } from './random.js';
3
+ export { randomBytes, randomFill, randomFillSync, randomUUID, randomInt } from './random.js';
4
4
  export { timingSafeEqual } from './timing-safe-equal.js';
5
5
  export { constants } from './constants.js';
6
6
  export { pbkdf2, pbkdf2Sync } from './pbkdf2.js';
@@ -14,7 +14,7 @@ export declare function createHash(algorithm: string): Hash;
14
14
  export declare function createHmac(algorithm: string, key: string | Buffer | Uint8Array): Hmac;
15
15
  export { createCipher, createCipheriv, createDecipher, createDecipheriv, getCiphers } from './cipher.js';
16
16
  export { Sign, Verify, createSign, createVerify } from './sign.js';
17
- export { createDiffieHellman, getDiffieHellman, DiffieHellman, DiffieHellmanGroup, createDiffieHellmanGroup } from './dh.js';
17
+ export { createDiffieHellman, getDiffieHellman, DiffieHellman, DiffieHellmanGroup, createDiffieHellmanGroup, } from './dh.js';
18
18
  export { createECDH, getCurves } from './ecdh.js';
19
19
  export { ecdsaSign, ecdsaVerify } from './ecdsa.js';
20
20
  export { publicEncrypt, privateDecrypt, privateEncrypt, publicDecrypt } from './public-encrypt.js';
@@ -1,4 +1,4 @@
1
- import { Buffer } from 'node:buffer';
1
+ import type { Buffer } from 'node:buffer';
2
2
  /**
3
3
  * Compare two buffers in constant time to prevent timing attacks.
4
4
  * Both buffers must have the same length.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/crypto",
3
- "version": "0.4.27",
3
+ "version": "0.4.29",
4
4
  "description": "Node.js crypto module for Gjs",
5
5
  "type": "module",
6
6
  "module": "lib/esm/index.js",
@@ -33,16 +33,16 @@
33
33
  "crypto"
34
34
  ],
35
35
  "devDependencies": {
36
- "@gjsify/cli": "^0.4.27",
37
- "@gjsify/unit": "^0.4.27",
36
+ "@gjsify/cli": "^0.4.29",
37
+ "@gjsify/unit": "^0.4.29",
38
38
  "@types/diffie-hellman": "^5.0.3",
39
39
  "@types/node": "^25.9.1",
40
40
  "typescript": "^6.0.3"
41
41
  },
42
42
  "dependencies": {
43
43
  "@girs/glib-2.0": "2.88.0-4.0.1",
44
- "@gjsify/buffer": "^0.4.27",
45
- "@gjsify/stream": "^0.4.27",
46
- "@gjsify/utils": "^0.4.27"
44
+ "@gjsify/buffer": "^0.4.29",
45
+ "@gjsify/stream": "^0.4.29",
46
+ "@gjsify/utils": "^0.4.29"
47
47
  }
48
48
  }