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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Евгений Пономаренко  
#1 Оставлено : 10 октября 2014 г. 12:02:09(UTC)
Евгений Пономаренко

Статус: Активный участник

Группы: Участники
Зарегистрирован: 03.05.2012(UTC)
Сообщений: 171
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 46 раз
Поблагодарили: 23 раз в 19 постах
Вызов для получения размера структуры:
PCERT_AUTHORITY_INFO_ACCESS aia_points_info=NULL;
DWORD request_sz=0;
BOOL bResult=CryptDecodeObject(X509_ASN_ENCODING|PKCS_7_ASN_ENCODING,
szOID_AUTHORITY_INFO_ACCESS,
pbData,cbData,
0,NULL,&request_sz);
возвращает 0. GetLastError() возвращает 0.
Как правильно декодировать AIA под Linux? под Win это все работает нормально.
КриптоПро CSP 3.6.7777 Linux/x64

Небольшое дополнение.
PCERT_POLICIES_INFO policies_info=NULL;
DWORD request_sz=0;
BOOL bResult=CryptDecodeObject(X509_ASN_ENCODING|PKCS_7_ASN_ENCODING,
szOID_CERT_POLICIES,
pbData,cbData,
0,NULL,&request_sz);
возвращает request_sz на единицу меньше, чем требуется. в результате в структуре policies_info в последней политике у элемента LPSTR pszPolicyIdentifier отсутствует \0 в конце. это приводит к разного рода неприятностям. Лечится выделением памяти на байт больше, чем запрошено.
Offline Юрий  
#2 Оставлено : 10 октября 2014 г. 12:24:01(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Заходим на страничку, ищем OID "szOID_AUTHORITY_INFO_ACCESS". Где же он? А нет его :)
Так что декодируйте его пока самостоятельно посредством вызовов CryptDecodeObject(...X509_SEQUENCE_OF_ANY...) и прочая.
С уважением,
Юрий Строжевский
thanks 2 пользователей поблагодарили Юрий за этот пост.
Евгений Пономаренко оставлено 10.10.2014(UTC), MCR оставлено 10.10.2014(UTC)
Offline Евгений Пономаренко  
#3 Оставлено : 10 октября 2014 г. 18:33:19(UTC)
Евгений Пономаренко

Статус: Активный участник

Группы: Участники
Зарегистрирован: 03.05.2012(UTC)
Сообщений: 171
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 46 раз
Поблагодарили: 23 раз в 19 постах
Автор: Юрий Перейти к цитате
Так что декодируйте его пока самостоятельно посредством вызовов CryptDecodeObject(...X509_SEQUENCE_OF_ANY...) и прочая.

однако... точно так же не работает и это (под win не проверял, было некогда, хотя подозреваю что должно работать)
PCRYPT_SEQUENCE_OF_ANY aia_points_seq=NULL;
DWORD request_sz=0;
BOOL bResult=CryptDecodeObject(X509_ASN_ENCODING|PKCS_7_ASN_ENCODING,
X509_SEQUENCE_OF_ANY,
pbData,cbData,
0,NULL,&request_sz);
if(bResult)
{
aia_points_seq=(PCRYPT_SEQUENCE_OF_ANY)malloc(request_sz);
memset(aia_points_seq,0,request_sz);
bResult=CryptDecodeObject(X509_ASN_ENCODING|PKCS_7_ASN_ENCODING,
X509_SEQUENCE_OF_ANY,
pbData,cbData,
0,aia_points_seq,&request_sz);
}
поведение точно такое же.
распарсил asn.1 самостоятельно. проблема решена, но осадочек остался.
Offline Юрий  
#4 Оставлено : 10 октября 2014 г. 18:50:31(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: Евгений Пономаренко Перейти к цитате
Автор: Юрий Перейти к цитате
Так что декодируйте его пока самостоятельно посредством вызовов CryptDecodeObject(...X509_SEQUENCE_OF_ANY...) и прочая.

