Статус: Новичок
Группы: Участники
Зарегистрирован: 11.06.2015(UTC) Сообщений: 5 Откуда: Moscow Сказал(а) «Спасибо»: 4 раз
|
Действительно, запрещен экспорт ключа, добавил проверку флага CRYPT_EXPORT_KEY и исключил экспорт как средство проверки пароля...
if ((dwParam & CRYPT_EXPORT_KEY) == CRYPT_EXPORT_KEY) { if (!CryptExportKey(hCryptKey, 0, PRIVATEKEYBLOB, 0, NULL, &dwBlobLen)) {...} }
В общем, все заработало в итоге, при передаче корректных паролей (в моем примере для 3-х контейнеров) сформировалось итоговое signed CMS с тремя подписями.
Спасибо большое, за помощь!
PS: Получается, менее "радикальных" средств (чем подписание или экспорт ключа) проверки корректности пароля нет?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,429
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 573 раз в 399 постах
|
Для ускорения работы провайдера часть операций в нём отложены (например, GetUserKey() почти ничего не делает), поэтому проверка PIN-а произойдёт, когда будут непосредственные действия с ключом/контейнером:
- экспорт закрытого ключа - не всегда разрешён
- импорт открытого ключа на закрытый (протокол DH) - может быть запрещён для AT_SIGNATURE-ключей (на картах УЭК и ФКН-токенах в CSP/ФКН 3.9 и более древних)
- подпись
- запись сертификата - SetKeyParam(KP_CERTIFICATE)
- запись расширений - SetProvParam(PP_CONTAINER_EXTENSION)
- смена PIN-а
- создание долговременного ключа
- при вызове GetProvParam(PP_HCRYPTPROV) - это то, что вам нужно
Кроме того, ФКН-токены и наш самый новый CSP (который ещё недоступен) проверяют PIN сразу на SetProvParam(PP_KEYEXCHANGE_PIN) и этот вызов будет возвращать ошибку. |
|
2 пользователей поблагодарили Русев Андрей за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close