Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

9 Страницы«<56789>
Опции
К последнему сообщению К первому непрочитанному
Offline Артём Макаров  
#121 Оставлено : 10 февраля 2021 г. 10:50:47(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
По тексту ошибки - не может найти библиотеку из КриптоПро CSP (libcapi10). Проверьте корректность установки CSP.
Техническую поддержку оказываем тут
Наша база знаний
Offline Alexander Williams  
#122 Оставлено : 19 февраля 2021 г. 18:24:12(UTC)
Alexander Williams

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.02.2021(UTC)
Сообщений: 3
Российская Федерация

Автор: Артём Макаров Перейти к цитате
По тексту ошибки - не может найти библиотеку из КриптоПро CSP (libcapi10). Проверьте корректность установки CSP.

Понятно. А есть какая-нибудь инструкция, готовый docker файл, как развернуть КриптоПро CSP в докере под .net core?
Offline Alexander Williams  
#123 Оставлено : 24 февраля 2021 г. 11:43:18(UTC)
Alexander Williams

Статус: Новичок

Группы: Участники
Зарегистрирован: 10.02.2021(UTC)
Сообщений: 3
Российская Федерация

Автор: Артём Макаров Перейти к цитате
По тексту ошибки - не может найти библиотеку из КриптоПро CSP (libcapi10). Проверьте корректность установки CSP.

Распаковал и установил linux-amd64_deb.tgz в образе. Получил сообщение: "CryptoPro CSP packages have been successfully installed". Но образ все равно не поднимается, ошибка все та же самая:
Unhandled exception. System.DllNotFoundException: Unable to load shared library 'libcapi10' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibcapi10: cannot open shared object file: No such file or directory at Interop.Advapi32.CryptAcquireContext(SafeProvHandle& phProv, String szContainer, String szProvider, Int32 dwProvType, UInt32 dwFlags)
Offline deriglazov.v  
#124 Оставлено : 2 марта 2021 г. 10:20:45(UTC)
deriglazov.v

Статус: Новичок

Группы: Участники
Зарегистрирован: 27.02.2021(UTC)
Сообщений: 1
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Коллеги, добрый день. По вашей документации https://github.com/Crypt...b/master/docs/Windows.md развернули сервис, но при попытки подписать ХМЛ получаем ошибку "Failed to create signing key." at System.Security.Cryptography.Xml.SignedXml.ComputeSignature(). Подскажите, с чем может быть связана ошибка? При использование в CSP этих сертификатов, подписание проходит успешно.
Offline Артём Макаров  
#125 Оставлено : 2 марта 2021 г. 16:14:25(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
Автор: deriglazov.v Перейти к цитате
Коллеги, добрый день. По вашей документации https://github.com/Crypt...b/master/docs/Windows.md развернули сервис, но при попытки подписать ХМЛ получаем ошибку "Failed to create signing key." at System.Security.Cryptography.Xml.SignedXml.ComputeSignature(). Подскажите, с чем может быть связана ошибка? При использование в CSP этих сертификатов, подписание проходит успешно.


Выглядит так, как буде то подцепляется сборка System.Security.Cryptography.Xml без исправления для ГОСТ.

Проверьте, что установлены именно указанные версии SDK и runtime. Также проверьте путь до System.Security.Cryptography.Xml, которые вы указывали в проекте. Посмотрите через modules, грузится ли данная сборка по указанному пути.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Артём Макаров за этот пост.
deriglazov.v оставлено 03.03.2021(UTC)
Offline vpn61  
#126 Оставлено : 12 марта 2021 г. 12:19:09(UTC)
vpn61

Статус: Новичок

Группы: Участники
Зарегистрирован: 12.03.2021(UTC)
Сообщений: 1
Российская Федерация

Добрый день.
Подскажите, сборка работает только под x64?

Если убрать из свойств проекта строку:

<RuntimeIdentifier>win-x64</RuntimeIdentifier>

то получаем:

"Could not load type 'System.Security.Cryptography.Gost3410CryptoServiceProvider' from assembly 'System.Security.Cryptography.Csp, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'."

Алгоритм в используемой подписи - 1.2.643.7.1.1.3.2

Спасибо
Offline Артём Макаров  
#127 Оставлено : 12 марта 2021 г. 22:10:06(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
Автор: vpn61 Перейти к цитате
Добрый день.
Подскажите, сборка работает только под x64?

Если убрать из свойств проекта строку:

<RuntimeIdentifier>win-x64</RuntimeIdentifier>

то получаем:

"Could not load type 'System.Security.Cryptography.Gost3410CryptoServiceProvider' from assembly 'System.Security.Cryptography.Csp, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'."

Алгоритм в используемой подписи - 1.2.643.7.1.1.3.2

Спасибо


