我在文件中有一个 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中找到任何关于这个的文档
最佳答案
我的私钥文件有误,这是一个有效的代码
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)
}
附言Go 确实有一个用于解密 PKCS1 私钥的包,但没有用于 PKCS8 的包。
关于go - 从文件加载加密的 PKCS1 私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44673695/