WebCrypto 支持 RSA,但强制您为可以执行的不同操作选择填充方案。RSA 可以同时执行签名/验证和加密/解密(+密钥包装),但这对于 webcrypto API 来说不太可能。
当我使用 RSA-OAEP 生成 RSA 密钥时,相同的密钥可以用于 RSA-PSS,但是没有明确的方法可以绕过那些使用 webcrypto API 的密钥。
我最初的想法是采取这些步骤来转换密钥:
exportKey
使用with导出密钥jwk
- “修复”
alg
从(例如)RSA-OAEP-512
到PS512
“使固定”
key_ops
一个。
encrypt
->verify
湾。
decrypt
->sign
使用正确的算法导入“固定”密钥
当密钥不可导出时,该系统会崩溃,我想这样做是为了提高私钥的安全性(恶意脚本、self-xss 等)。
在算法类型之间“转换”但保留密钥而无法导出的好方法是什么?