Формат подписи Azure Key VaultC#

Место общения программистов C#
Ответить
Anonymous
 Формат подписи Azure Key Vault

Сообщение Anonymous »

Этот фрагмент есть на моем локальном компьютере (dotnet 8.0), и он работает нормально.

Код: Выделить всё

using System.Security.Cryptography;

using (ECDsa ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256))
{

string input = "some base64 encoded data";
byte[] data_bytes = Convert.FromBase64String(input);

byte[] hash = SHA256.Create().ComputeHash(data_bytes);

byte[] publicKeyBytes = ecdsa.ExportSubjectPublicKeyInfo();
Console.WriteLine($"Public Key:\n{Convert.ToBase64String(publicKeyBytes)}\n");

// Sign the hash using the Rfc3279DerSequence format
byte[] signature_der = ecdsa.SignHash(hash, DSASignatureFormat.Rfc3279DerSequence);
bool isValid_der = ecdsa.VerifyHash(hash, signature_der, DSASignatureFormat.Rfc3279DerSequence);
Console.WriteLine($"Signature valid: {isValid_der}\n");
string signature_b64_der = Convert.ToBase64String(signature_der);
Console.WriteLine($"DER Signature:\n{signature_b64_der}\n");

// Sign the hash using the IeeeP1363FixedFieldConcatenation format
byte[] signature_ieee = ecdsa.SignHash(hash, DSASignatureFormat.IeeeP1363FixedFieldConcatenation);
bool isValid_ieee = ecdsa.VerifyHash(hash, signature_ieee, DSASignatureFormat.IeeeP1363FixedFieldConcatenation);
Console.WriteLine($"Signature valid: {isValid_ieee}\n");
string signature_b64_ieee = Convert.ToBase64String(signature_ieee);
Console.WriteLine($"IEEE Signature:\n{signature_b64_ieee}\n");
}
Я хочу реализовать ту же логику, но на этот раз я хочу использовать REST API хранилища ключей Azure для подписи и проверки данных того же типа. Я стремился к этому подходу, чтобы иметь возможность регулярно менять ключи.
Похоже, что подпись, возвращаемая Azure Key Vault, возвращается только в формате IEEE P1363, и я не нашел способа вернуть RFC. Формат последовательности 3279 DER.
Мой вопрос: есть ли способ получить подпись Azure Key Vault в другом формате и, конечно же, иметь возможность проверить эту подпись?
Я попробовал использовать CryptographyClient.SignAsync, но он снова возвращает только формат IEEE P1363, а мне нужен и другой формат (если возможно).

Подробнее здесь: https://stackoverflow.com/questions/791 ... ure-format
Ответить

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

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

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

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

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