summaryrefslogtreecommitdiffstats
path: root/node_modules/sha.js/test/test.js
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/sha.js/test/test.js
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/sha.js/test/test.js')
-rw-r--r--node_modules/sha.js/test/test.js100
1 files changed, 100 insertions, 0 deletions
diff --git a/node_modules/sha.js/test/test.js b/node_modules/sha.js/test/test.js
new file mode 100644
index 0000000..dac8580
--- /dev/null
+++ b/node_modules/sha.js/test/test.js
@@ -0,0 +1,100 @@
+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()
+})