NfWebCrypto (Netflix WebCrypto)是 W3C Web Cryptography API 的 polyfill,作为原生的 Chrome PPAPI 插件,跟 JavaScript 的 polyfill 是不一样的,原生实现支持一个更强大的安全模块,不会暴露密钥资料到 JavaScript。NfWebCrypto 的目标是让 Web 开发者可以自由的使用 Web Crypto JavaScript API。
当前只支持 Linux amd64 的 Google Chrome / Chromium。
由于浏览器插件技术限制和 Netflix 的需要,NfWebCrypto 并没有实现 Web Crypto API。
NfWebCrypto 支持:
-
接口支持
-
Key, KeyPair
-
KeyOperation
-
CryptoOperation
-
CryptoKeys
-
-
SubtleCrypto 接口方法支持
-
encrypt, decrypt
-
sign, verify
-
generateKey
-
exportKey, importKey
-
wrapKey, unwrapKey* **
-
-
CryptoKeys 接口方法支持
-
getKeyByName
-
-
密钥格式支持
-
symmetric keys: raw and jwk (raw)
-
asymmetric keys: pkcs#8 (public), spki (private), and jwk (public only)
-
-
算法支持
-
SHA-1, SHA-224, SHA-256, SHA-384, SHA-512: digest
-
HMAC SHA-256: sign, verify, importKey, exportKey, generateKey
-
AES-128 CBC w/ PKCS#5 padding: encrypt, decrypt, importKey, exportKey, generateKey
-
RSASSA-PKCS1-v1_5: sign, verify, importKey, generateKey
-
RSAES-PKCS1-v1_5: encrypt, decrypt, importKey, exportKey, generateKey
-
Diffie-Hellman: generateKey, deriveKey
-
RSA-OAEP: wrapKey, unwrapKey
-
AES-KW: wrapKey, unwrapKey
-
AES-GCM: encrypt, decrypt, importKey, exportKey, generateKey
-