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

时间:2014-02-05 14:07:54

标签: certificate x509certificate smartcard cac

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

谢谢。

1 个答案:

答案 0 :(得分:2)

所以我会回答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));

您可以在nist 6887中查找选择小程序并选择EF命令,可以在cac.mil上的文档中找到RID,AID,OID。