|
|
- var crypto = require('crypto')
- var tape = require('tape')
- var Sha1 = require('../').sha1
-
- var inputs = [
- ['', 'ascii'],
- ['abc', 'ascii'],
- ['123', 'ascii'],
- ['123456789abcdef123456789abcdef123456789abcdef123456789abcdef', 'ascii'],
- ['123456789abcdef123456789abcdef123456789abcdef123456789abc', 'ascii'],
- ['123456789abcdef123456789abcdef123456789abcdef123456789ab', 'ascii'],
- ['0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcde', 'ascii'],
- ['0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef', 'ascii'],
- ['foobarbaz', 'ascii']
- ]
-
- tape("hash is the same as node's crypto", function (t) {
- inputs.forEach(function (v) {
- var a = new Sha1().update(v[0], v[1]).digest('hex')
- var e = crypto.createHash('sha1').update(v[0], v[1]).digest('hex')
- console.log(a, '==', e)
- t.equal(a, e)
- })
-
- t.end()
- })
-
- tape('call update multiple times', function (t) {
- inputs.forEach(function (v) {
- var hash = new Sha1()
- var _hash = crypto.createHash('sha1')
-
- for (var i = 0; i < v[0].length; i = (i + 1) * 2) {
- var s = v[0].substring(i, (i + 1) * 2)
- hash.update(s, v[1])
- _hash.update(s, v[1])
- }
-
- var a = hash.digest('hex')
- var e = _hash.digest('hex')
- console.log(a, '==', e)
- t.equal(a, e)
- })
- t.end()
- })
-
- tape('call update twice', function (t) {
- var _hash = crypto.createHash('sha1')
- var hash = new Sha1()
-
- _hash.update('foo', 'ascii')
- hash.update('foo', 'ascii')
-
- _hash.update('bar', 'ascii')
- hash.update('bar', 'ascii')
-
- _hash.update('baz', 'ascii')
- hash.update('baz', 'ascii')
-
- var a = hash.digest('hex')
- var e = _hash.digest('hex')
-
- t.equal(a, e)
- t.end()
- })
-
- tape('hex encoding', function (t) {
- inputs.forEach(function (v) {
- var hash = new Sha1()
- var _hash = crypto.createHash('sha1')
-
- for (var i = 0; i < v[0].length; i = (i + 1) * 2) {
- var s = v[0].substring(i, (i + 1) * 2)
- hash.update(Buffer.from(s, 'ascii').toString('hex'), 'hex')
- _hash.update(Buffer.from(s, 'ascii').toString('hex'), 'hex')
- }
- var a = hash.digest('hex')
- var e = _hash.digest('hex')
-
- console.log(a, '==', e)
- t.equal(a, e)
- })
-
- t.end()
- })
-
- tape('call digest for more than MAX_UINT32 bits of data', function (t) {
- var _hash = crypto.createHash('sha1')
- var hash = new Sha1()
- var bigData = Buffer.alloc(0x1ffffffff / 8)
-
- hash.update(bigData)
- _hash.update(bigData)
-
- var a = hash.digest('hex')
- var e = _hash.digest('hex')
-
- t.equal(a, e)
- t.end()
- })
|