go - 从文件加载加密的 PKCS1 私钥

标签 go rsa private-key pkcs#11

我在文件中有一个 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/

相关文章:

php - Nodejs加密签名,php验证签名

java - 是否可以像在 Java 端那样使用模数和指数生成 RSA 私钥?

使用私钥和 PKCS1 的 PHP RSA 加密

laravel - 我们应该在 Web 服务器上的哪里存储 APNs p8 key ?

unit-testing - httptest.NewRequest 与 http.NewRequest : which one to use in tests and why?

c# - WinRT RSA 加密大数据缓冲区

encryption - RSA-OAEP 与 RSA-PKCS1.5 的区别

go - 如何修复 delve "can' t 加载包 : package internal"error

google-app-engine - App Engine 使用 Go 库部署

go - 使用/cmd 结构构建 Go 模块时出错