Projekt

Obecné

Profil

Stáhnout (1.43 KB) Statistiky
| Větev: | Revize:
1
var test = require('tape')
2

    
3
var Buffer = require('safe-buffer').Buffer
4
var algorithms = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160', 'ripemd160']
5
var encodings = ['hex', 'base64'] // ignore binary
6
var vectors = require('hash-test-vectors')
7
vectors.forEach(function (vector) {
8
  vector.ripemd160 = vector.rmd160
9
})
10
var createHash = require('./browser')
11

    
12
algorithms.forEach(function (algorithm) {
13
  test('test ' + algorithm + ' against test vectors', function (t) {
14
    vectors.forEach(function (obj, i) {
15
      var input = Buffer.from(obj.input, 'base64')
16
      var node = obj[algorithm]
17
      var js = createHash(algorithm).update(input).digest('hex')
18
      t.equal(js, node, algorithm + '(testVector[' + i + ']) == ' + node)
19
    })
20

    
21
    encodings.forEach(function (encoding) {
22
      vectors.forEach(function (obj, i) {
23
        var input = Buffer.from(obj.input, 'base64').toString(encoding)
24
        var node = obj[algorithm]
25
        var js = createHash(algorithm).update(input, encoding).digest('hex')
26
        t.equal(js, node, algorithm + '(testVector[' + i + '], ' + encoding + ') == ' + node)
27
      })
28
    })
29

    
30
    vectors.forEach(function (obj, i) {
31
      var input = Buffer.from(obj.input, 'base64')
32
      var node = obj[algorithm]
33
      var hash = createHash(algorithm)
34
      hash.end(input)
35
      var js = hash.read().toString('hex')
36
      t.equal(js, node, algorithm + '(testVector[' + i + ']) == ' + node)
37
    })
38

    
39
    t.end()
40
  })
41
})
(8-8/8)