однако... точно так же не работает и это (под win не проверял, было некогда, хотя подозреваю что должно работать)
PCRYPT_SEQUENCE_OF_ANY aia_points_seq=NULL;
DWORD request_sz=0;
BOOL bResult=CryptDecodeObject(X509_ASN_ENCODING|PKCS_7_ASN_ENCODING,
X509_SEQUENCE_OF_ANY,
pbData,cbData,
0,NULL,&request_sz);
if(bResult)
{
aia_points_seq=(PCRYPT_SEQUENCE_OF_ANY)malloc(request_sz);
memset(aia_points_seq,0,request_sz);
bResult=CryptDecodeObject(X509_ASN_ENCODING|PKCS_7_ASN_ENCODING,
X509_SEQUENCE_OF_ANY,
pbData,cbData,
0,aia_points_seq,&request_sz);
}
поведение точно такое же.
распарсил asn.1 самостоятельно. проблема решена, но осадочек остался.

Да нет, "X509_SEQUENCE_OF_ANY" на Linux (на Крипто-Про CSP) вполне работает, тут что-то в Вашем коде. Или попробуйте, например, только "X509_ASN_ENCODING" или только "PKCS_7_ASN_ENCODING".

С уважением,
Юрий Строжевский
Offline Евгений Пономаренко  
#5 Оставлено : 13 октября 2014 г. 7:24:31(UTC)
Евгений Пономаренко

Статус: Активный участник

Группы: Участники
Зарегистрирован: 03.05.2012(UTC)
Сообщений: 171
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 46 раз
Поблагодарили: 23 раз в 19 постах
Автор: Юрий Перейти к цитате

Да нет, "X509_SEQUENCE_OF_ANY" на Linux (на Крипто-Про CSP) вполне работает, тут что-то в Вашем коде. Или попробуйте, например, только "X509_ASN_ENCODING" или только "PKCS_7_ASN_ENCODING".

Работал раньше? Специально все перепроверил, попробовал всякие варианты. Под Win вышеприведенный код работает правильно.
Это справедливо как минимум для pszObjId=szOID_AUTHORITY_INFO_ACCESS, на паре других проверил-тот же эффект.
Тестировалось под CSP 3.6.7777 Linux/x64
Offline Юрий  
#6 Оставлено : 13 октября 2014 г. 8:34:31(UTC)
Юрий

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 671
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: Евгений Пономаренко Перейти к цитате
Автор: Юрий Перейти к цитате

Да нет, "X509_SEQUENCE_OF_ANY" на Linux (на Крипто-Про CSP) вполне работает, тут что-то в Вашем коде. Или попробуйте, например, только "X509_ASN_ENCODING" или только "PKCS_7_ASN_ENCODING".

Работал раньше? Специально все перепроверил, попробовал всякие варианты. Под Win вышеприведенный код работает правильно.
Это справедливо как минимум для pszObjId=szOID_AUTHORITY_INFO_ACCESS, на паре других проверил-тот же эффект.
Тестировалось под CSP 3.6.7777 Linux/x64

Кто работал? Я - работал. Код тоже работал. Попробуйте ещё CryptDecodeObjectEx(...X509_SEQUENCE_OF_ANY...).
С уважением,
Юрий Строжевский
Offline Евгений Пономаренко  
#7 Оставлено : 13 октября 2014 г. 15:28:24(UTC)
Евгений Пономаренко

Статус: Активный участник

Группы: Участники
Зарегистрирован: 03.05.2012(UTC)
Сообщений: 171
Откуда: Екатеринбург

Сказал(а) «Спасибо»: 46 раз
Поблагодарили: 23 раз в 19 постах
Автор: Юрий Перейти к цитате
Автор: Евгений Пономаренко Перейти к цитате
Автор: Юрий Перейти к цитате

Да нет, "X509_SEQUENCE_OF_ANY" на Linux (на Крипто-Про CSP) вполне работает, тут что-то в Вашем коде. Или попробуйте, например, только "X509_ASN_ENCODING" или только "PKCS_7_ASN_ENCODING".

Работал раньше? Специально все перепроверил, попробовал всякие варианты. Под Win вышеприведенный код работает правильно.
Это справедливо как минимум для pszObjId=szOID_AUTHORITY_INFO_ACCESS, на паре других проверил-тот же эффект.
Тестировалось под CSP 3.6.7777 Linux/x64

Кто работал? Я - работал. Код тоже работал. Попробуйте ещё CryptDecodeObjectEx(...X509_SEQUENCE_OF_ANY...).


Я про код, разумеется. Есть предположение, что в текущем релизе что-то поменялось, и то, что раньше работало, внезапно перестало. CryptDecodeObjectEx(...X509_SEQUENCE_OF_ANY...) не работает аналогично, попробовал.
Дискуссия не имеет смысла :) Я отказался от использования CryptDecodeObject под Linux.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.