#python #class #object #cryptography
Вопрос:
У меня есть сертификат x509, который я пытаюсь проанализировать (в частности, KeyUsage), который, по-видимому, относится к типам расширений.KeyUsage (из extensions.py) в модуле криптографии python.
type(KeyUsage)
ВОЗВРАТ
<class 'cryptography.x509.extensions.KeyUsage'>
Полная строка расширения, возвращенная из
KeyUsage = certDecoded.extensions.get_extension_for_oid(ExtensionOID.KEY_USAGE)
выглядит так:
KeyUsage: <Extension(oid=<ObjectIdentifier(oid=2.5.29.15, name=keyUsage)>, critical=True, value=<KeyUsage(digital_signature=True, content_commitment=False, key_encipherment=True, data_encipherment=False, key_agreement=False, key_cert_sign=False, crl_sign=False, encipher_only=False, decipher_only=False)>)>
вызов KeyUsage.value
возвращает
<KeyUsage(digital_signature=True, content_commitment=False, key_encipherment=True, data_encipherment=False, key_agreement=False, key_cert_sign=False, crl_sign=False, encipher_only=False, decipher_only=False)>
Который возвращает тип, указанный выше (расширения.KeyUsage)
Глядя на источник для класса, мне кажется, что он возвращает строку (так что это мое первое недоразумение …), Потому что я думал, что расширения можно повторять в соответствии с документами.
Однако, может ли кто-нибудь помочь мне понять (во-первых) тип объекта, чтобы я мог прокормить себя в будущем, и (во-вторых) некоторые предложения о том, как я должен это проанализировать; скажем, в простой объект dict, пожалуйста?
Комментарии:
1. Если объект поддерживает протокол сопоставления (многие делают), вы можете вызвать встроенную функцию
vars()
в экземпляре и получить обратно dict.2. Спасибо! — это делает то, что мне нужно.