Cip*_*erX 6 cryptography certificate go bitcoin
我正在尝试将 Go 中的椭圆曲线secp256k1与库“crypto/x509”一起使用。密钥对生成后,我分别获得公钥pubKey和私钥privKey。之后,我想生成一个包含公钥的证书,但在我想将私钥存储在.pem文件中之前:
keyDer, err := x509.MarshalECPrivateKey(privKey)
if err != nil {
log.Fatalf("Failed to serialize ECDSA key: %s\n", err)
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将 EC 私钥编组为 ASN.1、DER 格式并编译代码时,我收到一条错误消息:
无法序列化 ECDSA 密钥:x509:未知的椭圆曲线
在这种情况下,我有必要使用该特定曲线,因此我无法更改为prime256v1或“相似曲线”。是否有解决方案允许在crypto/x509库中添加对secp256k1的支持,或者其他方式/建议?
小智 4
您是如何创建密钥对的?
我遇到了这个问题。就我而言,我使用go-ethereum包来创建此曲线类型。因此,我使用相同的包的函数来解析密钥。
所以你必须使用同一个包的指定函数来解析密钥对。
这个 x509.MarshalECPrivateKey(privKey) 只会对 Marshal go 的标准曲线类型有帮助。