我在文件中有一个PKCS1私钥,我使用
加载它b, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
然后,我尝试将其转换为私钥对象
block, _ := pem.Decode(b)
der, err := x509.DecryptPEMBlock(block, []byte("qwerty"))
if err != nil {
return nil, err
}
bytes := pem.EncodeToMemory(&pem.Block{Type: "RSA PRIVATE KEY", Bytes: der})
return x509.ParsePKCS1PrivateKey(bytes)
但是这段代码会在DecryptPEMBlock
x509: no DEK-Info header in block
我在golang
中找不到任何关于此的文档答案 0 :(得分:1)
我的私钥文件出错,这是一个正常工作的代码
func GetPrivateKey(path string) (*rsa.PrivateKey, error) {
b, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
block, _ := pem.Decode(b)
der, err := x509.DecryptPEMBlock(block, []byte(*PrivateKeyPassword))
if err != nil {
return nil, err
}
return x509.ParsePKCS1PrivateKey(der)
}
P.S。 Go确实有一个解密PKCS1私钥的包,但没有PKCS8。
答案 1 :(得分:0)