Статус: Активный участник
Группы: Участники
Зарегистрирован: 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 в конце. это приводит к разного рода неприятностям. Лечится выделением памяти на байт больше, чем запрошено.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 671   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 95 раз в 68 постах
|
Заходим на страничку, ищем OID "szOID_AUTHORITY_INFO_ACCESS". Где же он? А нет его :) Так что декодируйте его пока самостоятельно посредством вызовов CryptDecodeObject(...X509_SEQUENCE_OF_ANY...) и прочая. |
С уважением, Юрий Строжевский |
 2 пользователей поблагодарили Юрий за этот пост.
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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 самостоятельно. проблема решена, но осадочек остался.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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". |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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...). |
С уважением, Юрий Строжевский |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close