2017-09-23 50 views
0

目的Android的数字签名密钥库使用证书

我已经制定了桌面JAVA应用的数字签名使用访问密钥库(Windows的MY)存储在PC X509证书PDF和XML文件。我正在尝试通过访问android密钥库来在Android设备(手机/平板电脑)中开发相同的功能。

问题

的X509证书可以被存储在令牌中的USB或直接安装从SD卡在设置>用户凭据。我认为对于USB令牌,制造商应该支持android操作系统,否则它不会显示在密钥库中。但是,我在用户凭证中安装的证书呢?我不确定在两种情况下使用哪个密钥库。

我已经尝试了以下所有keystores,但没有运气。

KeyStore.getInstance(KeyStore.getDefaultType()); 
KeyStore.getInstance("AndroidCAStore"); // returns only trusted ca certificates not the certificates in User Credentials 
KeyStore.getInstance("AndroidKeyStore"); 
KeyStore.getInstance("BKS"); 

任何帮助,非常感谢!

由于

回答

1

用户凭证安装在设备都可以通过Android的钥匙扣,不Android的密钥库

https://developer.android.com/reference/android/security/KeyChain.html

钥匙串类提供对私钥和在凭证存储其相应的证书链。

用法与Windows-MY略有不同,因为您需要请求用户请求别名。使用choosePrivateKeyAlias提示用户输入签名证书和getPrivateKey恢复密钥