React Native Quick Crypto
Introduction

Implementation Coverage

Detailed status of Node.js API compatibility

This page tracks the implementation status of react-native-quick-crypto against the standard Node.js crypto API and the W3C WebCrypto API.

Implemented: Full support
Partial: Not fully implemented
Missing: Not implemented
Implemented: 86%
Partial: 7%
Missing: 7%

Post-Quantum Cryptography (PQC)

Quantum-resistant cryptography algorithms (FIPS 203/204).

ML-DSA (Digital Signatures)ML-DSA-44, 65, 87
Implemented
ML-KEM (Key Encapsulation)ML-KEM-512, 768, 1024
Missing

Crypto Classes

Certificate
exportChallenge
exportPublicKey
verifySpkac
Implemented
Cipheriv
final
getAuthTag
setAAD
setAutoPadding
update
Implemented
Decipheriv
final
setAAD
setAuthTag
setAutoPadding
update
Implemented
DiffieHellmanUse crypto.generateKeys or crypto.diffieHellman instead
Implemented
ECDH
convertKey
computeSecret
generateKeys
getPrivateKey
getPublicKey
setPrivateKey
setPublicKey
Implemented
Hash
copy
digest
update
Implemented
Hmac
digest
update
Implemented
Sign
sign
update
Implemented
Verify
verify
update
Implemented
KeyObject
asymmetricKeyType
export
type
asymmetricKeyDetails
equals
symmetricKeySize
toCryptoKey
from
Implemented
X509Certificate
new X509Certificate(buffer)
ca
checkEmail
checkHost
checkIP
checkIssued
checkPrivateKey
fingerprint
fingerprint256
fingerprint512
infoAccess
issuer
issuerCertificate
extKeyUsage
keyUsage
signatureAlgorithm
signatureAlgorithmOid
publicKey
raw
serialNumber
subject
subjectAltName
toJSON
toLegacyObject
toString
validFrom
validTo
verify
Implemented

Crypto Methods

argon2
Implemented
checkPrime
Implemented
constants
Implemented
createCipheriv
Implemented
createDecipheriv
Implemented
createDiffieHellman
Implemented
createDiffieHellmanGroup
Implemented
createECDH
Implemented
createHash
Implemented
createHmac
Implemented
createPrivateKey
Implemented
createPublicKey
Implemented
createSecretKey
Implemented
createSign
Implemented
createVerify
Implemented
decapsulate
Missing
signOne-shot signing
Implemented
verifyOne-shot verification
Implemented
diffieHellman
dh
ec
x448
x25519
Implemented
encapsulate
Missing
fipsDeprecated, not applicable to RN
N/A
generateKey
aes
hmac
Implemented
generateKeyPair
rsa
rsa-pss
dsa
ec
ed25519
ed448
x25519
x448
dh
Partial
generateKeyPairSync
rsa
rsa-pss
dsa
ec
ed25519
ed448
x25519
x448
dh
Partial
generateKeySync
aes
hmac
Implemented
generatePrime
Implemented
getCipherInfo
Implemented
getCiphers
Implemented
getCurves
Implemented
getDiffieHellman
Implemented
getFipsNot applicable to RN
N/A
getHashes
Implemented
getRandomValues
Implemented
hash
Implemented
hkdf
Implemented
pbkdf2
Implemented
privateDecrypt / privateEncrypt
Implemented
publicDecrypt / publicEncrypt
Implemented
randomBytes
Implemented
randomFill / randomFillSync
Implemented
randomInt
Implemented
randomUUID
Implemented
scrypt
Implemented
secureHeapUsedNot applicable to RN
N/A
setEngineNot applicable to RN
N/A
setFipsNot applicable to RN
N/A
sign
RSASSA-PKCS1-v1_5
RSA-PSS
ECDSA
Ed25519
Ed448
HMAC
Implemented
verify
RSASSA-PKCS1-v1_5
RSA-PSS
ECDSA
Ed25519
Ed448
HMAC
Implemented
timingSafeEqual
Implemented

WebCrypto (Subtle)

crypto.subtle
decapsulateBits
decapsulateKey
encapsulateBits
encapsulateKey
getPublicKey
supports
Partial
crypto.subtle.decrypt
RSA-OAEP
AES-CTR
AES-CBC
AES-GCM
AES-OCB
ChaCha20-Poly1305
Implemented
crypto.subtle.deriveBits
Argon2d
Argon2i
Argon2id
ECDH
X25519
X448
HKDF
PBKDF2
Implemented
crypto.subtle.deriveKey
Argon2d
Argon2i
Argon2id
ECDH
HKDF
PBKDF2
X25519
X448
Implemented
crypto.subtle.digest
cSHAKE128
cSHAKE256
SHA-1
SHA-256
SHA-384
SHA-512
SHA3-256
SHA3-384
SHA3-512
Implemented
crypto.subtle.encrypt
AES-CTR
AES-CBC
AES-GCM
AES-OCB
ChaCha20-Poly1305
RSA-OAEP
Implemented
crypto.subtle.exportKey
AES-CBC
AES-CTR
AES-GCM
AES-KW
AES-OCB
ChaCha20-Poly1305
ECDH
ECDSA
Ed25519
Ed448
HMAC
KMAC128
KMAC256
ML-DSA-44
ML-DSA-65
ML-DSA-87
ML-KEM-512
ML-KEM-768
ML-KEM-1024
RSA-OAEP
RSA-PSS
RSASSA-PKCS1-v1_5
Partial
crypto.subtle.generateKey
ECDH
ECDSA
Ed25519
Ed448
ML-DSA-44
ML-DSA-65
ML-DSA-87
ML-KEM-512
ML-KEM-768
ML-KEM-1024
RSA-OAEP
RSA-PSS
RSASSA-PKCS1-v1_5
X25519
X448
AES-CTR
AES-CBC
AES-GCM
AES-KW
AES-OCB
ChaCha20-Poly1305
HMAC
KMAC128
KMAC256
Partial
crypto.subtle.importKey
Argon2d
Argon2i
Argon2id
AES-CBC
AES-CTR
AES-GCM
AES-KW
AES-OCB
ChaCha20-Poly1305
ECDH
ECDSA
Ed25519
Ed448
HKDF
HMAC
KMAC128
KMAC256
ML-DSA-44
ML-DSA-65
ML-DSA-87
ML-KEM-512
ML-KEM-768
ML-KEM-1024
PBKDF2
RSA-OAEP
RSA-PSS
RSASSA-PKCS1-v1_5
X25519
X448
Partial
crypto.subtle.sign
ECDSA
Ed25519
Ed448
HMAC
KMAC128
KMAC256
ML-DSA-44
ML-DSA-65
ML-DSA-87
RSA-PSS
RSASSA-PKCS1-v1_5
Implemented
crypto.subtle.unwrapKey
AES-GCM (Wraps)
AES-KW (Wraps)
ChaCha20-Poly1305 (Wraps)
AES-CBC (Wraps)
AES-CTR (Wraps)
AES-OCB (Wraps)
RSA-OAEP (Wraps)
Implemented
crypto.subtle.verify
ECDSA
Ed25519
Ed448
HMAC
KMAC128
KMAC256
ML-DSA-44
ML-DSA-65
ML-DSA-87
RSA-PSS
RSASSA-PKCS1-v1_5
Implemented
crypto.subtle.wrapKey
AES-GCM
AES-KW
ChaCha20-Poly1305
AES-CBC
AES-CTR
AES-OCB
RSA-OAEP
Implemented