Здравствуйте. Стоит задача подписи XML. Имеется сертификат.
На Framework приватный ключ нормально считывается и дальше подписать уже дело техники.
Но вот на Core начались проблемы, поскольку certificate.HasPrivateKey = true, а самого ключа нет (NotSupportedException).
Долго и упорно изучал ваш пример, по началу не хотело работать, потом что-то произошло, и с тех пор работало,
использовал при этом certificate.GetGost3410_2012_256PrivateKey() для получения приватного ключа.
Возникали местами конфликты зависимостей с другими проектами, но починилось.
Собрал exe-шник, на моей машине работает он нормально, а другой машине вываливается исключение:
"CNG Gost3410 keys are not supported".
Пробовал у себя переустанавливать сертификат (вдруг не тот, что выдал), но всё продолжало работать.
Удалил у себя КриптоПро, и установил его снова, после чего накатил тот же самый сертификат.
И как результат, ошибка появилась теперь уже на моей машине. Программа при этом не менялась.
Сейчас собрал пример под вашим corefx, увидел, почему возникает исключение.
CngKey, который создается во время вызова GetGost3410_2012_256PrivateKey, не поддерживается.
Подскажите, пожалуйста, чего не хватает? Как рабочая ранее программа может сломаться переустановкой CSP?
Возможно кто-то сталкивался с такой ошибкой, будет ценна любая информация.
Спасибо!
PS: RuntimeIdentifier = win-x64; CSP: 5.0.11998 KC1 (демонстрационная).
screenshot 2021-03-15 005.png
(24kb) загружен 11 раз(а).Отредактировано пользователем 15 марта 2021 г. 12:41:09(UTC)
| Причина: Не указана