JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6308
  • Score
    100M100P100Q210336F
  • License (Apache-2.0 AND MIT)

Multiformats BLAKE2 implementations

Package Exports

  • @multiformats/blake2
  • @multiformats/blake2/blake2b
  • @multiformats/blake2/blake2s

Readme

@multiformats/blake2

BLAKE2 multihash hashers for multiformats.

MultihashHasherss are exported from this library, they produce MultihashDigests. Details about these can be found in the multiformats multihash interface definitions.

import CID from 'multiformats/cid'
import * as dagCbor from '@ipld/dag-cbor'
import { blake2b256 } from '@multiformats/blake2/blake2b'

async function run () {
  const bytes = dagCbor.encode({ hello: 'world' })
  const hash = await blake2b256.digest(bytesMultihashHasher)
  const cid = CID.create(1, dagCbor.code, hash)
  console.log(cid)
  //> CID(bafy2bzacedtxqx7k666ugf5mmagr2fxmbpfncbcji5jfg5uduausgb62y3av4)
}

run().catch(console.error)

Usage

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'

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.