Статус: Участник
Группы: Участники
Зарегистрирован: 24.01.2008(UTC) Сообщений: 16  Откуда: Москва
|
Добрый день. Как закрытый ключ связать с сертификатом? Есть импортированная в хранилище ключевая пара, мне надо, чтобы он был привязан к сертификату. Отредактировано пользователем 25 января 2008 г. 17:13:25(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
CertSetCertificateContextProperty |
С уважением, Юрий Строжевский |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 24.01.2008(UTC) Сообщений: 16  Откуда: Москва
|
Прекрасно :) А какие параметры передавать в эту функцию? Если не сложно, то дайте код.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Я в Вас верю - сами догадаетесь какие параметры туда передавать. Главное - наличие MSDN, где можно про эти параметры почитать :) |
С уважением, Юрий Строжевский |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 24.01.2008(UTC) Сообщений: 16  Откуда: Москва
|
А не кажется ли вам, что если вопрос задается здесь на форуме, то ищется ответ сколько-нибудь развернутый, а не отсыл в гугл/мсдн/фак?
И потом, если вы гуру, то зачем скрываете свои знания? :)
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Тогда задам вопрос я: 1) Вы посмотрели MSDN по этой функции? 2) Посмотрели примеры использования этой функции (там же в MSDN)? 3) Что-то попробывали? 4) Что не получилось? |
С уважением, Юрий Строжевский |
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 24.01.2008(UTC) Сообщений: 16  Откуда: Москва
|
Вот это уже другой разговор :) Я опишу задачу, ок? Есть сертификат, есть экспортированная пара ключей. Мне надо установить этот сертификат и ключи в систему и связать их друг с другом. Что у меня есть: сертификат в системе сохраняется, ключи в хранилище тоже попадают. Но привязать друг к другу не получается. Код:
// получаю имя контейнера провайдера
CryptGetProvParam(hProv, PP_CONTAINER, PByte(Buf), BufSize, 0);
WideBuf1 := Buf;
provInfo.pwszContainerName := PWideChar(WideBuf1);
// получаю имя провайдера
CryptGetProvParam(hProv, PP_NAME, PByte(Buf), BufSize, 0)
WideBuf2 := Buf;
provInfo.pwszContainerName := PWideChar(WideBuf2);
// получаю тип провайдера
CryptGetProvParam(hProv, PP_PROVTYPE, @DWordBuf, BufSize, 0)
provInfo.dwProvType := DWordBuf;
// заполняем
provInfo.dwFlags := 0;
provInfo.cProvParam := 0;
provInfo.rgProvParam := nil;
provInfo.dwKeySpec := AT_SIGNATURE;
// выставляем
CertSetCertificateContextProperty(pCert, CERT_KEY_PROV_INFO_PROP_ID, 0, @provInfo)
// пробовал и это
CertSetCertificateContextProperty(pCert, CERT_KEY_PROV_HANDLE_PROP_ID, 0, @hProv)
// и это тоже пробовал
KeyContext.cbSize := SizeOf(CERT_KEY_CONTEXT);
KeyContext.hCryptProv := hProv;
KeyContext.dwKeySpec := AT_SIGNATURE;
CertSetCertificateContextProperty(pCert, CERT_KEY_CONTEXT_PROP_ID, 0, @KeyContext)
Код проглатывается без ошибок, однако сертификат не связывается к ключом. То, что ключ привязан к сертификату, проверяю, открывая сертфикат в mmc/certificates.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 24.01.2008(UTC) Сообщений: 16  Откуда: Москва
|
Решил проблему таки. Сертификат в хранилище надо было добавлять уже после того, как добавлены ключи и установлена привязка ключей и сертификата. И достаточно было следующего кода для привязки ключей и сертификата. Код:provInfo.pwszContainerName := nil;
provInfo.pwszProvName := nil;
provInfo.dwProvType := PROV_GOST_DH;
provInfo.dwFlags := 0;
provInfo.cProvParam := 0;
provInfo.rgProvParam := nil;
provInfo.dwKeySpec := AT_SIGNATURE;
CertSetCertificateContextProperty(pCert, CERT_KEY_PROV_INFO_PROP_ID, 0, @provInfo)
Отредактировано пользователем 25 января 2008 г. 18:56:54(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Немного не понял: а "provInfo.pwszProvName" где? Почему два раза "provInfo.pwszContainerName "? |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 93 раз в 67 постах
|
Нет, сертификат сначала надо добавить в хранилище, а потом устанавливать связь с контейнером ключей. |
С уважением, Юрий Строжевский |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close