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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline NeoEvgeny  
#1 Оставлено : 11 ноября 2022 г. 15:23:28(UTC)
NeoEvgeny

Статус: Новичок

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

Сказал(а) «Спасибо»: 5 раз
Формирую подпись для файла с помощью функций КриптоПро ЭЦП SDK. При вызове функции CryptMsgUpdate() появляется окно с запросом пароля.
Каким параметром можно задать пароль, чтобы окна ввода пароля не было?
Offline Андрей Русев  
#2 Оставлено : 14 ноября 2022 г. 16:06:41(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,665

Сказал(а) «Спасибо»: 51 раз
Поблагодарили: 714 раз в 494 постах
Надо использовать CertSetCertificateContextProperty(CERT_KEY_PROV_INFO_PROP_ID), дозаполнив PIN-ом массив структур CRYPT_KEY_PROV_PARAM.
Примерно как тут: https://www.cryptopro.ru...aspx?g=posts&t=19352
Имейте в виду, что pCertContext перед CertSetCertificateContextProperty надо переложить в memory store, иначе изменения "осядут" в реальном хранилище (псевдокод без проверок успеха):
Код:
hMemoryStore = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0, 0, NULL)
CertAddCertificateContextToStore(hMemoryStore, pCertContext, CERT_STORE_ADD_REPLACE_EXISTING, &pMemoryCert)
CertGetCertificateContextProperty(pMemoryCert, CERT_KEY_PROV_INFO_PROP_ID, pbData, &cbData)
CRYPT_KEY_PROV_PARAM pProvParam[] = { { PP_SIGNATURE_PIN, NULL, 0, 0 } }
PCRYPT_KEY_PROV_INFO pProvInfo = (PCRYPT_KEY_PROV_INFO)pbData
// на самом деле здесь могли уже быть параметры, тогда мы их затёрли одним лишь паролем:
pProvParam[0].pbData = (PBYTE)szPIN
pProvParam[0].cbData = (DWORD)strlen(szPIN) + 1
pProvInfo->cProvParam = 1
pProvInfo->rgProvParam = pProvParam
CertSetCertificateContextProperty(pMemoryCert, CERT_KEY_PROV_INFO_PROP_ID, 0, pProvInfo)
Официальная техподдержка. Официальная база знаний.
thanks 2 пользователей поблагодарили Русев Андрей за этот пост.
Санчир Момолдаев оставлено 14.11.2022(UTC), NeoEvgeny оставлено 17.11.2022(UTC)
Offline NeoEvgeny  
#3 Оставлено : 1 декабря 2022 г. 14:59:43(UTC)
NeoEvgeny

Статус: Новичок

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

Сказал(а) «Спасибо»: 5 раз
Цитата:
Надо использовать CertSetCertificateContextProperty(CERT_KEY_PROV_INFO_PROP_ID), дозаполнив PIN-ом массив структур CRYPT_KEY_PROV_PARAM.
Примерно как тут: https://www.cryptopro.ru...aspx?g=posts&t=19352

Сделал как в примере, pin больше не запрашивает, но появляется окно - okno.jpg (15kb) загружен 16 раз(а).
Подскажите, каким параметром можно убрать это окно?
Offline Андрей *  
#4 Оставлено : 1 декабря 2022 г. 15:21:31(UTC)
Андрей *

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

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,211
Мужчина
Российская Федерация

Сказал «Спасибо»: 622 раз
Поблагодарили: 2399 раз в 1888 постах
Вы при импорте ключа указывали "усиленная защита закрытого ключа" ?

Snimok ehkrana ot 2022-12-01 16-19-46.png (16kb) загружен 7 раз(а).

Попробуйте через pfx экспорт\импорт переустановить сертификат со ссылкой на новый контейнер и при импорте не отмечайте эту опцию.
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.