SubtleCrypto API 是否支持在一种算法中一起加密和签名?

Does SubtleCrypto API support in one algorithm encryption and signing together?

我在 Mozilla 研究了一整天 the documentation of SubtleCrypto,但无法找到一种方法来使用一个版本的 RSA 密钥同时进行加密和签名。

我很困惑,因为我能够写 code in Java to do this job。 Java 这里有疯狂的东西吗,我没有找到正确的方法还是它没有在 SubtleCrypto 中实现?

一些非对称算法会泄露有关它们的详细信息,具体取决于它们的使用方式。出于这个原因,Webcrypto 作者决定 "help keep users from hurting themselves" 阻止这种情况。

并不是所有的算法都有这个属性,比如基于EC-Schnorr的算法就没有(Curve25519就是这样的例子)说这不是Web Crypto目前支持的算法.

可以导出密钥并将其 re-import 作为另一种类型,这确实解决了可导出密钥的这一限制。也就是说,如果您使用的是 secp256r1 或其家族成员,您应该使用一个唯一的密钥并将它们加密绑定到同一主题,而不是使用一个密钥。