@stryke/hash 0.0.1 → 0.2.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/README.md +1 -1
- package/dist/hash.d.ts +1 -1
- package/dist/sha-256.cjs +28 -28
- package/dist/sha-256.mjs +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/hash.d.ts
CHANGED
package/dist/sha-256.cjs
CHANGED
|
@@ -7,44 +7,44 @@ exports.SHA256 = void 0;
|
|
|
7
7
|
exports.sha256 = sha256;
|
|
8
8
|
exports.sha256base64 = sha256base64;
|
|
9
9
|
var _hasher = require("./hasher.cjs");
|
|
10
|
-
const
|
|
10
|
+
const x = [1779033703, -1150833019, 1013904242, -1521486534, 1359893119, -1694144372, 528734635, 1541459225],
|
|
11
11
|
S = [1116352408, 1899447441, -1245643825, -373957723, 961987163, 1508970993, -1841331548, -1424204075, -670586216, 310598401, 607225278, 1426881987, 1925078388, -2132889090, -1680079193, -1046744716, -459576895, -272742522, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, -1740746414, -1473132947, -1341970488, -1084653625, -958395405, -710438585, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, -2117940946, -1838011259, -1564481375, -1474664885, -1035236496, -949202525, -778901479, -694614492, -200395387, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, -2067236844, -1933114872, -1866530822, -1538233109, -1090935817, -965641998],
|
|
12
|
-
|
|
12
|
+
r = [];
|
|
13
13
|
class SHA256 extends _hasher.Hasher {
|
|
14
|
-
_hash = new _hasher.WordArray([...
|
|
14
|
+
_hash = new _hasher.WordArray([...x]);
|
|
15
15
|
reset() {
|
|
16
|
-
super.reset(), this._hash = new _hasher.WordArray([...
|
|
16
|
+
super.reset(), this._hash = new _hasher.WordArray([...x]);
|
|
17
17
|
}
|
|
18
|
-
_doProcessBlock(
|
|
18
|
+
_doProcessBlock(m, c) {
|
|
19
19
|
const _ = this._hash.words;
|
|
20
20
|
let s = _[0],
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
a = _[1],
|
|
22
|
+
n = _[2],
|
|
23
|
+
g = _[3],
|
|
24
|
+
e = _[4],
|
|
25
|
+
d = _[5],
|
|
26
|
+
l = _[6],
|
|
27
|
+
u = _[7];
|
|
28
28
|
for (let t = 0; t < 64; t++) {
|
|
29
|
-
if (t < 16)
|
|
30
|
-
const o =
|
|
31
|
-
|
|
32
|
-
i =
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
if (t < 16) r[t] = Math.trunc(m[c + t]);else {
|
|
30
|
+
const o = r[t - 15],
|
|
31
|
+
H = (o << 25 | o >>> 7) ^ (o << 14 | o >>> 18) ^ o >>> 3,
|
|
32
|
+
i = r[t - 2],
|
|
33
|
+
M = (i << 15 | i >>> 17) ^ (i << 13 | i >>> 19) ^ i >>> 10;
|
|
34
|
+
r[t] = H + r[t - 7] + M + r[t - 16];
|
|
35
35
|
}
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
f =
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
const p = e & d ^ ~e & l,
|
|
37
|
+
B = s & a ^ s & n ^ a & n,
|
|
38
|
+
b = (s << 30 | s >>> 2) ^ (s << 19 | s >>> 13) ^ (s << 10 | s >>> 22),
|
|
39
|
+
y = (e << 26 | e >>> 6) ^ (e << 21 | e >>> 11) ^ (e << 7 | e >>> 25),
|
|
40
|
+
f = u + y + p + S[t] + r[t],
|
|
41
|
+
z = b + B;
|
|
42
|
+
u = l, l = d, d = e, e = Math.trunc(g + f), g = n, n = a, a = s, s = Math.trunc(f + z);
|
|
43
43
|
}
|
|
44
|
-
_[0] =
|
|
44
|
+
_[0] = _[0] + s | 0, _[1] = _[1] + a | 0, _[2] = _[2] + n | 0, _[3] = _[3] + g | 0, _[4] = _[4] + e | 0, _[5] = _[5] + d | 0, _[6] = _[6] + l | 0, _[7] = _[7] + u | 0;
|
|
45
45
|
}
|
|
46
|
-
finalize(
|
|
47
|
-
super.finalize(
|
|
46
|
+
finalize(m) {
|
|
47
|
+
super.finalize(m);
|
|
48
48
|
const c = this._nDataBytes * 8,
|
|
49
49
|
_ = this._data.sigBytes * 8;
|
|
50
50
|
return this._data.words[_ >>> 5] |= 128 << 24 - _ % 32, this._data.words[(_ + 64 >>> 9 << 4) + 14] = Math.floor(c / 4294967296), this._data.words[(_ + 64 >>> 9 << 4) + 15] = c, this._data.sigBytes = this._data.words.length * 4, this._process(), this._hash;
|
package/dist/sha-256.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Base64 as v,Hasher as A,WordArray as
|
|
1
|
+
import{Base64 as v,Hasher as A,WordArray as w}from"./hasher";const x=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],S=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],r=[];export class SHA256 extends A{_hash=new w([...x]);reset(){super.reset(),this._hash=new w([...x])}_doProcessBlock(m,c){const _=this._hash.words;let s=_[0],a=_[1],n=_[2],g=_[3],e=_[4],d=_[5],l=_[6],u=_[7];for(let t=0;t<64;t++){if(t<16)r[t]=Math.trunc(m[c+t]);else{const o=r[t-15],H=(o<<25|o>>>7)^(o<<14|o>>>18)^o>>>3,i=r[t-2],M=(i<<15|i>>>17)^(i<<13|i>>>19)^i>>>10;r[t]=H+r[t-7]+M+r[t-16]}const p=e&d^~e&l,B=s&a^s&n^a&n,b=(s<<30|s>>>2)^(s<<19|s>>>13)^(s<<10|s>>>22),y=(e<<26|e>>>6)^(e<<21|e>>>11)^(e<<7|e>>>25),f=u+y+p+S[t]+r[t],z=b+B;u=l,l=d,d=e,e=Math.trunc(g+f),g=n,n=a,a=s,s=Math.trunc(f+z)}_[0]=_[0]+s|0,_[1]=_[1]+a|0,_[2]=_[2]+n|0,_[3]=_[3]+g|0,_[4]=_[4]+e|0,_[5]=_[5]+d|0,_[6]=_[6]+l|0,_[7]=_[7]+u|0}finalize(m){super.finalize(m);const c=this._nDataBytes*8,_=this._data.sigBytes*8;return this._data.words[_>>>5]|=128<<24-_%32,this._data.words[(_+64>>>9<<4)+14]=Math.floor(c/4294967296),this._data.words[(_+64>>>9<<4)+15]=c,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}}export function sha256(h){return new SHA256().finalize(h).toString()}export function sha256base64(h){return new SHA256().finalize(h).toString(v)}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stryke/hash",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A package containing utility functions that hash data using various algorithms.",
|
|
6
6
|
"repository": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"directory": "packages/hash"
|
|
10
10
|
},
|
|
11
11
|
"private": false,
|
|
12
|
-
"dependencies": { "js-xxhash": "^4.0.0", "@stryke/types": ">=0.
|
|
12
|
+
"dependencies": { "js-xxhash": "^4.0.0", "@stryke/types": ">=0.1.1" },
|
|
13
13
|
"publishConfig": { "access": "public" },
|
|
14
14
|
"devDependencies": {},
|
|
15
15
|
"sideEffects": false,
|