Azure Key Vault API的WebKeyTypes的有效列表是什么

时间:2016-06-14 07:25:15

标签: c# azure azure-keyvault

我尝试通过API http://localhost:63342/sampleproject/Azure Key Vault中创建新密钥:

public Task<KeyBundle> CreateKeyAsync (
    string vaultAddress,
    string keyType,
    KeyAttributes keyAttributes)

keyType的文档是:

  

要创建的密钥类型(有效的WebKeyTypes之一)

什么是有效的WebKeyTypes ??

我已经通过MSDN文档进行了搜索,但没有找到任何内容。 KeyVaultClient.CreateKeyAsync调用似乎不需要此参数??:

Parameter Set: Create
Add-AzureKeyVaultKey 
          [-VaultName] <String> 
          [-Name] <String> 
          -Destination <String> {HSM | Software} 
          [-Disable] 
          [-Expires <DateTime]> ] 
          [-KeyOps <String[]> ] 
          [-NotBefore <DateTime]> ] 
          [-Tags <System.Collections.Hashtable> ] 
          [ <CommonParameters>]

3 个答案:

答案 0 :(得分:2)

查看Azure KeyVault SDK on Github的源代码,我唯一能找到的是JsonWebKeyTypes。根据源代码,这里是可能的值:

public const string EllipticCurve = "EC";
public const string Rsa           = "RSA";
public const string RsaHsm        = "RSA-HSM";
public const string Octet         = "oct";

然而,在查看REST API documentation时,我认为目前仅支持RSARSA-HSM

答案 1 :(得分:1)

它实际记录在Key Vault MSDN page

  

初始Azure Key Vault版本仅支持RSA密钥;未来   版本可能支持其他关键类型,如对称和椭圆   曲线。

     
      
  • RSA:2048位RSA密钥。这是一个&#34;软&#34;密钥,由Key Vault在软件中处理,但使用系统以加密方式存储   HSM中的密钥。客户端可以导入现有的RSA密钥或   请求Azure Key Vault生成一个。
  •   
  • RSA-HSM:在HSM中处理的RSA密钥。 RSA-HSM密钥在其中一个Azure Key Vault HSM安全世界中受到保护(有   每个地理位置的安全世界,以保持隔离)。客户可以   以软表单或从a导出RSA密钥   兼容的HSM设备,或请求Azure Key Vault生成一个。   此密钥类型将T属性添加到JWK获取以携带HSM   关键材料。
  •   

在撰写本文时,Key Vault不支持EC和oct键。

答案 2 :(得分:0)

在反汇编Microsoft.Azure.KeyVault.dll之后,KeyType想要的CreateKeyAsync看起来像这样:

/// <summary>Supported JsonWebKey key types (kty)</summary>
public static class JsonWebKeyType
{    
   public const string EllipticCurve = "EC";
   public const string Rsa = "RSA";
   public const string RsaHsm = "RSA-HSM";
   public const string Octet = "oct";    
}

我尝试使用JsonWebKeyType.Octet,现在我收到了一个新错误,但这是一个新问题。