У меня есть экземпляр X509Certificate2
, и я получаю его свойство PrivateKey
, которое является RsaCryptoServiceProvider
. MSDN документирует, что этот класс RsaCryptoServiceProvider
является не поточно-ориентированным. Поэтому, если мне предоставлен сертификат X.509, мне нужно выполнить асимметричное шифрование в нескольких потоках (обычно на веб-сервере), каков наилучший способ создания нескольких экземпляров RsaCryptoServiceProvider
?
Закрытый ключ на X509Certificate2
не помечен как экспортируемый, поэтому я не могу просто экспортировать параметры на исходном RsaCryptoServiceProvider
и повторно импортировать их в другой экземпляр, чтобы обойти проблемы безопасности потока.
Я получил оригинал через X509Store
, но, похоже, это набор X509Certificate2
экземпляров, таких, что, если я хочу новый экземпляр RsaCryptoServiceProvider
, мне нужно создать экземпляр new X509Store
чтобы найти новый X509Certificate2
, чтобы получить новый RsaCryptoServiceProvider
. Просто кажется очень тяжеловесным просто заставить .NET клонировать экземпляр RsaCryptoServiceProvider
.
Есть ли лучшие способы?