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 接口方法支持
密钥格式支持
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