КриптоПро .NET System.NotSupportedException

Подскажите, может быть кто-то сталкивался со следующей проблемой, или хотя бы просто есть мысли, как с ней быть.

Написана программа с использованием КриптоПро .NET ещё пару лет назад, и с тех пор практически не меняется, всё работает как надо.

Но периодически (ну точнее за все время была пара тройка таких случаев, и все пришлись на последнюю пару-тройку месяцев) спустя какое-то время подписание просто перестает работать, получаем ошибку

System.NotSupportedException: Алгоритм ключа сертификата не поддерживается.
в System.Security.Cryptography.X509Certificates.X509Certificate2.get_PrivateKey()

Со слов пользователя, если ошибка возникла, она продолжает повторяться до закрытия приложения. А вот после перезапуска пропадает. Как-то принудительно воспроизвести, понять причину или получить дополнительную информацию не удалось.

В самом коде программы никакого кеширования нет, т.е. на каждое подписание идёт поиск по хранилищу и т.д.

var storeMy = new X509Store(StoreName.My, StoreLocation.CurrentUser);
storeMy.Open(OpenFlags.ReadOnly);
// тут более сложная логика поиска по разным критериям 
// (по имени, по отпечатку и т.д., смотря что указано пользователем в настройках), 
// оставляю лишь кусок просто для понимания
var certCol = storeMy.Certificates.Find(X509FindType.FindByThumbprint, certThumbprint, false);
// ... дальше набор кода по выбору, если несколько сертификатов
var signerCert = ...;
var ct = signerCert.PrivateKey.GetType();
// ОШИБКА ВОЗНИКАЕТ ТУТ^^^

Возможно где-то что-то на уровне System.Security.Cryptography или КриптоПРО кешируется и есть возможность принудительно сбросить/очистить что-либо, чтобы обойтись без перезапуска приложения?

Не исключаю, что проблема может быть внешней и пользователи что-то ещё делали помимо перезапуска, когда проблема возникала.


Ответы (0 шт):