Как преобразовать эллиптический ключ из формата PER в DER? Имеется пара (публичный и приватный) эллиптических ключей в формате PEM (файлы на диске). Необходимо получить файл публичного ключа в формате DER. В командной строке OpenSSL задача решается не сложно:#!/bin/bash openssl ec -in x-priv.pem -pubout -outform DER -out x-pub.der Но мне нужно платформо независимое решение в среде Python 3, cryptography.hazmat загружен, но можно использовать и другие расширения. Кто то может предложить решение?
Для преобразования эллиптического ключа из формата PEM в формат DER в Python 3 можно воспользоваться библиотекой cryptography. Вот пример кода, который выполняет данную задачу:
from cryptography.hazmat.primitives import serialization from cryptography.hazmat.primitives.asymmetric import ec # Загружаем PEM-файл с публичным ключом with open('x-pub.pem', 'rb') as key_file: key_data = key_file.read() # Десериализуем ключ из формата PEM public_key = serialization.load_pem_public_key(key_data) # Сериализуем ключ в формат DER der_key = public_key.public_bytes(encoding=serialization.Encoding.DER, format=serialization.PublicFormat.SubjectPublicKeyInfo) # Записываем ключ в файл with open('x-pub.der', 'wb') as out_file: out_file.write(der_key)
Этот код загружает PEM-файл с публичным ключом, десериализует ключ из PEM формата, сериализует его в формат DER и сохраняет результат в файле 'x-pub.der'.
Убедитесь, что у вас установлена библиотека cryptography, которую можно установить с помощью pip:
pip install cryptography
Таким образом, вы можете использовать этот код для преобразования эллиптического ключа из PEM в DER формат в Python 3.
Для преобразования эллиптического ключа из формата PEM в формат DER в Python 3 можно воспользоваться библиотекой cryptography. Вот пример кода, который выполняет данную задачу:
from cryptography.hazmat.primitives import serializationfrom cryptography.hazmat.primitives.asymmetric import ec
# Загружаем PEM-файл с публичным ключом
with open('x-pub.pem', 'rb') as key_file:
key_data = key_file.read()
# Десериализуем ключ из формата PEM
public_key = serialization.load_pem_public_key(key_data)
# Сериализуем ключ в формат DER
der_key = public_key.public_bytes(encoding=serialization.Encoding.DER, format=serialization.PublicFormat.SubjectPublicKeyInfo)
# Записываем ключ в файл
with open('x-pub.der', 'wb') as out_file:
out_file.write(der_key)
Этот код загружает PEM-файл с публичным ключом, десериализует ключ из PEM формата, сериализует его в формат DER и сохраняет результат в файле 'x-pub.der'.
Убедитесь, что у вас установлена библиотека cryptography, которую можно установить с помощью pip:
pip install cryptographyТаким образом, вы можете использовать этот код для преобразования эллиптического ключа из PEM в DER формат в Python 3.