Статус: Участник
Группы: Участники
Зарегистрирован: 21.12.2007(UTC) Сообщений: 14
|
Здравствуйте!
Возникла проблема при подписи файла. При вызове CryptMsgCalculateEncodedLength выдается ошибка NTE_NO_KEY "Ключ не существует". Вот что делаю: с помощью CryptAcquireCertificatePrivateKey связываюсь с закрытым ключом, потом в структуру CMSG_SIGNER_ENCODE_INFO передаю полученный контекст криптопровайдера и тип закрытого ключа dwKeySpec. При этом при вычислении длины подписанного сообщения вылетает эта ошибка. Понимаю, что дело в контейнере нет требуемого ключа, который я передаю в dwKeySpec. Он у меня возвращается AT_SIGNATURE, но если пренудительно указать AT_KEYEXCHANGE, то все нормально. Почему тогда CryptAcquireCertificatePrivateKey возвращает заведомо тот тип ключа, которого нет в контейнере? И как тогда указывать тип ключа, чтобы работало всегда корректно? Пытаться получить сначала один тип ключа, если не получил, то другой? Или всегда писать AT_KEYEXCHANGE?
Заранее благодарен за ответы.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.12.2008(UTC) Сообщений: 25 Откуда: Че
|
вопрос, кстати, актуальный до сих пор
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
C каким ключом сертификат был установлен, такой keyspec и вернет CryptAcquireCertificatePrivateKey. В чем вопрос? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 25.12.2008(UTC) Сообщений: 25 Откуда: Че
|
всё, вопрос исчерпан, разобрался что к чему. правда, непонятно, почему УЦ выписывает сертификаты с парами ключей AT_KEYEXCHANGE, а не AT_SIGNATURE. О_О
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close