英文:
Load encrypted PKCS1 private key from file
问题
我有一个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的文档中没有找到关于此问题的任何说明。
英文:
I have a PKCS1 private key in a file and I load it using
b, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
Then, I try to convert it into private key object
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)
But this code throws exception in DecryptPEMBlock
x509: no DEK-Info header in block
I didn't find any documentation about this in golang
答案1
得分: 3
我犯了一个关于私钥文件的错误,这里是一个可用的代码:
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的包。
英文:
I made a mistake with my private key file and here is a working code
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 does have a package to decrypt PKCS1 private keys, but does not have for PKCS8.
答案2
得分: 0
Go似乎没有用于解码PKCS文件的包。
请查看此链接以获取更多详细信息PKCS。
我找不到一个用于解码PKCS1密钥的包。
使用此包来解码PKCS8文件,有一些用于解码PKCS8、PKCS10和PKCS12的包,但没有用于PKCS1的包。
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论