Question

J'essaie de signer un document via Cryptotech SCR3310 en utilisant Un cadre de carte à puce pour .NET. J'utilise la démo du deuxième article (SmartCardFMWK). En envoyant apducommand, j'obtiendrai des erreurs comme:

  • pour la vérification (nouvel apducommand (0x00, 0x20, 0, 1, null, 0))) SW1 = 69 SW2 = 83 (méthode d'authentification bloquée) Errornr1
  • Pour sélectionner Fichier (Nouveau apduCommand (0x00, 0xa4, 0, 0, null, 0)) [SW = 61 SW2 = 2E] [4] ERRORNR2
  • Pour obtenir une réponse (nouvel apducommand (0x00, 0xc0, 0, 0, null, 0)) SW = 68 00 errornr3

CODE:

APDUCommand apduVerifyCHV = new APDUCommand(0x00, 0x20, 0, 1, null, 0)
APDUCommand apduSelectFile = new APDUCommand(0x00, 0xA4, 0, 0, null, 0)
APDUResponse apduResp;

CardNative iCard = new CardNative();
iCard.Connect(readers[0], SHARE.Shared, PROTOCOL.T0orT1); //connected
Console.WriteLine("Connects card on reader: " + readers[0]);

// Verify the PIN  (PIN = 12341234)
byte[] pin = new byte[] { 0x31, 0x32, 0x33, 0x34, 0x31, 0x32, 0x33, 0x34 }; 

APDUParam apduParam = new APDUParam();
apduParam.Data = pin;
apduVerifyCHV.Update(apduParam);
apduResp = iCard.Transmit(apduVerifyCHV); //ErrorNr1

// Select the MF (3F00)
apduParam.Data = new byte[] { 0x3F, 0x00 };
apduSelectFile = new APDUCommand(0x00, 0xA4, 0, 0, apduParam.Data, 0);

apduSelectFile.Update(apduParam);
apduResp = iCard.Transmit(apduSelectFile); //ErrorNr2
apduGetResponse.Update(apduParam);
apduResp = iCard.Transmit(apduGetResponse); //ErrorNr3

Que dois-je faire pour me débarrasser de ces erreurs ?? J'ai testé la carte avec un autre programme et il n'y a pas d'erreurs.

Peut-être que les paramètres apducommand sont faux. Comment penses-tu?

Était-ce utile?

La solution

Si cette carte fonctionne correctement avec d'autres programmes, la clé est de définir les paramètres appropriés pour la commande APDU. Je n'ai jamais fait cela, mais mon ami avait un projet universitaire lié aux cartes étudiants. Il m'a fourni le lien suivant avec la liste des commandes APDU connues. Je ne sais pas, peut-être que cela vous aidera à trouver la bonne combinaison.

Table APDU

Autres conseils

  • Le lecteur de cartes à puce dans les questions n'est pas pertinent, il est jugé un appareil de passerelle pour carte. Vos erreurs ne sont pas du lecteur mais du carte
  • Vous avez vraiment besoin d'avoir un manuel pour votre carte ou vous pouvez essayer les commandes d'ISO 7816-4
  • Appeler la réponse Get signifierait généralement l'utilisation du protocole t = 0, vous vous connectez avec T = 0 ou T = 1 qui par défaut T = 1 pour les cartes modernes qui le prennent en charge.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top