يوفر الكائن العام crypto getRandomValues(typedArray) وrandomUUID() و
crypto.subtle، وهو SubtleCrypto مدعوم بتنفيذ AWS-LC نفسه الذي يدعم
node:crypto. والمفاتيح كائنات CryptoKey (فئة عامة)؛ وهي تتشارك مادة
المفتاح مع KeyObject، لذا يحوّل KeyObject.from(cryptoKey) وkeyObject.toCryptoKey()
دون نسخ. ويتعرّف عليها util.types.isCryptoKey() وutil.types.isKeyObject().
| العملية | الخوارزميات |
|---|---|
digest | SHA-1 وSHA-256 وSHA-384 وSHA-512 وSHA3-256/384/512 وcSHAKE128/256 (دون اسم دالة أو تخصيص) |
generateKey, importKey, exportKey | RSASSA-PKCS1-v1_5 وRSA-PSS وRSA-OAEP وECDSA وECDH (P-256 وP-384 وP-521) وEd25519 وX25519 وHMAC وAES-CTR/CBC/GCM/KW وChaCha20-Poly1305؛ وHKDF وPBKDF2 للاستيراد فقط |
sign, verify | RSASSA-PKCS1-v1_5 وRSA-PSS وECDSA وEd25519 وHMAC |
encrypt, decrypt | RSA-OAEP وAES-CTR وAES-CBC وAES-GCM وChaCha20-Poly1305 |
wrapKey, unwrapKey | AES-KW وكل خوارزميات encrypt/decrypt |
deriveBits, deriveKey | ECDH وX25519 وHKDF وPBKDF2 |
getPublicKey, SubtleCrypto.supports | كما في Node (تجريبي) |
صيغ المفاتيح هي raw (والاسمان البديلان raw-public/raw-secret) وspki وpkcs8 وjwk.
const key = await crypto.subtle.generateKey(
{ name: "AES-GCM", length: 256 },
true,
["encrypt", "decrypt"],
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const sealed = await crypto.subtle.encrypt(
{ name: "AES-GCM", iv },
key,
new TextEncoder().encode("hello"),
);يتبع التحقق وأسماء الأخطاء ورسائلها سلوك Node. ويتصرف Elide كبناء قائم على BoringSSL، لذا فإن
الخوارزميات التي لا يوفرها Node إلا على OpenSSL 3 غير متاحة: إذ ترفض Ed448 وX448 وAES-OCB وKMAC وArgon2
وML-DSA وML-KEM وTurboSHAKE وKangarooTwelve بـ NotSupportedError.
Reference
Status: Full · Not measured · since 1.1.0
Exports
| Export | Kind | Status | Notes |
|---|---|---|---|
crypto | object | Full | randomUUID(), getRandomValues(), subtle |
SubtleCrypto | class | Full | digest(), encrypt(), decrypt(), sign(), verify(), generateKey(), importKey(), exportKey(), deriveBits(), deriveKey(), wrapKey(), unwrapKey() |