gpt4 book ai didi

go - 从 openpgp.Entity 中提取 rsa.PrivateKey

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:26 26 4
gpt4 key购买 nike

RSA 有几种关键格式。有没有办法从 golang 中的 PGP key 中提取 PKCS 1 私钥?像这样的东西(它不起作用):

var e *openpgp.Entity
e, err := openpgp.NewEntity("test11", "test", "test@test.com", nil)
if err != nil {
fmt.Println(err)
return
}

key, ok := e.PrivateKey.PrivateKey.(rsa.PrivateKey)
if !ok {
// Here is the problem in this solution
fmt.Printf("Assertation failed")
}

pkcs1PrivateKey := x509.MarshalPKCS1PrivateKey(&key)

privkey_pem := pem.EncodeToMemory(
&pem.Block{
Type: "RSA PRIVATE KEY",
Bytes: pkcs1PrivateKey,
},
)
fmt.Printf(string(privkey_pem))

最佳答案

您需要转换为 *rsa.PrivateKey 并调用 MarshalPKCS1PrivateKey(key):

key, ok := e.PrivateKey.PrivateKey.(*rsa.PrivateKey)
if !ok {
// Here is the problem in this solution
fmt.Printf("Assertation failed")
}

pkcs1PrivateKey := x509.MarshalPKCS1PrivateKey(key)

但这只会让这段代码起作用。在生产代码中,您需要像@Jimb 提到的那样进行类型切换。

关于go - 从 openpgp.Entity 中提取 rsa.PrivateKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51444087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com