0

我正在将 Azure 密钥保管库用于宠物项目,并且正在创建 Secp256k1 密钥对。在 Azure 中创建密钥的步骤:

  1. 打开 Key Vault 资源
  2. 从左侧面板中选择键。
  3. 单击左上角的生成/导入。
  4. 选择密钥类型:EC,EC名称:P-256K(基本上是Secp256k1)
  5. 单击创建。

一旦我尝试使用以下代码从我的 Go-lang 应用程序访问密钥的公共部分:

func main(){

authorizer, err := kvauth.NewAuthorizerFromEnvironment()
    if err != nil {
        fmt.Printf("unable to create vault authorizer: %v\n", err)
        os.Exit(1)
    }

    basicClient := keyvault.New()
    basicClient.Authorizer = authorizer

    getKey(basicClient, KeyName)

}

func getKey(basicClient keyvault.BaseClient, keyname string) {
    keyResp, err := basicClient.GetKey(context.Background(), "https://"+vaultName+".vault.azure.net", keyname, "")
    if err != nil {
        fmt.Printf("unable to get value for key: %v\n", err)
        os.Exit(1)
    }
    fmt.Println("X = ",*keyResp.Key.X)
    fmt.Println("Y = ",*keyResp.Key.Y)    
}

您可以在 Mircosoft Docs 中查看此处列出的密钥的不同属性。 https://docs.microsoft.com/en-us/rest/api/keyvault/create-key/create-key#request-body

上面的代码给我一个输出:
X = uAv6rXZedQbihGUQwFkEZl35LeI7OHdhHSOEf3VpXyw
Y = Q8MzSQGOtqT41lsYU-P82o6Fryn8Vnub0l0kdOOdOHI

给定的键长度为 43 个字符,而我通过阅读有关 Secp256k1 的信息了解到这些只是 32 个字符。密钥大小为 43 在我打算使用它的应用程序中给我一个错误。

我在这里遗漏了什么还是 Azure 提供了一些额外的字符或类似的东西?任何帮助表示赞赏。

4

0 回答 0