Статус: Новичок
Группы: Участники
Зарегистрирован: 04.07.2024(UTC) Сообщений: 2
|
Добрый день! OS: AstraLinux 1.7 CP: КриптоПро CSP 5.0.13000 Установлен КриптоПро HSM Из консоли подписание ключём из HSM (HSMDB) происходит без ошибок. Программным кодом (C++) подписание ключём из HDIMAGE проходит также без ошибок, проверка подписи публичным без ошибок. Контейнер в HDIMAGE с пином/пасвордом и без него - подписание работает. Но ежели тем же программным кодом пытаться подписать ключём из HSMDB Цитата:[2024.07.05 13:35:34 +03:00] [info] [13552]: Add a certificate ca146aba702fc875d55980c0cc2e23e3bc41f661: HSMDB\\abcd [2024.07.05 13:35:34 +03:00] [debug] [13552]: begin initContainer ca146aba702fc875d55980c0cc2e23e3bc41f661 [13552]: <capi10>CryptAcquireContextA!failed: LastError = 0x8009001A [13552]: Вставьте носитель с контейнером abcd [13552]: <capi10>CryptAcquireContextA!failed: LastError = 0x8009001A [13552]: Press 'c' to cancel or 'u' to update (dynamic_readers must be on): [2024.07.05 13:35:34 +03:00] [error] [13552]: worker_crypto.cpp::136 [008009001A] WorkerCrypto::initContainer CryptAcquireContext ca146aba702fc875d55980c0cc2e23e3bc41f661 [HSMDB\\abcd]; Keyset as registered is invalid. [2024.07.05 13:35:34 +03:00] [debug] [13552]: end initContainer ca146aba702fc875d55980c0cc2e23e3bc41f661 Посему, есть вопросы: 1. Работа с HSM как-то отличается от работы с HDIMAGE? 2. куда дели "ЖТЯИ.00096-01 92 01. КриптоПро HSM. Руководство программиста"? 3. почему нет нормальной документации на продукты КриптоПро?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,425
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 570 раз в 397 постах
|
Здравствуйте. 1. Принципиально не отличается. 2. Документ по-прежнему в составе комплекта документации. 3. Начинать знакомство с разработкой можно с https://support.cryptopr...7/2/sbork-primerov-n-nixПо вашей диагностике можно предположить, например, что вы не указали правильное имя провайдера (в духе "Crypto-Pro GOST R 34.10-2012 HSM CSP") при CryptAcquireContext. Плюс вместо имени в формате MEDIA\UNIQUE\CONTAINER - у вас HSMDB\\abcd - лучше использовать формат \\.\READER\CONTAINER - получается \\.\HSMDB\abcd (см. форматы имён в CPDN). И надо не забывать про необходимость экранирования бэкслешей в коде и консоли. |
|
2 пользователей поблагодарили Русев Андрей за этот пост.
|
nickm оставлено 09.07.2024(UTC), Андрей * оставлено 09.07.2024(UTC)
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 04.07.2024(UTC) Сообщений: 2
|
Если получать доступ до \\.\HDIMAGE\blah-blah ошибок нет и всё огонь, но При вызове метода CryptAcquireContext на HSMDB выводится ошибка: Цитата: Вставьте носитель с контейнером abcd CryptAcquireContextA!failed: LastError = 0x8009001A Press 'c' to cancel or 'u' to update (dynamic_readers must be on) Keyset as registered is invalid.
работаю с этими стораджами 1 в 1 Отредактировано пользователем 9 июля 2024 г. 15:25:16(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,425
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 570 раз в 397 постах
|
Диагностика, которую вы приводите, буквально озанчает, что в указанном провайдере (помните я засотрял внимание на его имени) нет контейнера с таким именем. Вы говорите, что в консоли у вас работает подпись ключом на HSM. Можете привести пример такой команды с её выдачей на консоль? В духе: Код:[user@hsm-x64-centos6 ~]$ /opt/cprocsp/bin/amd64/csptest -keyset -container '\\.\hsm\srv512LMb' -unique -check -provider 'Crypto-Pro GOST R 34.10-2012 HSM CSP' -pass 11111111
CSP (Type:80) v5.0.10010 KB2 Release Ver:5.0.10010 OS:Linux CPU:AMD64 FastCode:READY:AVX,AVX2.
AcquireContext: OK. HCRYPTPROV: 137897611
GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 HSM CSP
Container name: "HSM\\srv512LM.002\FBB5"
Check header passed.
Signature key is available. HCRYPTKEY: 0x838295b
Exchange key is available. HCRYPTKEY: 0x83828c3
Symmetric key is not available.
UEC key is not available.
License: Cert without license
Check container passed.
Check sign passed.
Check verify signature on private key passed.
Check verify signature on public key passed.
Check import passed (import restricted).
Check sign passed.
Check verify signature on private key passed.
Check verify signature on public key passed.
Check import passed.
Certificate in container matches AT_KEYEXCHANGE key.
Keys in container:
signature key
exchange key
Extensions:
OID: 1.2.643.2.2.37.3.10
PrivKey: Not specified - 09.07.2027 14:07:58 (UTC)
OID: 1.2.643.2.2.37.3.9
PrivKey: Not specified - 09.07.2027 14:07:59 (UTC)
Total: SYS: 0.010 sec USR: 0.010 sec UTC: 0.240 sec
[ErrorCode: 0x00000000]
И фрагмент кода, который с этим же контейнером и провайдером возвращает 0x8009001A = NTE_KEYSET_ENTRY_BAD. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close