purekeccak
v1.0.4
Published
Keccak sponge function family
Downloads
4
Readme
purekeccak
Version
This module provides pure javascript implementations to Keccak sponge function family from Keccak Code Package.
Usage
You can use this package as node Hash.
const createKeccakHash = require('keccak')
console.log(createKeccakHash('keccak256').digest().toString('hex'))
// => c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
console.log(createKeccakHash('keccak256').update('Hello world!').digest('hex'))
// => ecd0e108a98e192af1d2c25055f4e3bed784b5c877204e73219a5203251feaab
Also object has two useful methods: _resetState
and _clone
const createKeccakHash = require('keccak')
console.log(createKeccakHash('keccak256').update('Hello World!')._resetState().digest('hex'))
// => c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
const hash1 = createKeccakHash('keccak256').update('Hello')
const hash2 = hash1._clone()
console.log(hash1.digest('hex'))
// => 06b3dfaec148fb1bb2b066f10ec285e7c9bf402ab32aa78a5d38e34566810cd2
console.log(hash1.update(' world!').digest('hex'))
// => throw Error: Digest already called
console.log(hash2.update(' world!').digest('hex'))
// => ecd0e108a98e192af1d2c25055f4e3bed784b5c877204e73219a5203251feaab
Why I should use this package?
I thought it will be popular question, so I decide write explanation in readme.
I know a few popular packages on npm related with Keccak:
- sha3 (phusion/node-sha3 on github) — not actual because support only keccak.
- js-sha3 (emn178/js-sha3 on github) — brilliant package which support keccak, sha3, shake. But not implement node Hash interface unfortunately!
- browserify-sha3 (wanderer/browserify-sha3 on github) — based on js-sha3 (but not support shake!). Support node Hash interface, but without streams.
- keccakjs (axic/keccakjs on github) — uses sha3 and browserify-sha3 as fallback. As result keccak only with node Hash interface without streams.
LICENSE
This library is free and open-source software released under the MIT license.