Skip to content

Commit ecbd203

Browse files
committed
test: test that all algos match Node.js
1 parent 55e9196 commit ecbd203

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

test/test.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var crypto = require('crypto')
22
var tape = require('tape')
33
var Sha1 = require('../').sha1
4+
var sha = require('../')
45

56
var inputs = [
67
['', 'ascii'],
@@ -25,6 +26,21 @@ tape("hash is the same as node's crypto", function (t) {
2526
t.end()
2627
})
2728

29+
tape("hash is the same as node's crypto for all algos provided by node", function (t) {
30+
var hashes = crypto.getHashes()
31+
Object.keys(sha).forEach(function (alg) {
32+
if (!hashes.includes(alg)) return // skip unsupported by current Node.js version
33+
inputs.forEach(function (v) {
34+
var a = new sha[alg]().update(v[0], v[1]).digest('hex')
35+
var e = crypto.createHash(alg).update(v[0], v[1]).digest('hex')
36+
console.log(alg, a, '==', e)
37+
t.equal(a, e)
38+
})
39+
})
40+
41+
t.end()
42+
})
43+
2844
tape('call update multiple times', function (t) {
2945
inputs.forEach(function (v) {
3046
var hash = new Sha1()

0 commit comments

Comments
 (0)