如何使用来自 azure.security.keyvault 的新 keyvault 客户端进行签名

How to sign using new keyvault client from azure.security.keyvault

我最近开始用 Azure.Security.KeyVault 中的新客户端替换 Microsoft.Azure.KeyVault 命名空间中的旧 Azure KeyVault 客户端。

这在获取机密和证书时没有任何问题,但我不确定如何签名了

如何使用新的 keyvault 客户端进行签名?

您是否检查了 github 上的 Azure SDK Azure.Security.KeyVault.Keys 包?

来自该来源的示例代码:

SignResult rsaSignDataResult = rsaCryptoClient.SignData(SignatureAlgorithm.RS256, data);
Debug.WriteLine($"Signed data using the algorithm {rsaSignDataResult.Algorithm}, with key {rsaSignDataResult.KeyId}. The resulting signature is {Convert.ToBase64String(rsaSignDataResult.Signature)}");

对于 Azure Key Vault,我们需要create a signature使用指定的密钥从摘要

因此,您可以参考以下代码对任意数据进行签名,并使用我们创建的 EC 和 RSA 密钥使用 CryptographyClient 验证签名。

byte[] digest = null;

using (HashAlgorithm hashAlgo = SHA256.Create())
{
    digest = hashAlgo.ComputeHash(data);
}

SignResult rsaSignResult = rsaCryptoClient.Sign(SignatureAlgorithm.RS256, digest);

如果你想签署证书,你可以参考这个article