@bradthomasbrown/keccak 1.0.0 → 1.0.2

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.
@@ -0,0 +1,3 @@
1
+ declare const keccak256: (M: Uint8Array) => Uint8Array;
2
+ export { keccak256 };
3
+ //# sourceMappingURL=keccak256.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keccak256.d.ts","sourceRoot":"","sources":["../../src/concrete/keccak256.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,SAAS,+BAA+B,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { sha_3, keccak_c } from "../keccak.js";
2
+ const keccak256 = sha_3(keccak_c, 512, 0b0, 0);
3
+ export { keccak256 };
package/dist/keccak.d.ts CHANGED
@@ -44,7 +44,7 @@ declare function keccak_c(c: number): (N: Uint8Array, d: number, b: number) => U
44
44
  * @param {b} b - The length of the pre-sponge bit string that will pad input data.
45
45
  * @returns {(M:Uint8Array) => Uint8Array} A function which will permute input data and return output data.
46
46
  */
47
- declare function sha_3(k: (c: number) => (N: Uint8Array, D: number, b: number) => Uint8Array, c: number, n: number, b: number): (M: Uint8Array) => Uint8Array;
47
+ declare function sha_3(k: (c: number) => (N: Uint8Array, D: number, b: number) => Uint8Array, c: number, n: null | number, b: number): (M: Uint8Array) => Uint8Array;
48
48
  /**
49
49
  * A higher order function which applies pre-sponge padding to data, then applies a keccak-c sponge function, then returns variable length output data.
50
50
  * @param {(c:number)=>(N:Uint8Array, D:number, b:number)=>Uint8Array} k - A higher order keccak-c sponge function generator.
@@ -1 +1 @@
1
- {"version":3,"file":"keccak.d.ts","sourceRoot":"","sources":["../src/keccak.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,iBAAS,QAAQ,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAC;IAAE,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,UAAU,CAAC,eAAe,CAAC,CAAA;CAAE,CAAC,CAkKzG;AAED;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAC;IAAE,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,UAAU,CAAC,eAAe,CAAC,CAAA;CAAE,CAAC,CAE/F;AA+ED;;;;;;GAMG;AACH,iBAAS,QAAQ,CAAC,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,KAAK,UAAU,CAE3E;AAED;;;;;;;;GAQG;AACH,iBAAS,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,MAAM,KAAG,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,KAAG,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,EAAC,UAAU,KAAK,UAAU,CAStI;AAED;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,MAAM,KAAG,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,KAAG,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,KAAK,UAAU,CASpJ;AAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"keccak.d.ts","sourceRoot":"","sources":["../src/keccak.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,iBAAS,QAAQ,CAAC,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAC;IAAE,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,UAAU,CAAC,eAAe,CAAC,CAAA;CAAE,CAAC,CAkKzG;AAED;;;;;;;;GAQG;AACH,iBAAS,QAAQ,CAAC,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,MAAM,IAAI,CAAC,GAAC;IAAE,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAC,CAAC,EAAC,UAAU,CAAC,eAAe,CAAC,CAAA;CAAE,CAAC,CAE/F;AA+ED;;;;;;GAMG;AACH,iBAAS,QAAQ,CAAC,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,KAAK,UAAU,CAE3E;AAED;;;;;;;;GAQG;AACH,iBAAS,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,MAAM,KAAG,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,KAAG,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,IAAI,GAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,EAAC,UAAU,KAAK,UAAU,CAS3I;AAED;;;;;;;;;GASG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,MAAM,KAAG,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,KAAG,UAAU,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,MAAM,GAAE,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,MAAM,KAAK,UAAU,CASpJ;AAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}
package/dist/keccak.js CHANGED
@@ -202,12 +202,12 @@ function sponge(f, pad, r) {
202
202
  const D = d >> 3;
203
203
  const R = r >> 3;
204
204
  f.S.fill(0);
205
- const _f9_ = Math.ceil((N.byteLength + 1) / R) * R;
205
+ const _f9_ = Math.ceil((N.byteLength + (b == 0 ? 1 : 0)) / R) * R;
206
206
  const P = new Uint8Array(_f9_);
207
207
  P.set(N);
208
208
  if (pad) {
209
- const _56_ = pad(R, N.byteLength, b);
210
- for (let i = 0, j = N.byteLength - 1; i < _56_.byteLength; i++, j++)
209
+ const _56_ = pad(R, N.byteLength - (b == 0 ? 0 : 1), b);
210
+ for (let i = 0, j = N.byteLength - (b == 0 ? 0 : 1); i < _56_.byteLength; i++, j++)
211
211
  P[j] += _56_[i];
212
212
  }
213
213
  for (let p of _3d403e_(P, R)) {
@@ -236,7 +236,7 @@ function sponge(f, pad, r) {
236
236
  * @returns {Uint8Array} - The padding data to be appended to the message.
237
237
  */
238
238
  function padOneZeroStarOne(X, M, b) {
239
- const _79_ = new Uint8Array(Math.ceil((M + 1) / X) * X - M + 1);
239
+ const _79_ = new Uint8Array(Math.ceil((M + 1) / X) * X - M);
240
240
  _79_[0] += 1 << b;
241
241
  _79_[_79_.byteLength - 1] += 0x80;
242
242
  return _79_;
@@ -263,9 +263,10 @@ function keccak_c(c) {
263
263
  function sha_3(k, c, n, b) {
264
264
  const keccak = k(c);
265
265
  return function (M) {
266
- const _a9_ = new Uint8Array(M.byteLength + 1);
266
+ const _a9_ = new Uint8Array(M.byteLength + (b == 0 ? 0 : 1));
267
267
  _a9_.set(M);
268
- _a9_[_a9_.byteLength - 1] = n;
268
+ if (b !== 0)
269
+ _a9_[_a9_.byteLength - 1] = n;
269
270
  const d = c >> 1;
270
271
  return keccak(_a9_, d, b);
271
272
  };
@@ -283,9 +284,10 @@ function sha_3(k, c, n, b) {
283
284
  function sha_3_xof(k, c, n, b) {
284
285
  const keccak = k(c);
285
286
  return function (M, D) {
286
- const _a9_ = new Uint8Array(M.byteLength + 1);
287
+ const _a9_ = new Uint8Array(M.byteLength + (b == 0 ? 0 : 1));
287
288
  _a9_.set(M);
288
- _a9_[_a9_.byteLength - 1] = n;
289
+ if (b != 0)
290
+ _a9_[_a9_.byteLength - 1] = n;
289
291
  const d = D << 3;
290
292
  return keccak(_a9_, d, b);
291
293
  };
package/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "@bradthomasbrown/keccak",
3
3
  "description": "Minimal, unoptimized, and unaudited keccak and sponge function library in JavaScript/TypeScript.",
4
- "version": "1.0.0",
4
+ "version": "1.0.2",
5
5
  "author": "Brad Brown <https://t.me/bradthomasbrown>",
6
6
  "type": "module",
7
7
  "files": [
8
8
  "dist/"
9
9
  ],
10
10
  "exports": {
11
- ".": "./dist/keccak.js"
11
+ ".": "./dist/keccak.js",
12
+ "./keccak256": "./dist/concrete/keccak256.js"
13
+ },
14
+ "devDependencies": {
15
+ "@types/bun": "^1.3.5"
12
16
  }
13
17
  }