Статус: Новичок
Группы: Участники
Зарегистрирован: 17.04.2023(UTC) Сообщений: 2
Сказал(а) «Спасибо»: 1 раз
|
Всем добрый день. Вопроc очень новичковый, но все же. Пишу программу, которая берёт сертификат и подписывает им документы. Сертификат считывается нормально, но вместо PrivateKey у него null, а поле PublicKey.Key выдает ошибку. В итоге при попытке подписать через CmsSigner ловлю ошибку "Could not determine signature algorithm for the signer certificate." В свойствах сертификата через КриптоПро нашёл поле "экспорт ключей запрещен". Верно ли я понимаю, что именно это - причина происходящего? Если да, то как разрешить экспорт ключей для сертификата. Заранее прошу прощения за глупые вопросы, но в вопросах инфобеза я понимаю очень и очень мало. Проект на .NET 5.0
certificate = new X509Certificate2(_signaturePath, _password); public byte[] SignFile(X509Certificate2 certificate, byte[] data, bool detached) { var contentInfo = new ContentIjavascript:__doPostBack('forum$ctl03$PostReply','')nfo(data); var signedCms = new SignedCms(contentInfo, detached); var cmsSigner = new CmsSigner(SubjectIdentifierType.IssuerAndSerialNumber, certificate); signedCms.ComputeSignature(cmsSigner, true); return signedCms.Encode(); }
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Добрый день! В Microsoft .NET нет поддержки отечественных криптографических алгоритмов, для того чтобы эта поддержка появилась, Вам следует использовать библиотеку LibCore. Мы планируем поддерживать только выпущенные LTS версии фреймворка, на данный момент минимальная (и единственная поддерживаемая) версия - .NET 6.0. |
|
1 пользователь поблагодарил Георгий Садофьев за этот пост.
|
Avetus оставлено 18.04.2023(UTC)
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 17.04.2023(UTC) Сообщений: 2
Сказал(а) «Спасибо»: 1 раз
|
Спасибо - я перешёл на .NET 6.0 и установил библиотеку. Теперь инициализирую сертификат как certificate = X509CertificateExtensions.Create(_signaturePath, _password, CpX509KeyStorageFlags.DefaultKeySet); Публичный ключ появился. Однако в том же месте та же ошибка возникает. Я что-то недоделал в вызовах библиотеки или это уже другая проблема?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 14.10.2011(UTC) Сообщений: 144 Поблагодарили: 31 раз в 30 постах
|
Не исключено, что что-то не сделали. Посмотрите примеры: инициализации библиотеки, загрузки из PFX, использования SignedCms. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close