Как мне прочитать (открыть) файл ASN.1 в python - PullRequest
0 голосов
/ 16 мая 2018

Я хочу получить серийный номер сертификата, используя python:

der = open('/Users/me/MyApp/Payload/codesign0').read()

cert = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_ASN1, der)

cert.get_serial_number()

К сожалению, это не удаетсяв первой строке:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 1: invalid start byte

Как прочитать формат файла ASN.1 (DER) в Python?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Вы открываете файл как текстовый файл, что означает, что read пытается декодировать данные с использованием UTF-8, чтобы вернуть объект str.

Вместо этого откройте его как двоичный файл, чтобы read просто возвращал объект bytes, не пытаясь декодировать данные вообще.

 der = open('...', 'rb').read()
0 голосов
/ 16 мая 2018

Вы должны попробовать это Python-ASN1 encoder and decoder.Работает на Python 2.6+ и 3.3+.Краткий пример на странице:

https://pypi.org/project/asn1/

Обязательно установите pip install future до pip install asn1

...