Команды DoD CAC ADPU

Я пытаюсь разрешить регистрацию/аутентификацию DoD CAC для приложения Java, которое я пишу. Я использую пакет 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

Массив байтов не пуст. Спасибо!


person dustinnoe    schedule 16.05.2014    source источник
comment
Что содержит массив байтов в шестнадцатеричном формате? Обратите внимание, что для получения данных ответа вам нужно использовать answer.getData(), а не answer.getBytes(), поскольку позднее также будет возвращено слово состояния.   -  person Maarten Bodewes    schedule 17.05.2014


Ответы (1)


Вы должны смотреть на теги 0x70 и 0x71.

0x70 содержит данные сертификата, а 0x71 сообщает вам формат (чрезмерное упрощение будет равно 0 несжатому и 1 сжатому (gzip))

также значение, вероятно, будет больше, чем один 255-байтовый буфер. Вам понадобится еще несколько строк кода, прежде чем вы сможете получить действительный байт [] для передачи на «фабрику» X509.

person Jason Pyeron    schedule 13.06.2014
comment
эй, у вас есть ссылка на используемый формат сжатия? gunzip не нравятся данные сертификата, которые я ему даю. Благодарность - person elmarco; 02.12.2014