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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline bolknote  
#1 Оставлено : 7 июня 2013 г. 9:57:24(UTC)
bolknote

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

Группы: Участники
Зарегистрирован: 04.06.2013(UTC)
Сообщений: 12
Российская Федерация
Откуда: Казань

Строкнулись с непонятной проблемой в следующем коде (http://pastebin.com/GWt7gu5V):
Цитата:

#include <CSP_WinDef.h>
#include <CSP_WinCrypt.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
char *name = "pages.decoded";
FILE *fp = fopen(name, "r");

fseek(fp, 0L, SEEK_END);
int filesize = ftell(fp);
rewind(fp);

char *buffer = malloc(filesize);
fread(buffer, filesize, 1, fp);

fclose(fp);

DWORD size = 0;
if (!CryptDecodeObject(X509_ASN_ENCODING, X509_SEQUENCE_OF_ANY, buffer, filesize, 0, NULL, &size)) {
printf("Error: 0x%x\n", GetLastError());
} else {
printf("Size: %d\n", size);
}
}

Файл, который тут используется, так же прикладываю: http://yadi.sk/d/EC4cA7-d5_WoS

Странность вот в чём: CryptDecodeObject выдаёт ноль (ошибка, судя по http://msdn.microsoft.com/en-us/library/windows/desktop/aa379911(v=vs.85).aspx), а GetLastError тоже выдаёт ноль, т.е. не показывает в чём же ошибка!

На Винде этот же код работает, на Линуксе — нет.

На всякий случай, вот строка компиляции:
Цитата:
gcc -L/opt/cprocsp/lib/ia32 -lcapi20 -I/opt/cprocsp/include/cpcsp test.c


Кто-нибудь сталкивался с таким странным поведением? Что происходит?
Offline Андрей Писарев  
#2 Оставлено : 7 июня 2013 г. 10:20:04(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
guiDumpASN-ng выдает:
Цитата:
. OBJECT IDENTIFIER '2 25'
: . . . . . . . . Error: OID has invalid encoding.


Техническую поддержку оказываем тут
Наша база знаний
Offline bolknote  
#3 Оставлено : 7 июня 2013 г. 12:02:17(UTC)
bolknote

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

Группы: Участники
Зарегистрирован: 04.06.2013(UTC)
Сообщений: 12
Российская Федерация
Откуда: Казань

Автор: Андрей * Перейти к цитате
guiDumpASN-ng выдает:
Цитата:
. OBJECT IDENTIFIER '2 25'
: . . . . . . . . Error: OID has invalid encoding.



К сожалению, дело не в этом, вот другая подпись, без этого поля: http://yadi.sk/d/4wp5PZRk5_njc, результат тот же.
Offline Андрей Писарев  
#4 Оставлено : 7 июня 2013 г. 12:29:46(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Кстати, если сертификат проверить в утилите для проверки квалифицированных сертификатов:
"Поле "Issuer" описывает юридическое лицо и не содержит атрибут ОГРН.".
"Сертификат содержит поле Subject записанное в неправильном формате.".
Техническую поддержку оказываем тут
Наша база знаний
Offline bolknote  
#5 Оставлено : 7 июня 2013 г. 14:30:35(UTC)
bolknote

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

Группы: Участники
Зарегистрирован: 04.06.2013(UTC)
Сообщений: 12
Российская Федерация
Откуда: Казань

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