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