Статус: Участник
Группы: Участники
Зарегистрирован: 21.12.2007(UTC) Сообщений: 14
|
Добрый день! С помощью функции CryptAcquireCertificatePrivateKey получаю контекст криптопровайдера по сертификату, связанному с закрытым ключом. Далее надо проставить подпись под данными (с помощью функций CryptMsg...). В CMSG_SIGNER_ENCODE_INFO::dwKeySpec передаю тип ключа, полученный из функции CryptAcquireCertificatePrivateKey (вернулось AT_KEYEXCHANGE). Но потом вылетает ошибка "Ключ не существует". Если же туда передать значение AT_SIGNATURE, то вернется ошибка "Плохой ключ". Если же подпись сделать с помощью CryptSignMessage, то все отработает. И мои функции после этого будут нормально работать. Подскажите, пожалуйста, каким образом эта функция создает этот самый ключ? Пробовал с помощью функции CryptGenKey - возвращается ошибка про плохой ключ. Заранее благодарен
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
CryptAcquireCertificatePrivateKey не создает ключ, а инициализирует провайдер по контейнеру, связанному с сертификатом. Какую функцию Вы имели ввиду? Какие на самом деле ключи лежат в контейнере (можно посмотреть csptest) Насчет ошибки CryptGenKey - приведите полный пример вызова. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close