gpt4 book ai didi

java - DoD CAC ADPU 命令

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:43 34 4
gpt4 key购买 nike

我正在尝试为我正在编写的 Java 应用程序允许 DoD CAC 注册/身份验证。我正在使用 javax.smartcario 包来读取卡片。我可以成功连接并读取 GUID。我要查找的信息是卡上的用户名 (LAST.FIRST.M.123456789)。我正在使用以下 AID,它使我能够访问 GUID 和证书:

byte[] aid = {(byte) 0xA0, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x10, 0x00};

存储用户名的卡上是否有不同的应用程序?用户名是否以某种方式嵌入到证书中?谢谢!

[编辑]

我正在尝试根据 APDU 命令响应生成证书,但抛出了异常。

 // X.509 Certificate for PIV auth command
byte[] apdu = {0x00, (byte)0xCB, 0x3F,
(byte)0xFF, 0x05, 0x5C, 0x03, 0x5F, (byte)0xC1, 0x05};
answer = channel.transmit(new CommandAPDU(apdu));

CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(
new ByteArrayInputStream(answer.getBytes()));

抛出以下异常:

java.security.cert.CertificateException: Could not parse certificate: java.io.IOException: Empty input

字节数组不为空。谢谢!

最佳答案

你必须同时查看 0x70 和 0x71 标签。

0x70 有证书数据,0x71 告诉你格式(过度简化会是 0 未压缩,1 是压缩 (gzip))

该值也可能超过单个 255 字节缓冲区。您将需要多几行代码才能将有效的 byte[] 传入 X509“工厂”。

关于java - DoD CAC ADPU 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23701657/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com