Подписание строки с помощью пакета SDK Azure Key Vault Python.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Подписание строки с помощью пакета SDK Azure Key Vault Python.

Сообщение Anonymous »


Я хочу подписать строку сертификатом, созданным и хранящимся в Azure Key Vault. Я использую Python SDK, предоставленный Microsoft, для получения сертификата. Я приступаю к извлечению закрытого ключа из расшифрованного секрета сертификата.

Получение закрытого ключа в этом поместье является проблемой, поскольку оно не позволяет мне использовать закрытый ключ с CryptographyClient. Я получаю ожидаемую ошибку, которая показана ниже, поскольку закрытый ключ не является экземпляром KeyVaultKey.

Ошибка, с которой я столкнулся:

Произошло исключение: ValueError «ключ» должен быть экземпляром KeyVaultKey или строкой идентификатора ключа. Файл «C:\Users\P.Markham\OneDrive — Royal Terberg Group B.V\Documents\SSF\init.py», строка 31, в cryptography_client = CryptographyClient(private_key, credential=credential) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ValueError: «ключ» должен быть экземпляром KeyVaultKey или строкой идентификатора ключа. Код, который я использую, показан ниже:

импортировать ОС импортировать хеш-библиотеку импортировать базу64 из cryptography.hazmat.primitives.serialization import pkcs12 из azure.identity импортировать DefaultAzureCredential из azure.keyvault.keys импортировать KeyClient из azure.keyvault.keys.crypto импортировать SignatureAlgorithm из azure.keyvault.certificates импорта CertificateClient из azure.keyvault.secrets импорт SecretClient из azure.keyvault.keys.crypto импортируйте CryptographyClient, EncryptionAlgorithm VAULT_URL = os.environ["AZURE_VAULT_URL"] CERTIFICATE_NAME = os.environ["AZURE_CERTIFICATE_NAME"] учетные данные = DefaultAzureCredential() certificate_client = CertificateClient(vault_url=VAULT_URL, credential=credential) secret_client = SecretClient(vault_url=VAULT_URL, credential=credential) certificate_secret = secret_client.get_secret(name=CERTIFICATE_NAME) cert_bytes = base64.b64decode(certificate_secret.value) частный_ключ, публичный_сертификат, дополнительные_сертификаты = pkcs12.load_key_and_certificates( данные=cert_bytes, пароль = Нет ) print(f"Сертификат с именем '{certificate_secret.name}' был проанализирован.") дайджест = hashlib.sha256(b"пример строки, которую я хочу подписать").digest() cryptography_client = CryptographyClient(private_key, credential=credential) #sign возвращает подпись и метаданные, необходимые для ее проверки результат = cryptography_client.sign(SignatureAlgorithm.rs256, дайджест) print(f"Идентификатор ключа: {result.key_id}") print(f"Алгоритм: {result.algorithm}") print(f"Подпись: {result.signature}") подпись = результат.подпись Как подписать строку сертификатом? Мне кажется, что я делаю это совершенно неправильно, но не могу найти никакой документации, связывающей подписание с сертификатами.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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