Я вижу новую ошибку (для меня) при загрузке сертификата X509 после обновления моей версии Python и библиотеки шифрования. В поисках я наткнулся на № 6386, который кажется похожим. Я надеялся, что причиной этой проблемы может быть кто-то, знакомый с ASN.1, и если это так, посоветуйте, какую версию какой библиотеки мне нужно загрузить, чтобы исправить эту проблему.
Полное исключение, которое я вижу:
ValueError: error parsing asn1 value: ParseError { kind: EncodedDefault, location: ["RawCertificate::tbs_cert", "TbsCertificate::extensions", "2", "Extension::critical"] }
Моя конечная цель — загрузить этот сертификат, содержащий открытый ключ, а затем использовать этот ключ для проверки подписи, прикрепленной к двоичному файлу. Поскольку это только открытый ключ, я опубликую (приложу) собранный мною пример сценария, показывающий проблему, с которой я сталкиваюсь. Полный сценарий проверки ранее работал под Python 3.8.1 (я полагаю) и более ранней криптографической библиотекой, версия не записана/неизвестна. Эта более ранняя конфигурация могла загружать подписи, созданные с использованием хэшей SHA256 и SHA512, с использованием соответствующих сертификатов, которые прилагались к этим подписям. Текущая конфигурация работает для подписи SHA256, но не загружает сертификат, связанный с хешем SHA512. Пример содержит общедоступную часть сбойного сертификата.
Я работаю в Windows 10 Enterprise, V21H2 с Python 3.10.6, но произошел регресс и я вижу тот же сбой как с 3.9.13, так и с версией 3.9.13. и 3.8.10. Все эти версии используют криптобиблиотеку версии 37.0.4.
C:>python --version
Python 3.10.6
C:>pip list
Package Version
cffi 1.15.1
cryptography 37.0.4
Pillow 9.2.0
pip 22.2.2
pycparser 2.21
setuptools 65.0.1
six 1.16.0
Пример сценария:
certRawData = """-----BEGIN CERTIFICATE-----
MIIFVzCCAz+gAwIBAgIEYfgE3jANBgkqhkiG9w0BAQ0FADBPMSMwIQYDVQQKExpI
ZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZTEoMCYGA1UEAxMfSFBFIEFsbGVydGEg
NDA5Ni1iaXQgUlNBIDIwMjEtMTAeFw0yMTEyMDEwMDAwMDBaFw0zNjEyMDIwMDAw
MDBaME8xIzAhBgNVBAoTGkhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlMSgwJgYD
VQQDEx9IUEUgQWxsZXJ0YSA0MDk2LWJpdCBSU0EgMjAyMS0xMIICIjANBgkqhkiG
9w0BAQEFAAOCAg8AMIICCgKCAgEAl5tDLch9CBx8ZRmCkk8Acau+wX4et3pzOjXX
RxJAMnsakHNgt1c1AsP9iAxf1DPDClvLhsOJ6AV75LbrzX07bpNaBjIDTctI96Iv
HeyFotuNGtwBsQJqp1b9hbZ1qm9OxvY+uEQi3eRHVQbuk5xe3mr7706ORNBNkMhh
ovKkfa+2G6/sl9gZ96PFTmXybYBl/O5PqK61xz9XQ11t7p55kCT8DErILtrLKsYX
RKlvvWcJ6oZgUCcUpuGeC5pilfLdWxQ4Vfi6Veu13pOW1UrqVwihwTvN8LLsQ6mb
tRt9/Iiowe6mXqXhCyoCfQhw8Y/nUbIJol96+MZepEH6dhpu1zVfKuNivMnTPLOa
nTK9xFgsgSxEER/4E0ZV9GaW/9jda6CqJpdKXY4KVJIUVk36b5f9Si2SsOEfOmM7
/h0mpRV2vKCJ0mvWAGqiG7pJWB+lMq+Cr8DZCjc0t/eF996a5aqO/DcrD6WcM/+S
SaENeWpHjhxNd3sqwAolFjdtFIVWKho4qE5TjXtKEMg0D3GntEKj+t41fHr4cLpC
XQ3hOVfncdSD4nAPno0yXUwFOeplfInMGgX9zvizRoUykbbCXXxjc9XaeKO5dYmP
TG8hoJ9x8XPnaVEoeWmpG0Yr7lzsaGn30Ysoqppz2TWbATKQLAsicavinqRxZ5bs
UlsHrY8CAwEAAaM7MDkwDgYDVR0PAQH/BAQDAgeAMA8GA1UdEwEB/wQFMAMBAQAw
FgYDVR0lAQEABAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQENBQADggIBAARMeFl0
vRxjJDQx5jupZ+I9+VY0i+jvJn/id37OqyEZwJH/prpUeMfp3eXrbZNEsEKy2UaM
ZCP0CwucR+2LnJRcThib2fFj/UE4u2dEI9THYyj8GaITPfClQ91Mgi1OhjLvOQ8K
HOUGeZVL5jsqo9qbgiA2UnHKRuofppYVTQQPd7v0atQ+3fNLqVyQUuS/TKYlPdOO
6+oeMIT4cOkQrQYnpzaWDyt6GOKLcBrkTRpFSS+QA1BOw2xx0Z7ovbQSOZ37VJ78
tNSqsflpQhvSvcHLja5TE5MxtXKdSWcp3JxpRRb7winioZnVZBHsH6dhVO4Lpq71
zW5CkG65StP+cJGnR50KZzbo0K6nlMwe0AVc5zoBfZEp09ux1SM869IY1snbHkKi
4FBE6wjG5QLDACqqOzEuSbMpLI0Eqb6ix2/BAZUtIGNMQRJuLt/taH2mcX0f4QR9
8Vo2kx+35Wenk3Avi+QL5J3b9M7EX8EkSD/Fgj9tdXaxDe+QVCeV3TVdKQKp9isR
N4RD8Es4VLCpfQOgpZQjXx513xXbKNi4I7Kk6+Vwp59uQRNrtRbz0QVZ6KB3RJiI
dm89xAjpU5Lr/1Ws6IHd8Zo1tUwe5LlzqHatykzk3slb5QjODZhOc0DoUgmeDJjO
ENf8/LeTUQGuKbiLT1e5YIvT+GUjN4Eh3XvD
-----END CERTIFICATE-----
"""
from cryptography.hazmat.backends import default_backend
from cryptography.x509 import load_pem_x509_certificate
load_pem_x509_certificate(certRawData.encode(), default_backend())
print "Certificate load successful."
Подробнее здесь: https://stackoverflow.com/questions/733 ... parseerror
Проблема с сертификатом Python X509: исключение: ошибка анализа значения asn1: ParseError ⇐ Python
Программы на Python
1732289317
Anonymous
Я вижу новую ошибку (для меня) при загрузке сертификата X509 после обновления моей версии Python и библиотеки шифрования. В поисках я наткнулся на № 6386, который кажется похожим. Я надеялся, что причиной этой проблемы может быть кто-то, знакомый с ASN.1, и если это так, посоветуйте, какую версию какой библиотеки мне нужно загрузить, чтобы исправить эту проблему.
Полное исключение, которое я вижу:
ValueError: error parsing asn1 value: ParseError { kind: EncodedDefault, location: ["RawCertificate::tbs_cert", "TbsCertificate::extensions", "2", "Extension::critical"] }
Моя конечная цель — загрузить этот сертификат, содержащий открытый ключ, а затем использовать этот ключ для проверки подписи, прикрепленной к двоичному файлу. Поскольку это только открытый ключ, я опубликую (приложу) собранный мною пример сценария, показывающий проблему, с которой я сталкиваюсь. Полный сценарий проверки ранее работал под Python 3.8.1 (я полагаю) и более ранней криптографической библиотекой, версия не записана/неизвестна. Эта более ранняя конфигурация могла загружать подписи, созданные с использованием хэшей SHA256 и SHA512, с использованием соответствующих сертификатов, которые прилагались к этим подписям. Текущая конфигурация работает для подписи SHA256, но не загружает сертификат, связанный с хешем SHA512. Пример содержит общедоступную часть сбойного сертификата.
Я работаю в Windows 10 Enterprise, V21H2 с Python 3.10.6, но произошел регресс и я вижу тот же сбой как с 3.9.13, так и с версией 3.9.13. и 3.8.10. Все эти версии используют криптобиблиотеку версии 37.0.4.
C:>python --version
Python 3.10.6
C:>pip list
Package Version
cffi 1.15.1
cryptography 37.0.4
Pillow 9.2.0
pip 22.2.2
pycparser 2.21
setuptools 65.0.1
six 1.16.0
Пример сценария:
certRawData = """-----BEGIN CERTIFICATE-----
MIIFVzCCAz+gAwIBAgIEYfgE3jANBgkqhkiG9w0BAQ0FADBPMSMwIQYDVQQKExpI
ZXdsZXR0IFBhY2thcmQgRW50ZXJwcmlzZTEoMCYGA1UEAxMfSFBFIEFsbGVydGEg
NDA5Ni1iaXQgUlNBIDIwMjEtMTAeFw0yMTEyMDEwMDAwMDBaFw0zNjEyMDIwMDAw
MDBaME8xIzAhBgNVBAoTGkhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlMSgwJgYD
VQQDEx9IUEUgQWxsZXJ0YSA0MDk2LWJpdCBSU0EgMjAyMS0xMIICIjANBgkqhkiG
9w0BAQEFAAOCAg8AMIICCgKCAgEAl5tDLch9CBx8ZRmCkk8Acau+wX4et3pzOjXX
RxJAMnsakHNgt1c1AsP9iAxf1DPDClvLhsOJ6AV75LbrzX07bpNaBjIDTctI96Iv
HeyFotuNGtwBsQJqp1b9hbZ1qm9OxvY+uEQi3eRHVQbuk5xe3mr7706ORNBNkMhh
ovKkfa+2G6/sl9gZ96PFTmXybYBl/O5PqK61xz9XQ11t7p55kCT8DErILtrLKsYX
RKlvvWcJ6oZgUCcUpuGeC5pilfLdWxQ4Vfi6Veu13pOW1UrqVwihwTvN8LLsQ6mb
tRt9/Iiowe6mXqXhCyoCfQhw8Y/nUbIJol96+MZepEH6dhpu1zVfKuNivMnTPLOa
nTK9xFgsgSxEER/4E0ZV9GaW/9jda6CqJpdKXY4KVJIUVk36b5f9Si2SsOEfOmM7
/h0mpRV2vKCJ0mvWAGqiG7pJWB+lMq+Cr8DZCjc0t/eF996a5aqO/DcrD6WcM/+S
SaENeWpHjhxNd3sqwAolFjdtFIVWKho4qE5TjXtKEMg0D3GntEKj+t41fHr4cLpC
XQ3hOVfncdSD4nAPno0yXUwFOeplfInMGgX9zvizRoUykbbCXXxjc9XaeKO5dYmP
TG8hoJ9x8XPnaVEoeWmpG0Yr7lzsaGn30Ysoqppz2TWbATKQLAsicavinqRxZ5bs
UlsHrY8CAwEAAaM7MDkwDgYDVR0PAQH/BAQDAgeAMA8GA1UdEwEB/wQFMAMBAQAw
FgYDVR0lAQEABAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQENBQADggIBAARMeFl0
vRxjJDQx5jupZ+I9+VY0i+jvJn/id37OqyEZwJH/prpUeMfp3eXrbZNEsEKy2UaM
ZCP0CwucR+2LnJRcThib2fFj/UE4u2dEI9THYyj8GaITPfClQ91Mgi1OhjLvOQ8K
HOUGeZVL5jsqo9qbgiA2UnHKRuofppYVTQQPd7v0atQ+3fNLqVyQUuS/TKYlPdOO
6+oeMIT4cOkQrQYnpzaWDyt6GOKLcBrkTRpFSS+QA1BOw2xx0Z7ovbQSOZ37VJ78
tNSqsflpQhvSvcHLja5TE5MxtXKdSWcp3JxpRRb7winioZnVZBHsH6dhVO4Lpq71
zW5CkG65StP+cJGnR50KZzbo0K6nlMwe0AVc5zoBfZEp09ux1SM869IY1snbHkKi
4FBE6wjG5QLDACqqOzEuSbMpLI0Eqb6ix2/BAZUtIGNMQRJuLt/taH2mcX0f4QR9
8Vo2kx+35Wenk3Avi+QL5J3b9M7EX8EkSD/Fgj9tdXaxDe+QVCeV3TVdKQKp9isR
N4RD8Es4VLCpfQOgpZQjXx513xXbKNi4I7Kk6+Vwp59uQRNrtRbz0QVZ6KB3RJiI
dm89xAjpU5Lr/1Ws6IHd8Zo1tUwe5LlzqHatykzk3slb5QjODZhOc0DoUgmeDJjO
ENf8/LeTUQGuKbiLT1e5YIvT+GUjN4Eh3XvD
-----END CERTIFICATE-----
"""
from cryptography.hazmat.backends import default_backend
from cryptography.x509 import load_pem_x509_certificate
load_pem_x509_certificate(certRawData.encode(), default_backend())
print "Certificate load successful."
Подробнее здесь: [url]https://stackoverflow.com/questions/73380055/python-x509-certificate-issue-exception-error-parsing-asn1-value-parseerror[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия