2015-10-07 18 views
2

我試圖讀取加密的PKCS8私鑰文件。我生成這樣的按鍵:當試圖讀取加密的私鑰時,「塊中沒有DEK-Info頭」

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

,我嘗試閱讀它走這條路:

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

,但我得到一個錯誤說:

x509: no DEK-Info header in block 

不過,我可以」弄清楚發生了什麼問題。我是否生成了錯誤的關鍵字還是我使用了錯誤的庫?我看到的庫專門用於讀取未加密的PKCS8文件,但沒有專門用於加密的PKCS8文件。

有沒有人有任何想法?

+1

你如何加載'key'和'password'? – icza

+0

不支持https://golang.org/issue/8860 – JimB

回答

1

去沒有函數來解密標準庫中的PKCS8密鑰。

您可以將此包: https://github.com/youmark/pkcs8/blob/master/pkcs8.go#L103

+1

查看源代碼。它似乎只能在AES-256-CBC模式下進行加密處理。但是,openssl默認是pbeWITHMD5ndDES-CBC。看起來這個庫不能處理這個問題。我錯了嗎? – Gakho

+0

不幸的是你沒錯。 –

相關問題