从智能卡中选择别名



我正在寻找一种方法来选择从智能卡使用的别名。我需要别名标识的密钥来签署我的pdf文档。我使用WINDOWS-MY密钥库的实现。当智能卡上有多个别名及其私钥/公钥对时,我使用:

String alias = (String)ks.aliases().nextElement();

我使用WINDOWS-MY密钥存储中的第一个别名对文档进行签名。我可以在智能卡上列出所有的东西:

Enumeration enumeration = ks.aliases();
while(enumeration.hasMoreElements()) {
String a = (String)enumeration.nextElement();
System.out.println("alias name: " + a);}

并按名称硬编码我想使用的别名。然而,是否有更好的方法来做到这一点?

如果你只有一种智能卡需要担心,你当然可以这样编程。

为了使它更动态/可靠,我首先看一下附带的证书。例如,检查证书中的密钥用法是否表明可以使用私钥进行签名。您还可以检查其他字段,例如证书的签名、颁发者和到期日期、撤销状态等。否则,您可能允许使用不应该用于您所提供的服务类型的密钥进行签名。

进行签名的人可能还想知道他使用的是正确的智能卡/证书/私钥。

最新更新