Я пытаюсь прочитать информацию с австрийской открытки, чтобы получить имя и фамилию.Как декодировать ResponseAPDU в XML с австрийской электронной карты?
Что сейчас работает: получите доступ к карте, отправьте команды APDU и получите информацию в виде массива байтов.
Как преобразовать полученный массив байтов в XML для извлечения необходимых данных?
Вот код:
import java.util.List;
import javax.smartcardio.Card;
import javax.smartcardio.CardChannel;
import javax.smartcardio.CardException;
import javax.smartcardio.CardTerminal;
import javax.smartcardio.CommandAPDU;
import javax.smartcardio.ResponseAPDU;
import javax.smartcardio.TerminalFactory;
public class Main2 {
public static void main(String[] args) {
TerminalFactory factory = TerminalFactory.getDefault();
List<CardTerminal> terminals;
try {
terminals = factory.terminals().list();
CardTerminal terminal = terminals.get(0);
Card card = terminal.connect("*");
CardChannel channel = card.getBasicChannel();
// Select the MF
byte[] aid = { (byte) 0xD0, 0x40, 0x00, 0x00, 0x17, 0x01, 0x01, 0x01 };
ResponseAPDU resp = channel.transmit(new CommandAPDU(0x00, 0xA4, 0x04, 0x00, aid));
System.out.println("Response: " + resp.toString());
// Select the Personaladata-file
byte[] aid2 = { (byte) 0xEF, 0x01 };
resp = channel.transmit(new CommandAPDU(0x00, 0xA4, 0x02, 0x04, aid2));
System.out.println("Response: " + resp.toString());
// Get the data from the file
resp = channel.transmit(new CommandAPDU(0x00, 0xB0, 0x00, 0x00, 0xFF));
System.out.println("Response: " + resp.toString());
System.out.println("Response String: " + new String(resp.getData()));
card.disconnect(false);
} catch (CardException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Просто следует помнить, что индекс имя, фамилия и пол поля могут изменяться, поэтому 'asn1.getObjectAt (2) 'не всегда даст вам данное имя и т. Д. Это, например, случай, когда есть дополнительные поля для префикса академического звания или суффикс академической степени. Я только что проверил мои предыдущие карточки, и эти поля просто отсутствуют, если нет названия или суффикса. –