Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
Приложите хотя бы cer файл сертификата (содержит только открытый ключ), если возможно. Если нет - попробуйте воспроизвести поведение в каким либо другим сертификатом pfx, который вы сможете переслать. Можно сюда или на почту makarov@cryptopro.ru |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.03.2021(UTC) Сообщений: 7 Откуда: Рязань Сказал(а) «Спасибо»: 2 раз
|
Есть сертификат, который можно передать, и на котором ошибка воспроизводится. Один момент в нем есть, алгоритмы отличаются. Прикладываю ссылку на Яндекс.Диск. Не знаю разрешены ли здесь ссылки, если нет, поправьте меня. Проект легкий, но в папке lib всё необходимое по сборке, итого ~=500Мб. Сертификат (пароль в имени) и демонстративные картинки там же, в папке "Прочее". Ничего дополнительно ставить не нужно, можно уже вызывать "dotnet build" :)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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 и успешно получаться клюс. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 15.03.2021(UTC) Сообщений: 7 Откуда: Рязань Сказал(а) «Спасибо»: 2 раз
|
Артем, подскажите, пожалуйста. Что необходимо установить и как настроить, чтобы оно и у меня работало?) Как мы теперь понимаем, дело где то в моем CSP.. По GetPrivateKey уже гулял, да, постоянно в тот заглушечный делегат и попадаем ;) Отредактировано пользователем 15 марта 2021 г. 15:06:14(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
Не могу к сожалению пока далее подсказать пока что.
т.е. TryAcquireCngPrivateKey(CertContext, out cngHandleOptions) возвращает не null? Я правильно понимаю? Ожидаемое поведение - заход в метод TryAcquireCngPrivateKey, который после CryptAcquireCertificatePrivateKey должен возвращать ошибку и в результате null.
Если подозреваете csp - попробуйте ещё раз удалить, перезапустить, установить, перезапустить машину. Если на сайте есть другая доступная версия - попробуйте её.
Я пока не могу сказать, в чём именно дело.
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
КриптоПро .Net и его sdk абсолютно не нужны, но и мешать они не должны.
Чуть позже постараюсь ещё дополнительно посмотреть вашу проблему. Если будет информация - отпишусь. |
|
1 пользователь поблагодарил Артём Макаров за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 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 раз(а).Подскажите пожалуйста, в чём проблема может быть
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 20.02.2017(UTC) Сообщений: 217
Сказал(а) «Спасибо»: 4 раз Поблагодарили: 63 раз в 59 постах
|
День добрый. В настоящий момент классы SignatureDescription помечены как internal в сборке Xml, по аналогии с классами от ms.
Подскажите пожалуйста, для чего вам необходимо получить объект SignatureDescription? |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close