Ich schrieb ein Java-Card-Applet, das einige Daten in den APDU-Puffer bei Offset ISO7816.OFFSET_CDATA
speichert und diese Bytes als Antwort sendet.Was bedeutet das Antwortstatuswort 0x61xx von einer Smartcard?
Util.arrayCopy(Input_Data, (short)0, buffer, (short) ISO7816.OFFSET_CDATA, (short)Datalength);
apdu.setOutgoing();
apdu.setOutgoingLength((short)(DataLength));
apdu.sendBytesLong(buffer, ISO7816.OFFSET_CDATA, (short)(DataLength));
Ich habe dies in einem Simulator ohne Probleme getestet. Aber wenn ich das auf einer echten Chipkarte (Java Card v2.2.1 von Gemalto) teste, bekomme ich als Antwort das Statuswort 0x6180
.
Mein Befehl APDU ist 00 40 00 00 80 Data
, wo Daten eine Länge von 128 Bytes hat, so habe ich 4 + 128 Bytes im Puffer und (260- (4 + 128)) Byte ist Null.
Entschuldigen Sie..Ich nicht und apdu 00 C0 00 00 xx. Ich sende apdu 00 40 00 00 80 Daten, die meine Funktion mit INS = 40 auswählt. Wie wähle ich meine Funktion aus Wenn ich C0 in apdu verwende? –
@FatemeJafari Sie verwenden '00 40 00 00 80 Daten', dann erhalten Sie' 61XX', dann verwenden Sie '00 C0 00 00 XX'. Es ist nur ein spezieller Befehl zum Empfangen von Daten von der Karte. Es gibt Ihnen die Antwort für Ihren '40' Befehl. Sie müssen kein anderes Applet wählen ... – vojta
Vielen Dank Lieber Vojta. In diesem Zustand werde ich meine Antwort in einem Apdu bekommen Wenn ich eine Antwort mehr als 256 habe, was soll ich tun? –