1.0.0 • Published 2 years ago

@ssv-embedded/ssb-blake2s v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@ssv-embedded/ssb-blake2s

This module checks HMAC of assembled SSV/SSB packages with Blake2s hash function.

API

Create instance

const createBlake2sCheck = require('@ssv-embedded/ssb-blake2s');
const blake2s = createBlake2sCheck(opts);

opts is an object for providing optional dependencies:

  • hmacLen: HMAC length in bytes from type Number. Default: 6.
  • key: HMAC key from type Buffer.

Check packages

const payload = blake2s.handle(packet);

packet: SSV/SSB packet from type Buffer

Return: Data payload of handled packet of type Buffer if the HMAC is valid. It will throw en Error if the HMAC is invalid.

Example:

const createBlake2sCheck = require('@ssv-embedded/ssb-blake2s');

const hmacLen = 6;
const key = Buffer.from('SuperSecretKey');
const blake2s = createBlake2sCheck({hmacLen, key});

//                          <---HEADER----><---------------PAYLOAD-----------><---HMAC--->
//                          <-------------protected by HMAC------------------>
const packet = Buffer.from('5900401048020004847b14924104885464c742048c00163c42dfb2df1187d4', 'hex');

try {
  const payload = blake2s.handle(packet);
  console.log(payload.toString('hex'));
} catch (err) {
  console.log(err)
}