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

Уведомление

Icon
Error

36 Страницы«<1213141516>»
Опции
К последнему сообщению К первому непрочитанному
Offline Артём Макаров  
#131 Оставлено : 15 марта 2021 г. 13:00:56(UTC)
Артём Макаров

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 62 раз в 58 постах
Приложите хотя бы 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)
Сообщений: 216

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 62 раз в 58 постах
Воспроизвести не получилось увы. Тестировалось на версии 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)
Сообщений: 216

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

т.е. 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)
Сообщений: 216

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

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

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

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

Сказал(а) «Спасибо»: 4 раз
Поблагодарили: 62 раз в 58 постах
Ошибку воспроизвели на версии 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)
Сообщений: 216

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

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