I am just was reading ISO/IEC 7816 part 4 standard. Unfortunately there are some vague points in it for me and I hope I can receive the answer here.
The first vague point is about Data Objects. It is defined that data objects make Simple-TLV or Ber-TLV categories and have a little description about these categories. But what is a Data Object itself? Is it the data that we store on the card? If so, As far as I know, we store our data in different fields of our applets and we don't consider any BER-TLV
or Simple-TLV
category for them! They are just a series of hex numbers.
The second vague point is about Structure Selection part. It is defined that we can five different ways as below:
- Implicitly after a reset.
- Explicitly by Selection by DF Name
- Explicitly by Selection by File Identifier
- Explicitly by Selection by Path
- Explicitly by Selection by Short EF Identifier
The vague point is that, as far as I know, the only thing that I can select on the card, are applets and nothing else. For the applets I can make the default selected (That can be 1st way of above options, the Implicit selection) or Select it by sending a SELECT APDU command to card with the Applet AID (Which is not mentioned as any of above ways).
So what are these Structure Selection methods?
The third vague point is EF Structures. It is defined that EF-s can have five following structures:
- Transparent structure
- Linear structure with records of fixed size
- Linear structure with records of variable size
- Cyclic structure with records of fixed size (the arrow references the most recently written record)
- TLV structure
The question is again, what is these structures for? Is these the way that data stores in memory? If so, why they are defined in the standard, while they are about the inner behavior of the card? Does the programmer need to know anything about them? Can he/she detect/change used EF structure of his/her card?
And finally, does all ISO 7816-4 compliant cards support all the above items(Because I can't find anything in the ISO 7816-4 mentioning that they are optional or something)?
Does all ISO 7816-4 compliant cards need to support the APDU Commands that are defined in this part of standard?