Skip to content

multiformats/js-blake2

Repository files navigation

@multiformats/blake2

multiformats.io codecov CI

Multiformats BLAKE2 implementations

About

The @multiformats/blake2/blake2b package exports blake2bX MultihashHashers, where X is the output length in bits. The Multicodecs table defines 64 different output lengths for BLAKE2b, from 8 to 512.

The @multiformats/blake2/blake2s package exports blake2sX MultihashHashers, where X is the output length in bits. For BLAKE2s, there are 32 different output lengths, from 8 to 256.

e.g. blake2b-256, multicodec code 0xb220, may be imported as:

import { blake2b256 } from '@multiformats/blake2/blake2b'

while blake2s-256, multicodec code 0xb260, may be imported as:

import { blake2s256 } from '@multiformats/blake2/blake2s'

Example

import * as codec from '@ipld/dag-cbor'
import * as Block from 'multiformats/block'
import { blake2b256 as hasher } from './src/blake2b.js' // would be: '@multiformats/blake2/blake2b'

async function run () {
  const value = { hello: 'world' }
  const block = await Block.encode({ value, hasher, codec })
  console.log(block.cid)
  // -> CID(bafy2bzacedtxqx7k666ugf5mmagr2fxmbpfncbcji5jfg5uduausgb62y3av4)
}

run().catch(console.error)

Install

$ npm i @multiformats/blake2

Browser <script> tag

Loading this module through a script tag will make its exports available as MultiformatsBlake2 in the global namespace.

<script src="https://unpkg.com/@multiformats/blake2/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

BLAKE2 multihash hashers for JavaScript multiformats

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Packages

 
 
 

Contributors