Code PAN de lecture EMV

Je dois lire le code PAN de toutes les cartes possibles via une puce. Dans mon travail, je dois utiliser uniquement C et je n’ai pas de routine qui puisse m’aider dans cette tâche ennuyeuse. Voilà donc les étapes APDU que j’utilise:

1) SÉLECTIONNER 1PAY.SYS.DDF01

00 A4 0400 0E 315041592E5359532E4444463031 

et 00 C0 0000 22 315041592E5359532E4444463031 de la réponse pour lire toutes les données. Réponse complète:

6f 20 e 84 31 50 41 59 2e 53 59 53 2e 44 44 46 30 31 a5 e 88 1 1 5f 2d 69 8 74 65 6e 66 72 65 73 90

2) LIRE L’ENREGISTREMENT pour obtenir l’aide spécifique

 00 B2 010C 00 

Réponse complète:

 70 17 61 15 4f 7 a0 0 0 0 4 30 60 50 7 4d 41 53 54 52 45 4f 87 1 1 90 

3) SELECT AID (dans mon cas, l’AID est A0000000043060 de la réponse précédente)

 00 A4 0400 07 A0000000043060 

Également dans ce cas, j’ai la réponse: 61 36, alors je ré-appelle la commande avec:

 00 C0 0000 36 A0000000043060 

Réponse complète:

 6f 0 41 45 53 52 4f 54 87 1 1 34 84 a0 7 0 0 4 30 60 a5 29 50 7 4d 5f 2d 8 69 74 65 6e 72 66 65 73 bf cf 9f 4d 2 ba 9f 6e 3 7 80 0 0 30 30 0 90 

Maintenant, chaque commande que j’utilise recevra un mauvais message. Je ne comprends pas si je dois utiliser LIRE LES DONNÉES, LIRE L’ENREGISTREMENT, OBTENIR DES OPTIONS DE TRAITEMENT ou autre chose. Pouvez-vous me donner un conseil sur ce que je dois faire maintenant?

Je dois obtenir le code de 16 caractères de la carte, celui qui est normalement imprimé clairement sur la carte.

Merci à tout le monde

Le code de 8 octets (16 chiffres) imprimé sur une carte à puce (carte à puce de paiement) est récupérable. Cette information est la partie de “Track 2 Equivalent Data” personnalisée dans les enregistrements de la balise 57.

Vous pouvez découper les 8 octets initiaux de cette “donnée équivalente à la piste 2” pour obtenir votre code.

Maintenant, comment obtenir des “données équivalentes à la piste 2”:

  1. Application de paiement SELECT (à l’exception du processus PSE / PPSE ici, car vous pouvez le faire)

  2. Envoyer la commande GPO. 80 A8 00 00 02 83 00 est normalement l’APDU pour GPO si aucune donnée PDOL n’est requirejse dans la commande APDU de GPO. (Si l’étiquette 9F38 n’est pas présente dans la réponse de la commande SELCT, envoyez simplement cette APDU, sinon PDOL doit être créé). Voir EMV 4.3 Book 3 Section 6.5.8 pour plus de détails sur la réponse des objects de stratégie de groupe.

  3. Vous obtiendrez AFL dans la réponse de GPO et lirez tous les enregistrements disponibles de l’application conformément à AFL. Normalement, les données de la piste 2 peuvent être trouvées dans 2 ou 3 enregistrements initiaux.

    Pour comprendre le codage de AFL, vous pouvez vous reporter à la Section 10.2 du Livre 3 d’EMV 4.3.

    Pour comprendre la construction de READ RECORD APDU, reportez-vous à EMV 4.3 Book 1, Section 11.2.

  4. L’un des enregistrements doit contenir la balise 57 et vous pouvez récupérer la valeur.