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";
const subtlePonyfill = ponyfillEd25519();
subtlePonyfill.generateKey(Ed25519Algorithm, true, ["sign", "verify"]);
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
subtle.importKey
subtle.sign
subtle.verify
All other methods and non-Ed25519 keys are passed to the original SubtleCrypto
implementation.