blake2s, blake2sp: 32-bit and under architectures, single & multicore variations

All four algorithms are different & will produce different sums. Choose the one that's appropriate for your use.

Tested on node 0.10, 4.x, 5.x, and 6.x.

Usage

Avon exports sumFile(), sumBuffer(), and sumStream() functions to calculate a hash for whatever sort of data you have. sumBuffer() is synchronous. sumFile() and sumStream() take an optional callback. If no callback is provided, they return promises. Use the control flow method you prefer! The calculated hash is a node Buffer.

If you don't specify an algorithm, the 64-bit single-core B algorithm is used.

var Avon =require('avon');

var assert =require('assert');

var buf =newBuffer('this is some input');

var hash =Avon.sumBuffer(buf,Avon.ALGORITHMS.BP);

assert(hash instanceof Buffer);

console.log(hash.toString('hex'));

var sum =Avon.sumBuffer(buf,Avon.ALGORITHMS.SP);

console.log(sum.toString('hex');

Want to hash a file? Sure!

Avon.sumFile('my_file.dat',Avon.ALGORITHMS.SP,function(err,buffer)

{

if(err)console.error('noooo!');

elseconsole.log(buffer.toString('hex'))

});

Or create a stream:

var input =fs.createReadStream('my-large-file');

var hasher =Avon.sumStream(Avon.ALGORITHMS.BP);

input.on('close',function()

{

var digest =hasher.digest('hex');

// you now have a string with the final hash digest

// the hash is unusable from here on

});

input.pipe(hasher);

API

Blake2 provides a bewildering variety of variations. Avon exposes all of them both in the general-purpose functions given above, and in some convenience wrappers. This chart might help you decide which to use.