Skip to content

interop-alliance/http-digest-header

 
 

Repository files navigation

HTTP Digest Header Library (@interop/http-digest-header)

Node.js CI

JavaScript library (Node.js, browser and React Native) for creating and verifying Digest headers for HTTP Signatures

Table of Contents

Background

FORKED FROM: https://github.com/digitalbazaar/http-digest-header to provide support for React Native, and add TypeScript types.

  • For React Native use: Peer dependency crypto-expo is required.

Originally, this library was implemented based on the Digest header as mentioned in HTTP Signatures IETF draft.

Since then, the Digest header got its own standards-track spec, at https://tools.ietf.org/html/draft-ietf-httpbis-digest-headers.

This is a library specifically for creating and verifying the Digest: header, for use with HTTP Signatures and similar mechanisms.

It's intended to be isomorphic (for use both in the browser and server-side, with Node.js).

Install

  • Browsers and Node.js 22+ supported.
  • Web Crypto API required. Older browsers and Node.js 14 must use a polyfill.

To install from npm:

npm install @interop/http-digest-header

To install locally (for development):

git clone https://github.com/interop-alliance/http-digest-header.git
cd http-digest-header
npm install

Usage

import * as httpDigest from '@interop/http-digest-header';

const data = `{"hello": "world"}`;

const headerValue = await httpDigest.
    createHeaderValue({data, algorithm: 'sha256', useMultihash: false});
// -> SHA-256=X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE=

const dataToVerify1 = `{"hello": "world"}`;
const dataToVerify2 = `{"hello": "planet earth"}`;

const verifyResult = await httpDigest.verifyHeaderValue({data: dataToVerify1, headerValue});
// -> { verified: true }
const verifyResult = await httpDigest.verifyHeaderValue({data: dataToVerify2, headerValue});
// -> { verified: false }

Contribute

Please follow the existing code style.

PRs accepted.

If editing the Readme, please conform to the standard-readme specification.

Commercial Support

Commercial support for this library is available upon request from Digital Bazaar: support@digitalbazaar.com

License

BSD-3-Clause © 2019-2025 Digital Bazaar

About

JavaScript library (Node.js and browser) for creating and verifying Digest headers for HTTP Signatures

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 100.0%