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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline andrei_akm  
#1 Оставлено : 9 февраля 2011 г. 15:27:07(UTC)
andrei_akm

Статус: Участник

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

Нужно получить открытый ключ в виде строки. Делаю на обычном с++ (не .NET).
Возможно, это можно сделать так:

DecodedAttr = CertFindRDNAttr(OID..)
CertRDNValueToStr(..DecodedAttr->Value..)

Но я не знаю, какой OID нужен для открытого ключа.
Пробовал сделать так:
- делаю экспорт открытого ключа, получаю его длину блоба dwKeyBlobLen и сам ключевой блоб bKeyBlob;
- потом просто:

CERT_RDN_VALUE_BLOB crvb;
crvb.cbData = dwKeyBlobLen;
crvb.pbData = &bKeyBlob;
cbPubKeyStrSize = CertRDNValueToStr(CERT_RDN_ENCODED_BLOB, &crvb, NULL, 0);
pbPubKeyStr = (LPWSTR)malloc(cbPubKeyStrSize*sizeof(WCHAR));
cbPubKeyStrSize = CertRDNValueToStr(CERT_RDN_ENCODED_BLOB, &crvb, pbPubKeyStr, cbPubKeyStrSize);

Все работает замечательно, но возвращаемый pbPubKeyStr просто совпадает с bKeyBlob, только в конце добавляется 0...
Видимо, такой метод не подходит, но как добиться нужного результата?
Offline Kirill Sobolev  
#2 Оставлено : 9 февраля 2011 г. 16:10:47(UTC)
Кирилл Соболев

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

Группы: Участники
Зарегистрирован: 25.12.2007(UTC)
Сообщений: 1,733
Мужчина
Откуда: КРИПТО-ПРО

Поблагодарили: 177 раз в 168 постах
Возможно, Вам подойдет строка, формируемая CryptBinaryToString.
OID туда никакой передавать не нужно, только блоб ключа.
Техническую поддержку оказываем тут
Наша база знаний
Offline andrei_akm  
#3 Оставлено : 10 февраля 2011 г. 20:14:05(UTC)
andrei_akm

Статус: Участник

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

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