Используя RSACryptoServiceProvider, как хранить ключ обмена ключами и ключ подписи в одном и том же контейнере ключей? - PullRequest
1 голос
/ 25 октября 2019

Я хочу использовать пару ключей для шифрования и отдельную пару ключей для подписи. Как я могу хранить их в одном и том же контейнере ключей с помощью RSACryptoServiceProvider?

1 Ответ

1 голос
/ 26 октября 2019

Лучший ответ: не надо - просто создайте различные контейнеры ключей.

RSACryptoServiceProvider построен на CAPI Windows, который является более старой из двух библиотек криптографии Windows (и считается устаревшим в настоящее время)). Заменяющая (параллельная) Windows CNG больше не имеет различий между «ключом подписи» и «ключом обмена» ... каждый «именованный ключ» представляет собой только один ключ. CNG может вернуться обратно в CAPI, но он будет использовать только один из двух ключей (я полагаю, обмен выигрывает), поскольку у него нет способа узнать, какой ключ вам нужен.

Некоторые части .NET сейчасиспользуйте только RSACng преимущественно, и если одно из этих мест попадет в ваш контейнер ключей с двумя ключами, у вас потенциально могут возникнуть проблемы.

...