Crypto
The node:crypto
module provides cryptographic functionality that includes a set of wrappers for OpenSSL’s hash, HMAC, cipher, decipher, sign, and verify functions.
A subset of the node:crypto
module is available in Workers. All APIs in the tables below with a ✅ are supported, and unless otherwise noted, work the same way as the implementations in Node.js.
The WebCrypto API is also available within Cloudflare Workers.
Classes
API | Supported? | Notes |
---|---|---|
Certificate ↗ | ✅ | |
Cipher ↗ | ||
Decipher ↗ | ||
DiffieHellman ↗ | ✅ | |
DiffieHellmanGroup ↗ | ✅ | |
ECDH ↗ | ||
Hash ↗ | ✅ | |
Hmac ↗ | ✅ | |
KeyObject ↗ | ||
Sign ↗ | ||
Verify ↗ | ||
X509Certificate ↗ | ✅ | |
constants ↗ |
Primes
API | Supported? | Notes |
---|---|---|
checkPrime ↗ | ✅ | |
checkPrimeSync ↗ | ✅ | |
generatePrime ↗ | ✅ | |
generatePrimeSync ↗ | ✅ |
Ciphers
API | Supported? | Notes |
---|---|---|
createCipher ↗ | Deprecated, use createCipheriv instead | |
createCipheriv ↗ | ||
createDecipher ↗ | Deprecated, use createDecipheriv instead | |
createDecipheriv ↗ | ||
privateDecrypt ↗ | ||
privateEncrypt ↗ | ||
publicDecrypt ↗ | ||
publicEncrypt ↗ |
DiffieHellman
API | Supported? | Notes |
---|---|---|
createDiffieHellman(prime) ↗ | ✅ | |
createDiffieHellman(primeLength) ↗ | ✅ | |
createDiffieHellmanGroup ↗ | ✅ | |
createECDH ↗ | ||
diffieHellman ↗ | ||
getDiffieHellman ↗ | ✅ |
Hash
API | Supported? | Notes |
---|---|---|
createHash ↗ | ✅ | |
createHmac ↗ | ✅ | |
getHashes ↗ | ✅ |
Keys
API | Supported? | Notes |
---|---|---|
createPrivateKey ↗ | ||
createPublicKey ↗ | ||
createSecretKey ↗ | ||
generateKey ↗ | ||
generateKeyPair ↗ | ||
generateKeyPairSync ↗ | ||
generateKeySync ↗ |
Sign/Verify
API | Supported? | Notes |
---|---|---|
createSign ↗ | ||
createVerify ↗ | ||
sign ↗ | ||
verify ↗ |
Misc
API | Supported? | Notes |
---|---|---|
getCipherInfo ↗ | ||
getCiphers ↗ | ✅ | |
getCurves ↗ | ✅ | |
secureHeapUsed ↗ | ✅ | |
setEngine ↗ | ✅ | |
timingSafeEqual ↗ | ✅ |
Fips
API | Supported? | Notes |
---|---|---|
getFips ↗ | ✅ | |
fips ↗ | ✅ | Deprecated, use getFips() instead |
setFips ↗ | ✅ |
Random
API | Supported? | Notes |
---|---|---|
getRandomValues ↗ | ✅ | |
randomBytes ↗ | ✅ | |
randomFillSync ↗ | ✅ | |
randomFill ↗ | ✅ | |
randomInt ↗ | ✅ | |
randomUUID ↗ | ✅ |
Key Derivation
API | Supported? | Notes |
---|---|---|
hkdf ↗ | ✅ | Does not yet support KeyObject |
hkdfSync ↗ | ✅ | Does not yet support KeyObject |
pbkdf2 ↗ | ✅ | |
pbkdf2Sync ↗ | ✅ | |
scrypt ↗ | ✅ | |
scryptSync ↗ | ✅ |
WebCrypto
API | Supported? | Notes |
---|---|---|
subtle ↗ | ✅ | |
webcrypto ↗ | ✅ |