J'utilise un lecteur de carte à puce ACR39T-A3 connecté par USB à un appareil Android.APDU Case 2 Réponse trop courte
J'envoie d'abord une commande APDU Case 2 comme ceci.
int offset = 0;
List<byte[]> dataList = new ArrayList<>(8);
while (true) {
if (!responseString.contains("90 00")) {
break;
}
dataList.add(progress[0].response);
int offsetStartInt = 0x7F & (offset >> 8);
int offsetEndInt = offset & 0xFF ;
//SmartcardOS
//T1
byte[] apdu = new byte[]{
(byte) 0x00, //CLA
(byte) 0xB0, //INS
(byte) offsetStartInt, //P1
(byte) offsetEndInt, //P2
(byte) 0xff, //LE
};
transmitApdu(apdu);
offset += 256;
}
Je tente d'obtenir un certificat de la carte à puce. Le certificat peut être plus grand que 256 donc j'ai besoin d'envoyer plusieurs. Mais en tant que réponse, je viens d'obtenir 90 00 au lieu du certificat en mulitple.
Quelqu'un peut-il m'aider? Je ne comprends pas comment ça marche avec le décalage.
Merci pour votre réponse. Il a travaillé avec l'incrément de décalage de 255. Merci beaucoup – user2270079
Depuis que cela a fonctionné, j'ai changé mon commentaire à une réponse. – guidot