2016-08-03 141 views
0

我正在开发一个用于在Web浏览器中唱歌PDF文档的Java小程序。该小程序需要能够与Windows和Mac OS兼容。该小程序将在用户的计算机上显示已安装证书的列表,并让用户选择其中一个进行签名。在Java中访问密钥库证书

我发现的例子如何读取使用的“Windows-MY”标识从Windows密钥库证书,但我找不到任何例如在Java证书用于Mac OS工作。如何从Mac上的密钥库读取证书列表?

我是Java编程新手(主要是.NET Web开发人员),也许我会错过一些东西。感谢您的任何帮助。

回答

3

这是记录在这里:Java Cryptography Architecture Oracle Providers Documentation for JDK 8

你应该读整页,但对于你的问题相关的部分是在底部:

苹果公司的供应商实现了java.security.KeyStore中的那提供 访问Mac OS X钥匙串。下面的算法在苹果供应商可供选择:

引擎:密钥库
算法名称(S):KeychainStore

所以,换句话说:你获得了Mac OS X钥匙串KeyStore对象通过使用名称“KeychainStore”:

KeyStore ks = KeyStore.getInstance("KeychainStore"); 

,它基本上是相同的,作为所有其他仓库类型之后。例如,要列出所有证书及其别名:

ks.load(null, null); 
Enumeration<String> en = ks.aliases(); 
while (en.hasMoreElements()) { 
    String aliasKey = en.nextElement(); 
    X509Certificate c = (X509Certificate) ks.getCertificate(aliasKey); 
    System.out.println("alias: " + aliasKey); 
    System.out.println("cert:" + c.getSubjectX500Principal().toString()); 
} 

BTW,浏览器厂商和Oracle正在逐步淘汰的小应用程序的浏览器插件。 Java Web Start可能是另一种选择。

相关问题