尝试读取加密的私钥时“块中没有 DEK-Info 标头”

Gak*_*kho 8 encryption openssl cryptography go

我正在尝试读取加密的 PKCS8 私钥文件。我生成了这样的密钥:

openssl genrsa -out file.pem -passout pass:file -aes256 1024
openssl pkcs8 -topk8 -inform pem -in file.pem -outform pem -out filePKCS8.pem
Run Code Online (Sandbox Code Playgroud)

我尝试以这种方式在 Go 中阅读它:

block, _ := pem.Decode(key)
return x509.DecryptPEMBlock(block, password)
Run Code Online (Sandbox Code Playgroud)

但我收到一条错误消息:

x509: no DEK-Info header in block
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚出了什么问题。我生成的密钥错误还是使用了错误的库?我看到专门用于读取未加密 PKCS8 文件的库,但没有专门用于加密 PKCS8 文件的库。

有谁有想法吗?

小智 4

Go 没有标准库中解密 PKCS8 密钥的功能。

你可以这个包: https://github.com/youmark/pkcs8/blob/master/pkcs8.go#L103