Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@panva/hkdf

panva6.7mMIT1.2.1TypeScript support: included

HKDF with no dependencies using runtime's native crypto

browser, cloudflare, deno, electron, hkdf, isomorphic, rfc5869, RFC 5869, universal, webcrypto, workers

readme

hkdf

HKDF with no dependencies using runtime's native crypto

HKDF is a simple key derivation function defined in RFC 5869.

Documentation

hkdf(digest, ikm, salt, info, keylen): Promise<Uint8Array>

The given ikm, salt and info are used with the digest to derive a key of keylen bytes.

Parameters

Name Type Description
digest "sha256" | "sha384" | "sha512" | "sha1" The digest algorithm to use.
ikm Uint8Array | string The input keying material. It must be at least one byte in length.
salt Uint8Array | string The salt value. Must be provided but can be zero-length.
info Uint8Array | string Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes.
keylen number The length in bytes of the key to generate. Must be greater than 0 and no more than 255 times the digest size.

Returns

Promise<Uint8Array>

Example

example ESM import

import hkdf from '@panva/hkdf'

example CJS import

const { hkdf } = require('@panva/hkdf')

example Deno import

import hkdf from 'https://deno.land/x/hkdf/index.ts'

example Usage

const derivedKey = await hkdf(
  'sha256',
  'key',
  'salt',
  'info',
  64
)

Supported Runtimes

The supported JavaScript runtimes include ones that

  • are reasonably up to date ECMAScript
  • support the utilized Web API globals and standard built-in objects
  • These are
    • (This is not an exhaustive list)
    • Browsers
    • Cloudflare Workers
    • Deno
    • Electron
    • Netlify Edge Functions
    • Next.js Middlewares
    • Node.js
    • Vercel Edge Functions

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

1.2.1 (2024-07-03)

Bug Fixes

  • add sideEffects:false to nested ESM package.json files (1b27cb5)

1.2.0 (2024-06-18)

Features

  • add bun, deno, and workerd package.json targets (d8a424c)

1.1.1 (2023-04-26)

Bug Fixes

  • remove deno/README.md from published tarball (5ab56e9)

1.1.0 (2023-04-26)

Features

  • release process with provenance (0ca439c)

1.0.4 (2023-02-16)

Bug Fixes

  • build: add test tag trigger (8b127ad)

1.0.3 (2023-02-16)

Bug Fixes

1.0.2 (2022-05-02)

Bug Fixes

  • typescript: add types export for nodenext module resolution (d923bb5)

1.0.1 (2021-10-29)

Bug Fixes

  • validate maximum keylen (28275f1)

1.0.0 (2021-10-29)

Features

  • universal HKDF as per RFC 5869 (47d44b6)