Skip to content

Commit 8c504c4

Browse files
committed
Switch from create-hash, ripemd160 to noble-hashes
1 parent a59eecd commit 8c504c4

File tree

4 files changed

+38
-74
lines changed

4 files changed

+38
-74
lines changed

package-lock.json

Lines changed: 17 additions & 40 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,24 +49,21 @@
4949
"src"
5050
],
5151
"dependencies": {
52+
"@noble/hashes": "^1.2.0",
5253
"bech32": "^2.0.0",
5354
"bip174": "^2.1.0",
5455
"bs58check": "^2.1.2",
55-
"create-hash": "^1.1.0",
56-
"ripemd160": "^2.0.2",
5756
"typeforce": "^1.11.3",
5857
"varuint-bitcoin": "^1.1.2",
5958
"wif": "^2.0.1"
6059
},
6160
"devDependencies": {
6261
"@types/bs58": "^4.0.0",
6362
"@types/bs58check": "^2.1.0",
64-
"@types/create-hash": "^1.2.2",
6563
"@types/mocha": "^5.2.7",
6664
"@types/node": "^16.11.7",
6765
"@types/proxyquire": "^1.3.28",
6866
"@types/randombytes": "^2.0.0",
69-
"@types/ripemd160": "^2.0.0",
7067
"@types/wif": "^2.0.2",
7168
"@typescript-eslint/eslint-plugin": "^5.45.0",
7269
"@typescript-eslint/parser": "^5.45.0",

src/crypto.js

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,31 @@ exports.taggedHash =
99
exports.sha1 =
1010
exports.ripemd160 =
1111
void 0;
12-
const createHash = require('create-hash');
13-
const RipeMd160 = require('ripemd160');
12+
const ripemd160_1 = require('@noble/hashes/ripemd160');
13+
const sha1_1 = require('@noble/hashes/sha1');
14+
const sha256_1 = require('@noble/hashes/sha256');
1415
function ripemd160(buffer) {
15-
try {
16-
return createHash('rmd160').update(buffer).digest();
17-
} catch (err) {
18-
try {
19-
return createHash('ripemd160').update(buffer).digest();
20-
} catch (err2) {
21-
return new RipeMd160().update(buffer).digest();
22-
}
23-
}
16+
return Buffer.from((0, ripemd160_1.ripemd160)(Uint8Array.from(buffer)));
2417
}
2518
exports.ripemd160 = ripemd160;
2619
function sha1(buffer) {
27-
return createHash('sha1').update(buffer).digest();
20+
return Buffer.from((0, sha1_1.sha1)(Uint8Array.from(buffer)));
2821
}
2922
exports.sha1 = sha1;
3023
function sha256(buffer) {
31-
return createHash('sha256').update(buffer).digest();
24+
return Buffer.from((0, sha256_1.sha256)(Uint8Array.from(buffer)));
3225
}
3326
exports.sha256 = sha256;
3427
function hash160(buffer) {
35-
return ripemd160(sha256(buffer));
28+
return Buffer.from(
29+
(0, ripemd160_1.ripemd160)((0, sha256_1.sha256)(Uint8Array.from(buffer))),
30+
);
3631
}
3732
exports.hash160 = hash160;
3833
function hash256(buffer) {
39-
return sha256(sha256(buffer));
34+
return Buffer.from(
35+
(0, sha256_1.sha256)((0, sha256_1.sha256)(Uint8Array.from(buffer))),
36+
);
4037
}
4138
exports.hash256 = hash256;
4239
exports.TAGS = [

ts_src/crypto.ts

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,25 @@
1-
import * as createHash from 'create-hash';
2-
import * as RipeMd160 from 'ripemd160';
1+
import { ripemd160 as _ripemd160 } from '@noble/hashes/ripemd160';
2+
import { sha1 as _sha1 } from '@noble/hashes/sha1';
3+
import { sha256 as _sha256 } from '@noble/hashes/sha256';
34

45
export function ripemd160(buffer: Buffer): Buffer {
5-
try {
6-
return createHash('rmd160').update(buffer).digest();
7-
} catch (err) {
8-
try {
9-
return createHash('ripemd160').update(buffer).digest();
10-
} catch (err2) {
11-
return new RipeMd160().update(buffer).digest();
12-
}
13-
}
6+
return Buffer.from(_ripemd160(Uint8Array.from(buffer)));
147
}
158

169
export function sha1(buffer: Buffer): Buffer {
17-
return createHash('sha1').update(buffer).digest();
10+
return Buffer.from(_sha1(Uint8Array.from(buffer)));
1811
}
1912

2013
export function sha256(buffer: Buffer): Buffer {
21-
return createHash('sha256').update(buffer).digest();
14+
return Buffer.from(_sha256(Uint8Array.from(buffer)));
2215
}
2316

2417
export function hash160(buffer: Buffer): Buffer {
25-
return ripemd160(sha256(buffer));
18+
return Buffer.from(_ripemd160(_sha256(Uint8Array.from(buffer))));
2619
}
2720

2821
export function hash256(buffer: Buffer): Buffer {
29-
return sha256(sha256(buffer));
22+
return Buffer.from(_sha256(_sha256(Uint8Array.from(buffer))));
3023
}
3124

3225
export const TAGS = [

0 commit comments

Comments
 (0)