Сейчас собираем рантайм только для x64. x86 собирать пока не пробовали.

ps. Можно попробовать собрать самостоятельно corefx через build -arch x86. После сборки должен появиться пакет для x86. Возможны теоретические проблемы с NetStandard, так как он тоже собирается под x64, но надо проверять.

Отредактировано пользователем 15 марта 2021 г. 8:30:54(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline OFFOSORG  
#128 Оставлено : 15 марта 2021 г. 12:39:29(UTC)
OFFOSORG

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.03.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Рязань

Сказал(а) «Спасибо»: 2 раз
Здравствуйте. Стоит задача подписи 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) загружен 8 раз(а).

Отредактировано пользователем 15 марта 2021 г. 12:41:09(UTC)  | Причина: Не указана

Offline Артём Макаров  
#129 Оставлено : 15 марта 2021 г. 12:51:31(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
Автор: OFFOSORG Перейти к цитате
Здравствуйте. Стоит задача подписи 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) загружен 8 раз(а).


Добрый день. Подскажите пожалуйста, как именно вы загружаете сертификат (хранилище, из файла (с установкой контейнера или нет)?).

Если возможно - соберите небольшой примерчик из проекта и сертификата, на котором можно проверить данное поведение.
Техническую поддержку оказываем тут
Наша база знаний
Offline OFFOSORG  
#130 Оставлено : 15 марта 2021 г. 12:56:56(UTC)
OFFOSORG

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.03.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Рязань

Сказал(а) «Спасибо»: 2 раз
Сертификат устанавливается в Личное хранилище после установки CSP (реестр).
Потом в программе сертификат подгружается из хранилища (X509Store) по отпечатку.

Проект-пример есть, специально сделал, чтобы исключить различные конфликты.
Но я вероятно не имею права приложить вам сам сертификат.
Создаваемый вручную сертификат в вашем примере (из массива байт Gost2012_256Pfx) нормально работает.
Имеет ли смысл смотреть проект без сертификата, не знаю :(
Offline Артём Макаров  
#131 Оставлено : 15 марта 2021 г. 13:00:56(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
Приложите хотя бы cer файл сертификата (содержит только открытый ключ), если возможно. Если нет - попробуйте воспроизвести поведение в каким либо другим сертификатом pfx, который вы сможете переслать.

Можно сюда или на почту makarov@cryptopro.ru
Техническую поддержку оказываем тут
Наша база знаний
Offline OFFOSORG  
#132 Оставлено : 15 марта 2021 г. 14:09:30(UTC)
OFFOSORG

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.03.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Рязань

Сказал(а) «Спасибо»: 2 раз
Есть сертификат, который можно передать, и на котором ошибка воспроизводится.
Один момент в нем есть, алгоритмы отличаются.

Прикладываю ссылку на Яндекс.Диск.
Не знаю разрешены ли здесь ссылки, если нет, поправьте меня.
Проект легкий, но в папке lib всё необходимое по сборке, итого ~=500Мб.
Сертификат (пароль в имени) и демонстративные картинки там же, в папке "Прочее".
Ничего дополнительно ставить не нужно, можно уже вызывать "dotnet build" :)
Offline Артём Макаров  
#133 Оставлено : 15 марта 2021 г. 14:50:18(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
Воспроизвести не получилось увы. Тестировалось на версии csp 5.0.11736 и 5.0.12099 (старше и младше вашей версии). Ключ из приложенного сертификата успешно достаётся.

Можно попробовать самостоятельно подцепить символы и походить по методу
private T GetPrivateKey<T>(Func<CspParameters, T> createCsp, Func<CngKey, T> createCng, Func<IntPtr, int, T> createNoPersistCsp = null) where T : AsymmetricAlgorithm.

https://github.com/Crypt....PrivateKey.cs#L253-L293

В идеале, делегат createCng для госта вызываться не должен (там та самая заглушка, кидающая вашу ошибку), так как провайдер не поддерживает CNG, а должно уходить в ветку csp и успешно получаться клюс.
Техническую поддержку оказываем тут
Наша база знаний
Offline OFFOSORG  
#134 Оставлено : 15 марта 2021 г. 15:05:16(UTC)
OFFOSORG

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.03.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Рязань

Сказал(а) «Спасибо»: 2 раз
Артем, подскажите, пожалуйста.
Что необходимо установить и как настроить, чтобы оно и у меня работало?)
Как мы теперь понимаем, дело где то в моем CSP..

По GetPrivateKey уже гулял, да, постоянно в тот заглушечный делегат и попадаем ;)

Отредактировано пользователем 15 марта 2021 г. 15:06:14(UTC)  | Причина: Не указана

Offline Артём Макаров  
#135 Оставлено : 15 марта 2021 г. 15:11:03(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
Не могу к сожалению пока далее подсказать пока что.

