@yoursunny/webcrypto-ed25519
TypeScript icon, indicating that this package has built-in type declarations

0.0.20230624 • Public • Published

Ed25519 Ponyfill & Polyfill for WebCrypto

@yoursunny/webcrypto-ed25519 package adds Ed25519 crypto algorithm to Web Crypto API in browsers. The crypto implementation comes from @noble/ed25519 library.

Caution

This library should be considered suitable for research and experimentation. Further code and security review is needed before utilization in a production application.

Usage

import { Ed25519Algorithm, polyfillEd25519, ponyfillEd25519 } from "@yoursunny/webcrypto-ed25519";

// ponyfill: crypto.subtle remains unchanged; call methods on the returned SubtleCrypto instance.
const subtlePonyfill = ponyfillEd25519();
subtlePonyfill.generateKey(Ed25519Algorithm, true, ["sign", "verify"]);

// polyfill: crypto.subtle is patched to support Ed25519 and NODE-ED25519 algorithms.
polyfillEd25519();
crypto.subtle.generateKey(Ed25519Algorithm, true, ["sign", "verify"]);

Algorithm Identifier

The ponyfill and polyfill for browser recognize two forms of algorithm identifier:

  • { name: "Ed25519" }, as specified in Secure Curves in the Web Cryptography API draft and implemented in Node.js 18.4.0 and later.
  • { name: "NODE-ED25519", namedCurve: "NODE-ED25519" }, as implemented in Node.js 18.3.0 and earlier.

This package does not provide any ponyfill or polyfill for Node.js. The exported Ed25519Algorithm variable gives a suitable algorithm identifier for the current Node.js version, which helps you write code to support Node.js before and after 18.4.0.

Features

  • subtle.generateKey
  • subtle.exportKey
    • format: "jwk" or "spki"
  • subtle.importKey
    • format: "jwk" or "spki"
  • subtle.sign
  • subtle.verify

All other methods and non-Ed25519 keys are passed to the original SubtleCrypto implementation.

Package Sidebar

Install

npm i @yoursunny/webcrypto-ed25519

Weekly Downloads

43

Version

0.0.20230624

License

MIT

Unpacked Size

24.1 kB

Total Files

12

Last publish

Collaborators

  • yoursunny