从美国国防部CAC卡获取名称/ UID

问题描述:

有人能告诉我一种方法来存储美国国防部CAC卡的用户名吗?我不需要进行任何验证,只需将卡片中的名称存储为变量即可。我不认为读取卡的机器将具有任何网络连接。我在这一点上是语言/操作系统不可知论者。从美国国防部CAC卡获取名称/ UID

谢谢。

所以我会回答Windows和Java。

枚举的终端,那么如果一个卡存在,(假设只有当前CAC卡):

cc.transmit(new CommandAPDU(CMD_SELECT_APPLET_CAC_CACV2_PKI_IDENTITY_KEY)); 
cc.transmit(new CommandAPDU(CMD_SELECT_EF_CACV2_PKI_IDENTITY_KEY)); 
List<byte[]>[] res = TLVContainer.getTagAndValues(cc); 
x509cert = X509CACHelper.fromBytes(res[0x71].get(0)[0],res[0x70].get(0)); 

你可以看一下选择小程序并选择EF命令在NIST 6887的RID,AID, OID可以在cac.mil的文档中找到。