使用 RSACryptoServiceProvider,如何将密钥交换密钥和签名密钥存储在同一个密钥容器中?

Using RSACryptoServiceProvider, how does one store a key exchange key and signature key in the same key container?

我想使用一个密钥对进行加密,并使用一个单独的密钥对进行签名。如何使用 RSACryptoServiceProvider 将它们存储在同一个密钥容器中?

最佳答案是:不要 - 只需创建不同的密钥容器即可。

RSACryptoServiceProvider 建立在 Windows CAPI 之上,它是两个 Windows 密码学库中较旧的一个(现在被认为已弃用)。 (并排)替换 Windows CNG,不再有 "signing key" 和 "exchange key" 区别...每个 "named key" 只是一个键。 CNG 可以返回到 CAPI,但它只会使用两个密钥之一(我相信交换获胜),因为它无法询问您关心哪个密钥。

.NET 的某些部分现在仅优先使用 RSACng,如果其中一个地方遇到您的双键密钥容器,您可能会遇到问题。