Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80542 views
1
var fs = require('fs')
2
var test = require('tape')
3
4
var algorithms = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160']
5
var encodings = [/*'binary',*/ 'hex', 'base64'];
6
var vectors = require('hash-test-vectors')
7
8
var createHash = require('./browser')
9
10
algorithms.forEach(function (algorithm) {
11
test('test ' + algorithm + ' against test vectors', function (t) {
12
vectors.forEach(function (obj, i) {
13
var input = new Buffer(obj.input, 'base64')
14
var node = obj[algorithm]
15
var js = createHash(algorithm).update(input).digest('hex')
16
t.equal(js, node, algorithm + '(testVector['+i+']) == ' + node)
17
})
18
19
encodings.forEach(function (encoding) {
20
vectors.forEach(function (obj, i) {
21
var input = new Buffer(obj.input, 'base64').toString(encoding)
22
var node = obj[algorithm]
23
var js = createHash(algorithm).update(input, encoding).digest('hex')
24
t.equal(js, node, algorithm + '(testVector['+i+'], '+encoding+') == ' + node)
25
})
26
});
27
vectors.forEach(function (obj, i) {
28
var input = new Buffer(obj.input, 'base64')
29
var node = obj[algorithm]
30
var hash = createHash(algorithm);
31
hash.end(input)
32
var js = hash.read().toString('hex')
33
t.equal(js, node, algorithm + '(testVector['+i+']) == ' + node)
34
})
35
t.end()
36
})
37
});
38
39