2010-08-04 24 views
2

Certaines cartes à puce offrent la possibilité de référencer un fichier par un SFI (identificateur de fichier court), qui est un nombre à 5 bits. En revanche, un identifiant de fichier typique est long de 2 octets. J'ai besoin d'aide pour trouver comment faire cela, parce que je n'ai pas réussi à trouver une réponse à ISO 7816-4.Sélectionnez EF sur une carte à puce via son SFI

Tout d'abord, section 5.3.1.1 états (non souligné)

Sélection par identifiant court EF - Un identificateur court EF peut faire référence à tout EF. Il se compose de cinq bits pas tous égal, c'est-à-dire, n'importe quel nombre de un à trente. Lorsqu'il est utilisé en tant qu'identificateur EF court, le numéro zéro, c'est-à-dire, 00000 en binaire, fait référence à l'EF actuel . Au niveau MF, le nombre binaire trente, c'est-à-dire 11110 dans , est réservé (voir 8.2.1.1). Les identifiants EF courts ne peuvent pas être utilisés dans un chemin ou comme identificateur EF (par exemple, dans une commande SELECT ).

Ma façon d'interpréter cette phrase est « vous ne pouvez pas utiliser un SFI pour sélectionner un fichier sur la carte à puce » - ce qui est pas ce que je pense. En outre, section 7.1.1 spécifie comment la commande SELECT APDU est supposée être utilisée; la table 39 spécifie le contenu de P1. Cependant, aucun des exemples n'indique comment l'adresser via SFI (tous sont des identifiants de 2 octets).

Mes questions sont les suivantes:

  1. Quelle est la raison d'être d'ajouter SFI? 2 octets par identifiant était trop?
  2. Comment un fichier peut-il être SELECT, si son SFI est connu?

Répondre

4

J'ai trouvé les réponses à mes questions après quelques recherches supplémentaires.

  1. Un fichier peut être lu directement via le SFI, sans avoir à être sélectionné au préalable. Cela vous permet de gagner du temps (car il n'y a pas de temps à consacrer à la sélection). Comme discuté dans # 1, le point d'un SFI est que vous pouvez le lire immédiatement, ainsi les instructions qui expliquent comment un fichier peut être lu si son SFI est connu se trouvent dans la description des autres commandes - READ BINARY , LIRE ENREGISTREMENT, etc. Voir section 7.2.2 du même document