Статус: Участник
Группы: Участники
Зарегистрирован: 23.06.2010(UTC) Сообщений: 24 Откуда: nowhere
|
Здравствуйте!
Подскажите, пожалуйста, куда нужно смотреть, чтобы понять почему происходит следующее:
вызов CryptAcquireContextW(&hCryptProv, pCryptKeyProvInfo->pwszContainerName, CP_GR3410_2001_PROV_W, PROV_GOST_2001_DH, CRYPT_SILENT) возвращает NTE_BAD_KEYSET_PARAM
в то время как CryptAcquireContextW(&hCryptProv, NULL, CP_GR3410_2001_PROV_W, PROV_GOST_2001_DH, CRYPT_VERIFYCONTEXT) отрабатывает нормально, возвращая хэндлер криптопрошного криптопровайдера (3.6.7491(5364) KC1 Built: Mar 20 2013 01:47:40, IA32)
а имя контейнера достаётся честным образом (через CertGetCertificateContextProperty/pwszContainerName) из честного криптопрошного сертификата, у которого:
Certificate info: Signature algorithm: GOST R 34.11/34.10-2001 Public key: GOST R 34.10-2001 (512 Bits) Extensions: Key Usage: Digital Signature, Non-repudiation, Key Encipherment, Data Encipherment Private key: Usage: encrypt/decrypt session keys (AT_KEYEXCHANGE) Container name: SCARD\ETOKEN_JAVA_xxxxxxxx\xxxx\xxxx Provider name: Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider Provider type: PROV_GOST_2001_DH
P.S. Этот код нормально работает у всех клиентов, кроме одного :(
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,658
Сказал(а) «Спасибо»: 50 раз Поблагодарили: 710 раз в 491 постах
|
Возможно, у этого клиента токен не вставлен в компьютер. Флаг CRYPT_SILENT подавляет окна - поменяйте флаги на 0 - возможно, проблемы нет или вы узнаете её детали. |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 23.06.2010(UTC) Сообщений: 24 Откуда: nowhere
|
Абсолютно точно вставлен. Когда нет токена, оно ругается NTE_BAD_KEYSET.
Может это быть связано с наличием на машине гостовских криптопровайдеров/сертификатов не от Крипто-Про? Если да, то есть ли какое-нибудь "наставление", как уберечься от проблем в этом случае?
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: sabretoothedhamster  Абсолютно точно вставлен. Когда нет токена, оно ругается NTE_BAD_KEYSET.
Может это быть связано с наличием на машине гостовских криптопровайдеров/сертификатов не от Крипто-Про? Если да, то есть ли какое-нибудь "наставление", как уберечься от проблем в этом случае? Уберечься: рекомендация не использовать несколько CSP на 1 РМ. Пример: у меня есть в системе сертификаты и контейнеры созданные для использования в ViPNet CSP поработал, удалил ViPNet CSP... перешел на КриптоПРО CSP. И при обращении к этим сертификатам->контейнерам для ViPNet CSP: [2148073497]: Набор ключей не определен |
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 23.06.2010(UTC) Сообщений: 24 Откуда: nowhere
|
Автор: Андрей *  Уберечься: рекомендация не использовать несколько CSP на 1 РМ.
К сожалению, не всегда этот совет можно дать заказчику (да и не всегда он может ему следовать по объективным причинам). Хотелось бы рекомендаций программного характера, которые можно реализовать в коде. Ветка-то про встраивание... Автор: Андрей *  у меня есть в системе сертификаты и контейнеры созданные для использования в ViPNet CSP поработал, удалил ViPNet CSP... перешел на КриптоПРО CSP. И при обращении к этим сертификатам->контейнерам для ViPNet CSP: [2148073497]: Набор ключей не определен "Не определен" - в этом случае совершенно понятно и закономерно, но это совсем не то, что NTE_BAD_KEYSET_PARAM в моём случае :(
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close