我正在使用Python(在Google App Engine下),並且我有一些RSA私鑰,需要以PKCS#12格式導出。有什麼可以幫助我嗎?我使用的是PyCrypto/KeyCzar,我已經想出瞭如何導入/導出PKCS8格式的RSA密鑰,但是我真的需要PKCS12。如何在Python中使用PKCS12對RSA密鑰進行編碼?
任何人都可以指向正確的方向嗎?如果有幫助,我需要PKCS12格式的原因是我可以將它們導入到iPhone中,這似乎只允許以該格式導入密鑰。
我正在使用Python(在Google App Engine下),並且我有一些RSA私鑰,需要以PKCS#12格式導出。有什麼可以幫助我嗎?我使用的是PyCrypto/KeyCzar,我已經想出瞭如何導入/導出PKCS8格式的RSA密鑰,但是我真的需要PKCS12。如何在Python中使用PKCS12對RSA密鑰進行編碼?
任何人都可以指向正確的方向嗎?如果有幫助,我需要PKCS12格式的原因是我可以將它們導入到iPhone中,這似乎只允許以該格式導入密鑰。
如果你能處理一些ASN.1代,可以相對容易地一個PKCS#8文件轉換爲PKCS#12文件。 PKCS#12文件基本上是PKCS#8和證書的包裝,因此要製作PKCS#12文件,您只需在PKCS#8文件和證書周圍添加一些附加數據。
通常,PKCS#12文件將包含加密結構中的證書,但所有兼容的解析器應能夠從未加密的結構中讀取它。此外,PKCS#12文件通常會包含用於完整性檢查的MacData結構,但這是可選的,並且符合的解析器應該在沒有它的情況下正常工作。
我認爲這將是我的道路。 KeyCzar包含一個ASN1解析器/創建器,這是我從中獲取PKCS#8文件的地方。我不知道PKCS#12只是PKCS#8文件的另一個包裝。 (不幸的是,這些東西很難解開,所有含有特殊字符的極其相似的首字母縮略詞都會讓Google產生混淆)。 我很可能將我的工作成果作爲補丁或至少某種類型的貢獻模塊貢獻給KeyCzar,以便其他人如果想要做類似的事情,還有一些地方可以選擇。 – 2009-10-30 11:27:51
這項工作的標準工具通常是OpenSSL。
請參閱openssl pkcs12
命令。
GAE不會運行openSSL二進制文件。 – 2009-10-30 01:44:50
你有一些RSA私鑰。你需要導出它們。但爲什麼你需要使用GAE導出它們?爲什麼不使用OpenSSL導出它們,然後將導出的pkcs12文件發送到GAE應用程序? – yfeldblum 2009-10-30 01:46:34
每個用戶都有自己的RSA密鑰對,在註冊時創建。雖然我可以從理論上產生一系列關鍵對並在註冊時將它們分配給用戶,但這似乎是一個非常糟糕的主意。 – 2009-10-30 02:03:09
該郵件列表發佈往往表明PKCS12沒有計劃用於該包的未來功能,目前尚未實現。
http://lists.dlitz.net/pipermail/pycrypto/2009q2/000104.html
如果你看* *原始*消息,該評論(關於PKCS12)有一個「只是開玩笑!」腳註在底部。 http://lists.dlitz.net/pipermail/pycrypto/2009q2/000100.html – 2009-10-30 02:06:55
該評論略有不清,但我同意,似乎PKCS12不在這個包的地平線上。 – 2009-10-30 02:14:18
您是否必須使用python以編程方式導出密鑰,或者您可以在本地獲取它們的位置並按照正義建議使用OpenSSL? – 2009-10-30 01:45:55