Получение BIT STRING открытого ключа в PythonPython

Программы на Python
Anonymous
Получение BIT STRING открытого ключа в Python

Сообщение Anonymous »


У меня есть сертификат в кодировке PEM. Я хочу получить БИТОВУЮ СТРОКУ ASN.1 открытого ключа. Я использую пакет шифрования pyca. Все, что я получаю, — это всю информацию об открытом ключе субъекта в формате DER. Мой вопрос: есть ли простой способ получить только БИТОВУЮ СТРОКУ открытого ключа? В основном я хочу вычислить issuerKeyHash, который необходим для создания запроса OCSP.

Ввод:

из импорта криптографии x509 из cryptography.hazmat.primitives.serialization импортировать кодировку, PublicFormat с открытым ("test_issuer.pem","rb") файлом: pem_data = file.read() Issuer_cert = x509.load_pem_x509_certificate(pem_data) публичный ключ = Issuer_cert.public_key() pubkey_bytes = pubkey.public_bytes(encoding=Encoding.DER, format=PublicFormat.SubjectPublicKeyInfo) печать (pubkey_bytes.hex()) Выход:

3059301306072a8648ce3d020106082a8648ce3d030107034200041306605a1910efd18b382f05719062bea9c63a118124bc3cde6a4959734ecef00129c925 73255bca278f5a5f3e403128bd9b9ad9d5517c4f796120e673a9aa9e Как уже упоминалось, это вся информация об открытом ключе субъекта (91 байт). Используя программу просмотра ASN.1 или openssl, я заметил, что фактическая БИТОВАЯ СТРОКА, исключая всю информацию об алгоритме, теги и длину, начинается с байта 25. Я, конечно, могу написать функцию для чтения всех тегов и информации о длине и извлечения БИТОВОЙ СТРОКИ. . Но есть ли для этого встроенная функция?

Ожидаемый результат:
041306605a1910efd18b382f05719062bea9c63a118124bc3cde6a4959734ecef00129c92573255bca278f5a5f3e403128bd9b9ad9d5517c4f796120e673a9 аа9е

Вернуться в «Python»