Как преобразовать эллиптический ключ из формата PER в DER? Имеется пара (публичный и приватный) эллиптических ключей в формате PEM (файлы на диске).
Необходимо получить файл публичного ключа в формате DER.
В командной строке OpenSSL задача решается не сложно:#!/bin/bash
openssl ec -in x-priv.pem -pubout -outform DER -out x-pub.der
Но мне нужно платформо независимое решение в среде Python 3, cryptography.hazmat загружен, но можно использовать и другие расширения.
Кто то может предложить решение?

15 Июн 2020 в 19:47
222 +1
0
Ответы
1

Для преобразования эллиптического ключа из формата 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.

18 Апр 2024 в 11:02
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир