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 等)。
在算法类型之间“转换”但保留密钥而无法导出的好方法是什么?