我有一个有效的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格式,它只包含证书。
答案 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) {}