3

我正在尝试使用 Java 与 CAC 通信。从开发工具包中,我能够找到有关提取唯一 ID (CHUID) 的信息以及其他一些信息,例如卡上可用的小程序。但是,我无法从卡中提取用户名 (LastName.FirstName.MiddleName.ID),也无法找到有关 CAC 内容的文档。

我没有使用该卡访问安全网站。我在桌面应用程序中使用它来验证用户,因此不会访问存储在卡上的证书。我可以访问存储在卡上的不同小程序,但不知道如何获取用户名。需要此用户名来验证我们系统中的用户。如何从 CAC 获取用户名?

4

2 回答 2

2

我不确定您使用什么来执行此操作,但如果您使用 PKCS#11 访问它,您需要在卡上找到KeyStore包含文本“ID 证书”的别名。然后,您可以获取该证书作为X509CertificateusingkeyStore.getCertificate(alias)并获取您正在寻找的名称 using cert.getSubjectX500Principal().getName()

是的,我也从未真正找到任何此类事情的文档。

于 2010-12-15T23:00:11.403 回答
0

大多数读卡器都会附带一个支持 PKCS #11 的驱动程序,然后您可以使用 SunPKCS11 安全提供程序将 CAC 视为任何其他密钥存储。这个对相关问题的回答可能会有所帮助。

至于有关开发支持 CAC 的 Java 应用程序的文档,我也找不到任何文档。

于 2010-12-15T22:53:49.660 回答