@yoursunny/webcrypto-ed25519
v0.0.20230624
Published
Ed25519 Ponyfill & Polyfill for WebCrypto
Downloads
73
Maintainers
Readme
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"
- format:
subtle.importKey
- format:
"jwk"
or"spki"
- format:
subtle.sign
subtle.verify
All other methods and non-Ed25519 keys are passed to the original SubtleCrypto
implementation.