如何从Blackberry中的P12文件实例化X509Certificate

时间:2012-10-31 04:07:34

标签: blackberry java-me keystore x509 pkcs#12

我有一个有效的P12文件。我需要实例化一个X509certificate对象,以便我可以将它用作客户端证书。

我意识到这里已经回答了类似的问题,How to instantiate javax.security.X509Certficate object from a p12 certificate (contains certificate + private key)

但是在Blackberry中,getInstance(String)方法不适用于KeyStore。它可用于DeviceKeyStore和TrustedKeyStore。但我们无法将“PKCS12”参数传递给getInstance()方法。

DeviceKeyStore或TrustedKeyStore也没有load方法。他们有set方法。但我不确定如何将fileinputstream参数传递给那个参数。

有人试过吗?你知道有什么替代方法吗?

感谢您的帮助。

编辑: 有一种方法可以为PEM文件(Install SSL Certificate with BlackBerry App)执行此操作,这是我最初尝试使其工作的方法。但格式不同。 PEM是Base64格式,它只包含证书。

1 个答案:

答案 0 :(得分: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) {}