我正在将 Azure 密钥保管库用于宠物项目,并且正在创建 Secp256k1 密钥对。在 Azure 中创建密钥的步骤:
- 打开 Key Vault 资源
- 从左侧面板中选择键。
- 单击左上角的生成/导入。
- 选择密钥类型:EC,EC名称:P-256K(基本上是Secp256k1)
- 单击创建。
一旦我尝试使用以下代码从我的 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 提供了一些额外的字符或类似的东西?任何帮助表示赞赏。