2016-12-09 2 views
1

Я использую PyOpenSSL, который является тонкой оболочкой OpenSSL, чтобы добавить атрибуты «атрибуты предметной области» расширения к сертификату с помощью программы Python. Имена расширения «subjectDirAttrs» и «subjectDirectoryAttributes» были опробованы, но возникает ошибка:Поддерживает ли OpenSSL атрибуты «атрибуты предметной области расширения»?

"OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'unknown extension name'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]". 

Как PyOpenSSL является оберткой OpenSSL, кто может дать понять, что поддерживает ли OpenSSL расширение «субъект каталога атрибутов» и какое имя в программировании поддерживает OpenSSL?

Другой вопрос заключается в том, что ошибка сообщается следующим образом, когда я добавляю расширение «политики сертификатов» в сертификат с помощью PyOpenSSL.

"OpenSSL.crypto.Error: [('X509 V3 routines', 'DO_EXT_NCONF', 'no config database'), ('X509 V3 routines', 'X509V3_EXT_nconf', 'error in extension')]" 

Что такое база данных конфигурации? Это относится к /usr/local/ssl/openssl.cnf? Как использовать его для добавления расширений «политики сертификатов» в сертификат с помощью PyOpenSSL? Большое спасибо!

ответ

0

Поддерживает ли OpenSSL атрибуты «атрибуты предметной области расширения»?

Это зависит от ситуации. OpenSSL может работать с сертификатом, который имеет их, что означает, что вещи не сбой с «неподдерживаемой» ошибкой, если они присутствуют. Проблема в том, что нет ничего доступного для их анализа для пользовательских программ. Вы должны перевернуть свою собственную парсинговую логику.

Также см. How to parse Subject Directory Attributes Extension? в списке рассылки пользователей OpenSSL. В потоке есть предложения по их разборке. Вот из потока:

  • «Кто-то должны написать ASN1 разбор кода Есть примеры повсюду в OpenSSL, см различных d2i_XXX и функцию i2d_XXX Там является макро/определить, что доступно, чтобы сделать.. легче работать, но на самом деле это не документировано ».

  • «Похоже, тип не X509_NAME_ENTRY но X509_ATTRIBUTE и расширение представляет собой последовательность атрибутов. Мы не имеем прямого эквивалента в качестве конкретного типа IIRC, но это не так трудно добавить просто следуйте за тем, что сделано для GENERAL_NAMES, которая является ПОСЛЕДОВАТЕЛЬНОСТЬЮ GENERAL_NAME ... Вы можете добавить пользовательское расширение или просто проанализировать структуру из содержимого экстенсионатуры . "

Смежные вопросы