diff --git a/package-lock.json b/package-lock.json index cb00c5608..37bec855d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -677,9 +677,9 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, - "node_modules/@noble/hashes": { + "node_modules/hashes-grs": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/hashes-grs/-/hashes-1.2.0.tgz", "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", "funding": [ { @@ -1199,7 +1199,7 @@ "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", "dev": true, "dependencies": { - "@noble/hashes": "^1.2.0" + "hashes-grs": "^1.2.0" } }, "node_modules/bip65": { @@ -4931,10 +4931,11 @@ "@jridgewell/sourcemap-codec": "1.4.14" } }, - "@noble/hashes": { + "hashes-grs": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", - "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==" + "resolved": "https://registry.npmjs.org/hashes-grs/-/hashes-1.2.0.tgz", + "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", + "dev": true }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -5289,7 +5290,7 @@ "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", "dev": true, "requires": { - "@noble/hashes": "^1.2.0" + "hashes-grs": "^1.2.0" } }, "bip65": { diff --git a/package.json b/package.json index 9f263f471..7832a356f 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "src" ], "dependencies": { - "@noble/hashes": "^1.2.0", + "hashes-grs": "^1.2.0", "bech32": "^2.0.0", "bip174": "^2.1.1", "bs58grscheck": "^3.0.1", diff --git a/src/crypto.js b/src/crypto.js index af1224d25..bc3463422 100644 --- a/src/crypto.js +++ b/src/crypto.js @@ -3,15 +3,18 @@ Object.defineProperty(exports, '__esModule', { value: true }); exports.taggedHash = exports.TAGGED_HASH_PREFIXES = exports.TAGS = + exports.groestl = exports.hash256 = exports.hash160 = exports.sha256 = exports.sha1 = exports.ripemd160 = void 0; -const ripemd160_1 = require('@noble/hashes/ripemd160'); -const sha1_1 = require('@noble/hashes/sha1'); -const sha256_1 = require('@noble/hashes/sha256'); +const ripemd160_1 = require('hashes-grs/ripemd160'); +const sha1_1 = require('hashes-grs/sha1'); +const sha256_1 = require('hashes-grs/sha256'); +const groestl512_1 = require('hashes-grs/groestl512'); +const groestl256_1 = require('hashes-grs/groestl256'); function ripemd160(buffer) { return Buffer.from((0, ripemd160_1.ripemd160)(Uint8Array.from(buffer))); } @@ -36,6 +39,12 @@ function hash256(buffer) { ); } exports.hash256 = hash256; +function groestl(buffer) { + return Buffer.from( + (0, groestl256_1.groestl256)((0, groestl512_1.groestl512)(buffer)), + ); +} +exports.groestl = groestl; exports.TAGS = [ 'BIP0340/challenge', 'BIP0340/aux', diff --git a/ts_src/crypto.ts b/ts_src/crypto.ts index e2b83e9d9..c42ce70c7 100644 --- a/ts_src/crypto.ts +++ b/ts_src/crypto.ts @@ -1,6 +1,8 @@ -import { ripemd160 as _ripemd160 } from '@noble/hashes/ripemd160'; -import { sha1 as _sha1 } from '@noble/hashes/sha1'; -import { sha256 as _sha256 } from '@noble/hashes/sha256'; +import { ripemd160 as _ripemd160 } from 'hashes-grs/ripemd160'; +import { sha1 as _sha1 } from 'hashes-grs/sha1'; +import { sha256 as _sha256 } from 'hashes-grs/sha256'; +import { groestl512, groestl512 as _groest512 } from 'hashes-grs/groestl512'; +import { groestl256 as _groest256 } from 'hashes-grs/groestl256'; export function ripemd160(buffer: Buffer): Buffer { return Buffer.from(_ripemd160(Uint8Array.from(buffer))); @@ -23,7 +25,7 @@ export function hash256(buffer: Buffer): Buffer { } export function groestl(buffer: Buffer): Buffer { - return new Buffer(groestlhash.groestl_2(buffer, 1, 1)); + return Buffer.from(_groest256(groestl512(buffer))); } export const TAGS = [