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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline zer0c14  
#1 Оставлено : 26 сентября 2014 г. 16:30:33(UTC)
zer0c14

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

Группы: Участники
Зарегистрирован: 25.05.2012(UTC)
Сообщений: 27
Мужчина
Российская Федерация
Откуда: Нижний Новгород

Сказал «Спасибо»: 4 раз
Необходимо получить сертификат и дату подписания из сообщения подписи. С датой подписания все понятно, используем СryptMsgGetParam+CMSG_SIGNER_AUTH_ATTR_PARAM. При получении CERT_INFO, получаю не поностью заполненную структуру (СryptMsgGetParam+CMSG_SIGNER_CERT_INFO_PARAM), например отсутствует информация о расширениях сертификата. Вопрос, каким образом можно получить из подписи всю информацию о сертификате, т.к. CMSG_SIGNER_CERT_INFO_PARAM вероятно для данной задачи не подойдет.

СryptMsgGetParam function
Цитата:
Only the Issuer and SerialNumber fields in the CERT_INFO structure returned contain available, valid data


Код:

FILE *file = fopen("/tmp/signature" , "rb");
fseek(file, 0, SEEK_END);
long buffer_len = ftell(file);
rewind(file);
char *buffer = (char*) malloc (sizeof(char) * buffer_len);
fread(buffer, 1, buffer_len, file);
fclose(file);
HCRYPTMSG msg = CryptMsgOpenToDecode(
    X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, 0, 0, 0, NULL, NULL
);
DWORD data_len = 0;
CryptMsgUpdate(msg, (BYTE *) buffer, (DWORD) buffer_len, 1);
CryptMsgGetParam(msg, CMSG_SIGNER_CERT_INFO_PARAM, 0, NULL, &data_len);
void *data = malloc(data_len);
CryptMsgGetParam(msg, CMSG_SIGNER_CERT_INFO_PARAM, 0, data, &data_len);
PCERT_INFO cert_info = (PCERT_INFO) data;
printf("%d\n", cert_info->Subject.cbData); // >0
printf("%d\n", cert_info->Subject.cbData); //  0
printf("%d\n", cert_info->cExtension);     //  0

Отредактировано пользователем 26 сентября 2014 г. 17:04:40(UTC)  | Причина: Не указана

Вложение(я):
signature (2kb) загружен 5 раз(а).
data (2kb) загружен 2 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Kirill Sobolev  
#2 Оставлено : 26 сентября 2014 г. 18:06:27(UTC)
Кирилл Соболев

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

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

Поблагодарили: 177 раз в 168 постах
Нужно искать среди сертификатов, которые в этом сообщении могут содержаться.
Критерий поиска - полученная структура CERT_INFO.
Техническую поддержку оказываем тут
Наша база знаний
Offline zer0c14  
#3 Оставлено : 3 октября 2014 г. 13:16:10(UTC)
zer0c14

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

Группы: Участники
Зарегистрирован: 25.05.2012(UTC)
Сообщений: 27
Мужчина
Российская Федерация
Откуда: Нижний Новгород

Сказал «Спасибо»: 4 раз
Автор: Kirill Sobolev Перейти к цитате
Нужно искать среди сертификатов, которые в этом сообщении могут содержаться.
Критерий поиска - полученная структура CERT_INFO.

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