Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80538 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
testLib('createHash in crypto-browserify',require('../').createHash);
8
testLib('create-hash/browser',require('create-hash/browser'));
9
function testLib(name, createHash) {
10
test(name, function (t){
11
algorithms.forEach(function (algorithm) {
12
t.test('test ' + algorithm + ' against test vectors', function (t) {
13
vectors.forEach(function (obj, i) {
14
var input = new Buffer(obj.input, 'base64')
15
var node = obj[algorithm]
16
var js = createHash(algorithm).update(input).digest('hex')
17
t.equal(js, node, algorithm + '(testVector['+i+']) == ' + node)
18
})
19
20
encodings.forEach(function (encoding) {
21
vectors.forEach(function (obj, i) {
22
var input = new Buffer(obj.input, 'base64').toString(encoding)
23
var node = obj[algorithm]
24
var js = createHash(algorithm).update(input, encoding).digest('hex')
25
t.equal(js, node, algorithm + '(testVector['+i+'], '+encoding+') == ' + node)
26
})
27
});
28
vectors.forEach(function (obj, i) {
29
var input = new Buffer(obj.input, 'base64')
30
var node = obj[algorithm]
31
var hash = createHash(algorithm);
32
hash.end(input)
33
var js = hash.read().toString('hex')
34
t.equal(js, node, algorithm + '(testVector['+i+']) == ' + node)
35
})
36
t.end()
37
})
38
});
39
40
});
41
}
42