2012-10-31 36 views
1

我有一個有效的P12文件。我需要實例化一個X509certificate對象,以便我可以將它用作客戶端證書。如何實例化黑莓P12文件中的X509Certificate

我意識到,已經有類似的問題在這裏得到解答,How to instantiate javax.security.X509Certficate object from a p12 certificate (contains certificate + private key)

但是在黑莓中的getInstance(String)方法不適用於密鑰庫。它可用於DeviceKeyStore和TrustedKeyStore。但是我們無法將「PKCS12」參數傳遞給getInstance()方法。

另外DeviceKeyStore或TrustedKeyStore沒有load方法。他們有set方法。但我不確定我們如何將fileinputstream參數傳遞給那個參數。

有沒有人試過嗎?你知道有什麼替代方法可用嗎?

感謝您的幫助。

編輯: 有一種方法爲PEM文件做這個,(Install SSL Certificate with BlackBerry App)這是我最初嘗試使它工作。但是格式不同。 PEM是Base64格式,它只包含證書。

回答

2

您可以調用外部應用程序來做到這一點。有一個部分的解決方案: http://supportforums.blackberry.com/t5/Java-Development/Handling-a-p12-certificate-store/td-p/654127

但由於某種原因,你沒有得到導入菜單!這段代碼:

Invocation certInvocation = new Invocation("path to .p12 on SD Card"); 
certInvocation.setResponseRequired(false); 
certInvocation.setID(BlackBerryContentHandler.ID_MEDIA_CONTENT_HANDLER); 
certInvocation.setAction(ContentHandler.ACTION_OPEN); 
certInvocation.setType("application/x-pkcs12"); 

Registry registry = Registry.getRegistry(Application.class.getName()); 
try { 

    registry.invoke(certInvocation); 
} 
catch (Throwable t) {}