33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
|
/* eslint-disable camelcase */
|
||
|
const test = require('brittle')
|
||
|
const sodium = require('..')
|
||
|
|
||
|
test('crypto_hash_sha512', function (t) {
|
||
|
const out = Buffer.alloc(sodium.crypto_hash_sha512_BYTES)
|
||
|
const inp = Buffer.from('Hej, Verden!')
|
||
|
|
||
|
t.exception.all(function () {
|
||
|
sodium.crypto_hash(Buffer.alloc(0), inp)
|
||
|
}, 'throws on bad input')
|
||
|
|
||
|
sodium.crypto_hash_sha512(out, inp)
|
||
|
|
||
|
const result = 'bcf8e6d11dec2da6e93abb99a73c8e9c387886a5f84fbca5e25af85af26ee39161b7e0c9f9cf547f2aef40523f1aab80e26ec3c630db43ce78adc8c058dc5d16'
|
||
|
t.alike(out.toString('hex'), result, 'hashed the string')
|
||
|
})
|
||
|
|
||
|
test.skip('crypto_hash_sha512_state', function (t) {
|
||
|
const state = Buffer.alloc(sodium.crypto_hash_sha512_STATEBYTES)
|
||
|
sodium.crypto_hash_sha512_init(state)
|
||
|
|
||
|
const buf = Buffer.from('Hej, Verden!')
|
||
|
|
||
|
for (let i = 0; i < 10; i++) sodium.crypto_hash_sha512_update(state, buf)
|
||
|
|
||
|
const out = Buffer.alloc(sodium.crypto_hash_sha512_BYTES)
|
||
|
sodium.crypto_hash_sha512_final(state, out)
|
||
|
|
||
|
const result = 'a0a9b965c23be41fa8c344f483da39bedcf88b7f25cdc0bc9ea335fa264dc3db51f08c1d0f5f6f0ffb08a1d8643e2a1cd0ea8f03408ca03711c751d61787a229'
|
||
|
t.alike(out.toString('hex'), result, 'hashed the string')
|
||
|
})
|