如何使用Java从DoD CAC中提取用户名

我正在尝试使用Java与CAC进行通信。通过开发人员工具包,我能够找到有关提取唯一ID(CHUID)和其他一些信息的信息,例如卡上可用的小程序。但是,我无法从卡中提取用户名(LastName.FirstName.MiddleName.ID),我也无法找到有关CAC内容的文档。 我没有使用该卡访问安全的网站。我在桌面应用程序中使用它来验证用户,因此不会访问存储在卡上的证书。我能够访问存储在卡上的不同小程序,但不知道如何取出用户名。需要此用户名来验证系统中的用户。如何从CAC获取用户名?     
已邀请:
我不确定你用它做什么,但是如果你使用PKCS#11访问它,你需要在卡片上找到包含文本“ID Certificate”的别名。然后,您可以使用
keyStore.getCertificate(alias)
将该证书作为
X509Certificate
获取,并使用
cert.getSubjectX500Principal().getName()
获取您正在寻找的名称。 是的,我从来没有真正找到任何这类文件的文件。     
大多数读卡器都带有支持PKCS#11支持的驱动程序,然后您可以像使用任何其他密钥存储一样使用SunPKCS11安全提供程序来处理CAC。对相关问题的回答可能会有所帮助。 至于开发支持CAC的Java应用程序的文档,我从来没有找到任何一个。     

要回复问题请先登录注册