У меня есть скрипт Python, который извлекает закрытый ключ RSA из хранилища ключей Azure.Попытка сериализации значения ключа дает:
ValueError: Не удалось десериализовать данные ключа.
key_bytes выглядит как «b» \ xb8w \ xb7 \ xce {s \ xf7\ xa0 \ xce \ xba \ xf5 # \ x07 \ x8b? \ x1d \ xc9m ... "
Код:
from azure.keyvault import KeyVaultClient, KeyVaultAuthentication
from azure.common.credentials import ServicePrincipalCredentials
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives.asymmetric import dsa
from cryptography.hazmat.primitives import serialization
subscription_id = "xxx"
VAULT_URL = "xxx"
KEY_ID = "xxx"
KEY_VERSION = "xxx"
credentials = ServicePrincipalCredentials(
client_id = 'xxx',
secret = 'xxx',
tenant = 'xxx'
)
client = KeyVaultClient(credentials)
key_bundle = client.get_key(VAULT_URL,
KEY_ID,
KEY_VERSION)
key_bytes = key_bundle.key.n
p_key = serialization.load_pem_private_key(
key_bytes,
password='xxx',
backend=default_backend()
)
Загрузка ключа изХранилище BLOB-объектов в формате .p8 работает с сериализованным ключом.Хранилище ключей требует, чтобы ключ был сохранен в формате pem.
Я пробовал разные декодирования и т. Д., Но мне не удалось расшифровать байты.Буду признателен за любую помощь или советы для решения этой проблемы.