Smart Card Shell

Atr - Reference Documentation

Index of Methods

Properties

Type Name Description
Number formatByte Format byte from ATR returned by ICC (2.Byte)
ByteString historicalBytes Historical bytes
ByteString interfaceBytes Interface bytes
Number tckByte Check byte (T=0, T=1) or word (T=CL)

Constructor

Prototype

Atr(ByteString atr)

Description

Validate and decode ATR

Arguments

Type Name Description
ByteString atr ATR

Exceptions

Name Value Description
GPError GPError.ARGUMENTS_MISSING Too few arguments in call
GPError GPError.INVALID_ARGUMENTS Too many arguments in call
GPError GPError.INVALID_TYPE Type of argument is invalid for call
GPError GPError.INVALID_DATA ATR is invalid

Example



atr = new Atr(new ByteString("3BBD18008131FE45805102670414B1010102008105", HEX));

print(atr);
print(atr.formatByte);
print(atr.historicalBytes);
print(atr.interfaceBytes);
print(atr.tckByte);

atr = new Atr(new ByteString("A2131088", HEX));
print(atr);
atr = new Atr(new ByteString("92231088", HEX));
print(atr);
atr = new Atr(new ByteString("3B85004934313000", HEX));
print(atr);
atr = new Atr(new ByteString("3B840034310100", HEX));
print(atr);
atr = new Atr(new ByteString("3B8A813140434D49434152444F313331", HEX));
print(atr);
atr = new Atr(new ByteString("3B8A81314F4395010190900900012091", HEX));
print(atr);
atr = new Atr(new ByteString("3B8481014D538102", HEX));
print(atr);
atr = new Atr(new ByteString("3B85004D46430110", HEX));
print(atr);
atr = new Atr(new ByteString("3B600000", HEX));
print(atr);
atr = new Atr(new ByteString("3B91948031FE4966", HEX));
print(atr);
atr = new Atr(new ByteString("3BF39400FF80B1FE491F034D3253", HEX));
print(atr);
atr = new Atr(new ByteString("3B91948031FE4967", HEX));
print(atr);
atr = new Atr(new ByteString("3BF89400FF80B1FE451F03D276000028FF051A", HEX));
print(atr);
atr = new Atr(new ByteString("3BF31100FF80B1F0491F034C454F", HEX));
print(atr);
atr = new Atr(new ByteString("3BFD9400FF80B1FE451F030068D276000028FF051E009000", HEX));
print(atr);
atr = new Atr(new ByteString("3BFF9400FF80B1FE451F030068D276000028FF051E3180009000", HEX));
print(atr);
atr = new Atr(new ByteString("3BFD9400FF80B1FE451F030068D276000028FF0524009000", HEX));
print(atr);
atr = new Atr(new ByteString("3BFF9400FF80B1FE451F030068D276000028FF05243180009000", HEX));
print(atr);
atr = new Atr(new ByteString("3BFD9400FF80B1FE451F030068D276000028FF0523009000", HEX));
print(atr);
atr = new Atr(new ByteString("3BFF9400FF80B1FE451F030068D276000028FF05233180009000", HEX));
print(atr);
atr = new Atr(new ByteString("3BEF00FF813152454D46432049424D2034304839363031", HEX));
print(atr);
atr = new Atr(new ByteString("3BEF00FF81315045656308041302500002000000010120", HEX));
print(atr);
atr = new Atr(new ByteString("3B6F00008031E06B8034030103038034555555", HEX));
print(atr);
atr = new Atr(new ByteString("3B6F00008031E06B8403030406555555555555", HEX));
print(atr);
atr = new Atr(new ByteString("3BEF00FF813150456563080B4002800008187002010400", HEX));
print(atr);
atr = new Atr(new ByteString("3BBB18008131FE4580670412B0020182018105", HEX));
print(atr);
atr = new Atr(new ByteString("3BBB18008131FE4580670414B0010182018105", HEX));
print(atr);
atr = new Atr(new ByteString("3BBD18008131FE45805102670412B0020182208105", HEX));
print(atr);
atr = new Atr(new ByteString("3BBD18008131FE45805101670412B0020182208105", HEX));
print(atr);
atr = new Atr(new ByteString("3BFF1800FF8131FE45454C435F56312E3020202020202020", HEX));
print(atr);
atr = new Atr(new ByteString("3BBD18008131FE45805102670414B1010182038105", HEX));
print(atr);
atr = new Atr(new ByteString("3BBD18008131FE45805101670414B1010182038105", HEX));
print(atr);
atr = new Atr(new ByteString("3BBD18008131FE45805102670414B1010182108105", HEX));
print(atr);
atr = new Atr(new ByteString("3BBD18008131FE45805101670414B1010182108105", HEX));
print(atr);
atr = new Atr(new ByteString("3B9F1881B1FE451FC3006D05A3010031B873B7B5DB009000A9", HEX));
print(atr);
atr = new Atr(new ByteString("3B00", HEX));
print(atr);
atr = new Atr(new ByteString("3F00", HEX));
print(atr);
atr = new Atr(new ByteString("3BF0FFFFFFF0FFFFFFF1FFFFFFF0FFFFFFFFFFFFFF00", HEX));
print(atr);
atr = new Atr(new ByteString("3B8001", HEX));
print(atr);


toByteString()

Prototype

ByteString toByteString()

Description

Return the encoded ATR as ByteString object

Return

ByteString ATR

Exceptions

Name Value Description
GPError GPError.INVALID_ARGUMENTS Too many arguments in call

Example


bs = new ByteString("3BBD18008131FE45805102670414B1010102008105", HEX)
atr = new Atr(bs);
assert(atr.toByteString().equals(bs));

toString()

Prototype

String toString()

Description

Return the ATR in human readable format

Return

String Decoded ATR

Exceptions

Name Value Description
GPError GPError.INVALID_ARGUMENTS Too many arguments in call

Example


bs = new ByteString("3BBD18008131FE45805102670414B1010102008105", HEX)
atr = new Atr(bs);
val = atr.toString();