т.е. TryAcquireCngPrivateKey(CertContext, out cngHandleOptions) возвращает не null? Я правильно понимаю? Ожидаемое поведение - заход в метод TryAcquireCngPrivateKey, который после CryptAcquireCertificatePrivateKey должен возвращать ошибку и в результате null.

Если подозреваете csp - попробуйте ещё раз удалить, перезапустить, установить, перезапустить машину. Если на сайте есть другая доступная версия - попробуйте её.

Я пока не могу сказать, в чём именно дело.
Техническую поддержку оказываем тут
Наша база знаний
Offline OFFOSORG  
#136 Оставлено : 15 марта 2021 г. 15:18:30(UTC)
OFFOSORG

Статус: Новичок

Группы: Участники
Зарегистрирован: 15.03.2021(UTC)
Сообщений: 7
Российская Федерация
Откуда: Рязань

Сказал(а) «Спасибо»: 2 раз
Да, возвращает не null. Мы заходим в TryAcquireCngPrivateKey, а там методом Interop.crypt32.CryptAcquireCertificatePrivateKey получаем валидный объект приватного ключа, и на выход из метода (CngKeyHandleOpenOptions.None).

Переустанавливать уже много раз пробовал, даже windows переустанавливал)

Возможно по стандартным каким зависимостям подскажете? КриптоПро .Net обязательно должно быть установлено? (а в runtime?) И тоже самое про .Net SDK.


Upd: Ничего не остается, кроме как пробовать разные версии CSP, буду отписывать тут, вдруг кому потом пригодится).
1. CSP 4.09963 (4.0.9019 KC1) - полет нормальный, хотя "на глаз" и медленно.
2. CSP 5.0.11455 KC1 - работает, нормально.
Вышеописанные версии являются сертифицированными. Тип лицензии в программе - Серверная, у меня же была Демонстрационная.
3. 5.0.11944 KC1 (демонстрационная) - работает, нормально.
4. 5.0.11998 KC1 (демонстрационная) - Ошибка.

Бинго. Значит с Release кандитатом какой-то затык. А после переустановки я наверное последнюю предлагаемую (без регистрации) версию и накатил, после чего поломалось.. Надеюсь мой потраченный впустую день будет кому-то полезен..

По установке и проверке.
1. Устанавливаем CSP (можно не перезагружаться)
2. Устанавливаем сертификат
3. Достаем в коде объект сертификата. Если поле приватного ключа не Exception, то порядок.
(сам сертификат при этом должен иметь приватный ключ)

Отредактировано пользователем 15 марта 2021 г. 17:24:03(UTC)  | Причина: Не указана

Offline Артём Макаров  
#137 Оставлено : 15 марта 2021 г. 15:23:09(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
КриптоПро .Net и его sdk абсолютно не нужны, но и мешать они не должны.

Чуть позже постараюсь ещё дополнительно посмотреть вашу проблему. Если будет информация - отпишусь.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Артём Макаров за этот пост.
OFFOSORG оставлено 15.03.2021(UTC)
Offline Артём Макаров  
#138 Оставлено : 16 марта 2021 г. 12:35:55(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
Ошибку воспроизвели на версии 5.0.11998. Внесли правки в сборку x509, последняя сборка из CI должна работать корректно - https://ci.appveyor.com/...pdorx81hxmn59c/artifacts

Подробнее - https://github.com/CryptoPro/corefx/issues/46

Отредактировано пользователем 16 марта 2021 г. 12:36:27(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline madsen  
#139 Оставлено : 22 марта 2021 г. 23:11:48(UTC)
madsen

Статус: Новичок

Группы: Участники
Зарегистрирован: 22.03.2021(UTC)
Сообщений: 3

Сказал(а) «Спасибо»: 1 раз
Здравствуйте.
В приложении на .NET Framework 4.8 метод CryptoConfig.CreateFromName успешно создаёт объект
net 4.8.png (16kb) загружен 8 раз(а).
Но в приложении на .NET Core 3.1 этот метод возвращает null
core.png (24kb) загружен 4 раз(а).
Отмечу, что на Core метод из Nuget пакета
nuget.png (9kb) загружен 5 раз(а).
Подскажите пожалуйста, в чём проблема может быть
Offline Артём Макаров  
#140 Оставлено : 23 марта 2021 г. 8:35:51(UTC)
Артём Макаров

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 20.02.2017(UTC)
Сообщений: 139

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 31 раз в 31 постах
День добрый. В настоящий момент классы SignatureDescription помечены как internal в сборке Xml, по аналогии с классами от ms.

Подскажите пожалуйста, для чего вам необходимо получить объект SignatureDescription?
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
9 Страницы«<56789>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.