2012-01-18 70 views
0

我想在我的Android應用程序pkcs7文件上生成客戶端和服務器之間的通信(機密數據在它們之間傳輸)。如何在Android上使用SpongyCastle創建pkcs#7證書?

我實際上嘗試SpongyCastle這似乎罰款的工作。

其實,我試着給出的例子:AttrCertExample。我的證書似乎是由最後生成的(第三版)並經過驗證,一切正常。

然後我儘量讓它的DER版本是這樣的:

String strResult = Base64.encode(cert.getTBSCertificate(), Base64.NO_WRAP).toString(); 

但這種操作的結果給了我一個非常小的Base 64編碼字符串(在這裏我想有這樣的事情:

MIICyzCCAbOgAwI [...] 6Shws =(960個字符在基地64)

你真的知道如何獲得PKCS#7版本由SpongyCastle生成的證書呢?

非常感謝您的幫助。如果需要,我可以提供更多的代碼。

回答

0

我很快就得到了答案。這是你如何做到這一點:

// returns a byte array containing the Certificate 
byte[] buf = clientCert.getEncoded(); 

// Returns Base64 encoded certificate 
String strCertificateCrypted_b64 = new String(Base64.encode(buf, Base64.NO_WRAP)); 

那麼你獲得的證書是這樣的:

MIIDHjCCAgagAwIBAgIEOH9W+ [...] czP+BohBw== 

通過與DER延長保存這一點,你就可以很容易地看到證書內容。

+0

這不是PKCS#12。 – 2012-01-21 17:33:34

+0

是的,我看到之後,我需要製作DER證書(PKCS#7),而不是帶有私鑰的PKCS#12。我改變標題爲了保持邏輯。 – Thordax 2012-01-21 21:17:01

相關問題