encryption - "No DEK-Info header in block"尝试读取加密私钥时

标签 encryption go openssl cryptography

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

openssl genrsa -out file.pem -passout pass:file -aes256 1024
openssl pkcs8 -topk8 -inform pem -in file.pem -outform pem -out filePKCS8.pem

然后我尝试用 Go 以这种方式阅读它:

block, _ := pem.Decode(key)
return x509.DecryptPEMBlock(block, password)

但我收到一条错误消息:

x509: no DEK-Info header in block

但是,我不知道出了什么问题。我是生成了错误的 key 还是使用了错误的库?我看到专门用于读取未加密的 PKCS8 文件的库,但没有专门用于读取加密的 PKCS8 文件的库。

有人知道吗?

最佳答案

Go 没有解密标准库中的 PKCS8 key 的函数。

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

关于encryption - "No DEK-Info header in block"尝试读取加密私钥时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32981821/

相关文章:

将 interface{} 转换为数字

json - 同一个 Go 结构成员上的多个标签

string - 如何在 Go 中生成固定长度的随机字符串?

c - 如何使用 OpenSSL 库在 C 中实现 Triple DES 加密

java - 无法写入 JSON : Input length must be multiple of 8 when decrypting with padded cipher

32 位 Linux 的 Java 8 Diffie Hellman key 大小问题

Python AES编码/解码字符串并存储在MySQL中

java - PEM 和 DER 证书如何在 openSSL 中工作?

ssl - 创建 SSL 后释放 SSL_CTX 是否安全

java - 生成公钥/私钥之前的 RSA 加密强制关闭