W3C Web Cryptography API for Node.js
W3C's Web Cryptography API defines a standard interface for performing cryptographic operations in JavaScript, such as key generation, hashing, signing, and encryption. This package implements the API for Node.js, in order to support universal crypto-dependent code required by protocols such as JOSE and OpenID Connect.
TBD
The purpose of this package is to enable development of universal JavaScript libraries that depend on the availability of cryptographic primitives in order to implement cryptographic protocols. The long term goal of the project is to encourage or provide a native, if not core Web Cryptography module.
@trust/webcrypto
requires recent versions of node and npm to run. For key generation operations, it also requires OpenSSL to be installed on the system.
Algorithm name | encrypt | decrypt | sign | verify | digest | generateKey | deriveKey | deriveBits | importKey | exportKey | wrapKey | unwrapKey |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RSASSA-PKCS1-v1_5 | ✔ | ✔ | ✔ | ✔ | ✔ | |||||||
RSA-PSS | ✔ | ✔ | ✔ | ✔ | ✔ | |||||||
RSA-OAEP | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
ECDSA | ⚐ | ⚐ | ⚐ | ✔ | ✔ | |||||||
EDDSA | ⚐ | ⚐ | ⚐ | ✔ | ✔ | |||||||
ECDH | _ | _ | _ | _ | _ | |||||||
AES-CTR | ⚐ | ⚐ | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
AES-CBC | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
AES-GCM | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||||
AES-KW | ✔ | ✔ | ✔ | ✔ | ✔ | |||||||
HMAC | ✔ | ✔ | ✔ | ✔ | ✔ | |||||||
SHA-1 | ✔ | |||||||||||
SHA-256 | ✔ | |||||||||||
SHA-384 | ✔ | |||||||||||
SHA-512 | ✔ | |||||||||||
HKDF | _ | _ | _ | |||||||||
PBKDF2 | _ | _ | _ |
Key:
✔
Implemented _
Currently not implemented ⚐
Partially implemented, only certain paramaters supported.
Only the following paramaters are supported for the corresponding algorithm.
Algorithm name | Supported paramater |
---|---|
ECDSA | K-256 (secp256k1) , P-256 , P-384 , P-512 |
EDDSA | ed25519 |
AES-CTR | sha-1 |
See W3C Web Cryptography API specification and diafygi's webcrypto-examples.
Copyright (c) 2016 Anvil Research, Inc.