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

Уведомление

Icon
Error

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

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

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

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

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

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

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

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

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

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

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

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

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

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