**javacard.framework** ====Interface ISO7816 ==== ---- ISO7816 encapsulates constants related to ISO 7816-3 and ISO 7816-4. ISO7816 interface contains only static fields. The static fields with SW_ prefixes define constants for the ISO 7816-4 defined response status word. The fields which use the _00 suffix require the low order byte to be customized appropriately e.g (ISO7816.SW_CORRECT_LENGTH_00 + (0x0025 & 0xFF)). The static fields with OFFSET_ prefixes define constants to be used to index into the APDU buffer byte array to access ISO 7816-4 defined header information. ---- ^ Field Summary ^^ | **static byte** | **[[javacard:java-card-api:ISO7816#CLA_ISO7816|CLA_ISO7816]] **          APDU command CLA : ISO 7816 = 0x00 | | **static byte** | **[[javacard:java-card-api:ISO7816#INS_EXTERNAL_AUTHENTICATE|INS_EXTERNAL_AUTHENTICATE]] **          APDU command INS : EXTERNAL AUTHENTICATE = 0x82 | | **static byte** | **[[javacard:java-card-api:ISO7816#INS_SELECT|INS_SELECT]] **          APDU command INS : SELECT = 0xA4 | | **static byte** | **[[javacard:java-card-api:ISO7816#OFFSET_CDATA|OFFSET_CDATA]] **          APDU command data offset : CDATA = 5 | | **static byte** | **[[javacard:java-card-api:ISO7816#OFFSET_CLA|OFFSET_CLA]] **          APDU header offset : CLA = 0 | | **static byte** | **[[javacard:java-card-api:ISO7816#OFFSET_EXT_CDATA|OFFSET_EXT_CDATA]] **          APDU command data offset with extended length input data : EXT_CDATA = 7 | | **static byte** | **[[javacard:java-card-api:ISO7816#OFFSET_INS|OFFSET_INS]] **          APDU header offset : INS = 1 | | **static byte** | **[[javacard:java-card-api:ISO7816#OFFSET_LC|OFFSET_LC]] **          APDU header offset : LC = 4 | | **static byte** | **[[javacard:java-card-api:ISO7816#OFFSET_P1|OFFSET_P1]] **          APDU header offset : P1 = 2 | | **static byte** | **[[javacard:java-card-api:ISO7816#OFFSET_P2|OFFSET_P2]] **          APDU header offset : P2 = 3 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_APPLET_SELECT_FAILED|SW_APPLET_SELECT_FAILED]] **          Response status : Applet selection failed = 0x6999; | | **static short** | **[[javacard:java-card-api:ISO7816#SW_BYTES_REMAINING_00|SW_BYTES_REMAINING_00]] **          Response status : Response bytes remaining = 0x6100 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_CLA_NOT_SUPPORTED|SW_CLA_NOT_SUPPORTED]] **          Response status : CLA value not supported = 0x6E00 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_COMMAND_CHAINING_NOT_SUPPORTED|SW_COMMAND_CHAINING_NOT_SUPPORTED]] **          Response status : Command chaining not supported = 0x6884 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_COMMAND_NOT_ALLOWED|SW_COMMAND_NOT_ALLOWED]] **          Response status : Command not allowed (no current EF) = 0x6986 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_CONDITIONS_NOT_SATISFIED|SW_CONDITIONS_NOT_SATISFIED]] **          Response status : Conditions of use not satisfied = 0x6985 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_CORRECT_LENGTH_00|SW_CORRECT_LENGTH_00]] **          Response status : Correct Expected Length (Le) = 0x6C00 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_DATA_INVALID|SW_DATA_INVALID]] **          Response status : Data invalid = 0x6984 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_FILE_FULL|SW_FILE_FULL]] **          Response status : Not enough memory space in the file= 0x6A84 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_FILE_INVALID|SW_FILE_INVALID]] **          Response status : File invalid = 0x6983 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_FILE_NOT_FOUND|SW_FILE_NOT_FOUND]] **          Response status : File not found = 0x6A82 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_FUNC_NOT_SUPPORTED|SW_FUNC_NOT_SUPPORTED]] **          Response status : Function not supported = 0x6A81 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_INCORRECT_P1P2|SW_INCORRECT_P1P2]] **          Response status : Incorrect parameters (P1,P2) = 0x6A86 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_INS_NOT_SUPPORTED|SW_INS_NOT_SUPPORTED]] **          Response status : INS value not supported = 0x6D00 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_LAST_COMMAND_EXPECTED|SW_LAST_COMMAND_EXPECTED]] **          Response status : Last command in chain expected = 0x6883 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_LOGICAL_CHANNEL_NOT_SUPPORTED|SW_LOGICAL_CHANNEL_NOT_SUPPORTED]] **          Response status : Card does not support the operation on the specified logical channel= 0x6881 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_NO_ERROR|SW_NO_ERROR]] **          Response status : No Error = (short)0x9000 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_RECORD_NOT_FOUND|SW_RECORD_NOT_FOUND]] **          Response status : Record not found = 0x6A83 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_SECURE_MESSAGING_NOT_SUPPORTED|SW_SECURE_MESSAGING_NOT_SUPPORTED]] **          Response status : Card does not support secure messaging = 0x6882 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_SECURITY_STATUS_NOT_SATISFIED|SW_SECURITY_STATUS_NOT_SATISFIED]] **          Response status : Security condition not satisfied = 0x6982 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_UNKNOWN|SW_UNKNOWN]] **          Response status : No precise diagnosis = 0x6F00 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_WARNING_STATE_UNCHANGED|SW_WARNING_STATE_UNCHANGED]] **          Response status : Warning, card state unchanged= 0x6200 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_WRONG_DATA|SW_WRONG_DATA]] **          Response status : Wrong data = 0x6A80 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_WRONG_LENGTH|SW_WRONG_LENGTH]] **          Response status : Wrong length = 0x6700 | | **static short** | **[[javacard:java-card-api:ISO7816#SW_WRONG_P1P2|SW_WRONG_P1P2]] **          Response status : Incorrect parameters (P1,P2) = 0x6B00 |   ^ Field Detail ^ === SW_NO_ERROR === static final short **SW_NO_ERROR** Response status : No Error = (short)0x9000 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_NO_ERROR|Constant Field Values]] ---- === SW_BYTES_REMAINING_00 === static final short **SW_BYTES_REMAINING_00** Response status : Response bytes remaining = 0x6100 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_BYTES_REMAINING_00|Constant Field Values]] ---- === SW_WRONG_LENGTH === static final short **SW_WRONG_LENGTH** Response status : Wrong length = 0x6700 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_WRONG_LENGTH|Constant Field Values]] ---- === SW_SECURITY_STATUS_NOT_SATISFIED === static final short **SW_SECURITY_STATUS_NOT_SATISFIED** Response status : Security condition not satisfied = 0x6982 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED|Constant Field Values]] ---- === SW_FILE_INVALID === static final short **SW_FILE_INVALID** Response status : File invalid = 0x6983 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_FILE_INVALID|Constant Field Values]] ---- === SW_DATA_INVALID === static final short **SW_DATA_INVALID** Response status : Data invalid = 0x6984 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_DATA_INVALID|Constant Field Values]] ---- === SW_CONDITIONS_NOT_SATISFIED === static final short **SW_CONDITIONS_NOT_SATISFIED** Response status : Conditions of use not satisfied = 0x6985 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_CONDITIONS_NOT_SATISFIED|Constant Field Values]] ---- === SW_COMMAND_NOT_ALLOWED === static final short **SW_COMMAND_NOT_ALLOWED** Response status : Command not allowed (no current EF) = 0x6986 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_COMMAND_NOT_ALLOWED|Constant Field Values]] ---- === SW_APPLET_SELECT_FAILED === static final short **SW_APPLET_SELECT_FAILED** Response status : Applet selection failed = 0x6999; **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_APPLET_SELECT_FAILED|Constant Field Values]] ---- === SW_WRONG_DATA === static final short **SW_WRONG_DATA** Response status : Wrong data = 0x6A80 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_WRONG_DATA|Constant Field Values]] ---- === SW_FUNC_NOT_SUPPORTED === static final short **SW_FUNC_NOT_SUPPORTED** Response status : Function not supported = 0x6A81 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_FUNC_NOT_SUPPORTED|Constant Field Values]] ---- === SW_FILE_NOT_FOUND === static final short **SW_FILE_NOT_FOUND** Response status : File not found = 0x6A82 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_FILE_NOT_FOUND|Constant Field Values]] ---- === SW_RECORD_NOT_FOUND === static final short **SW_RECORD_NOT_FOUND** Response status : Record not found = 0x6A83 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_RECORD_NOT_FOUND|Constant Field Values]] ---- === SW_INCORRECT_P1P2 === static final short **SW_INCORRECT_P1P2** Response status : Incorrect parameters (P1,P2) = 0x6A86 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_INCORRECT_P1P2|Constant Field Values]] ---- === SW_WRONG_P1P2 === static final short **SW_WRONG_P1P2** Response status : Incorrect parameters (P1,P2) = 0x6B00 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_WRONG_P1P2|Constant Field Values]] ---- === SW_CORRECT_LENGTH_00 === static final short **SW_CORRECT_LENGTH_00** Response status : Correct Expected Length (Le) = 0x6C00 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_CORRECT_LENGTH_00|Constant Field Values]] ---- === SW_INS_NOT_SUPPORTED === static final short **SW_INS_NOT_SUPPORTED** Response status : INS value not supported = 0x6D00 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_INS_NOT_SUPPORTED|Constant Field Values]] ---- === SW_CLA_NOT_SUPPORTED === static final short **SW_CLA_NOT_SUPPORTED** Response status : CLA value not supported = 0x6E00 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_CLA_NOT_SUPPORTED|Constant Field Values]] ---- === SW_UNKNOWN === static final short **SW_UNKNOWN** Response status : No precise diagnosis = 0x6F00 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_UNKNOWN|Constant Field Values]] ---- === SW_FILE_FULL === static final short **SW_FILE_FULL** Response status : Not enough memory space in the file = 0x6A84 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_FILE_FULL|Constant Field Values]] ---- === SW_LOGICAL_CHANNEL_NOT_SUPPORTED === static final short **SW_LOGICAL_CHANNEL_NOT_SUPPORTED** Response status : Card does not support the operation on the specified logical channel = 0x6881 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_LOGICAL_CHANNEL_NOT_SUPPORTED|Constant Field Values]] ---- === SW_SECURE_MESSAGING_NOT_SUPPORTED === static final short **SW_SECURE_MESSAGING_NOT_SUPPORTED** Response status : Card does not support secure messaging = 0x6882 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_SECURE_MESSAGING_NOT_SUPPORTED|Constant Field Values]] ---- === SW_WARNING_STATE_UNCHANGED === static final short **SW_WARNING_STATE_UNCHANGED** Response status : Warning, card state unchanged = 0x6200 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_WARNING_STATE_UNCHANGED|Constant Field Values]] ---- === SW_LAST_COMMAND_EXPECTED === static final short **SW_LAST_COMMAND_EXPECTED** Response status : Last command in chain expected = 0x6883 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_LAST_COMMAND_EXPECTED|Constant Field Values]] ---- === SW_COMMAND_CHAINING_NOT_SUPPORTED === static final short **SW_COMMAND_CHAINING_NOT_SUPPORTED** Response status : Command chaining not supported = 0x6884 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.SW_COMMAND_CHAINING_NOT_SUPPORTED|Constant Field Values]] ---- === OFFSET_CLA === static final byte **OFFSET_CLA** APDU header offset : CLA = 0 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.OFFSET_CLA|Constant Field Values]] ---- === OFFSET_INS === static final byte **OFFSET_INS** APDU header offset : INS = 1 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.OFFSET_INS|Constant Field Values]] ---- === OFFSET_P1 === static final byte **OFFSET_P1** APDU header offset : P1 = 2 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.OFFSET_P1|Constant Field Values]] ---- === OFFSET_P2 === static final byte **OFFSET_P2** APDU header offset : P2 = 3 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.OFFSET_P2|Constant Field Values]] ---- === OFFSET_LC === static final byte **OFFSET_LC** APDU header offset : LC = 4 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.OFFSET_LC|Constant Field Values]] ---- === OFFSET_CDATA === static final byte **OFFSET_CDATA** APDU command data offset : CDATA = 5 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.OFFSET_CDATA|Constant Field Values]] ---- === OFFSET_EXT_CDATA === static final byte **OFFSET_EXT_CDATA** APDU command data offset with extended length input data : EXT_CDATA = 7 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.OFFSET_EXT_CDATA|Constant Field Values]] ---- === CLA_ISO7816 === static final byte **CLA_ISO7816** APDU command CLA : ISO 7816 = 0x00 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.CLA_ISO7816|Constant Field Values]] ---- === INS_SELECT === static final byte **INS_SELECT** APDU command INS : SELECT = 0xA4 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.INS_SELECT|Constant Field Values]] ---- === INS_EXTERNAL_AUTHENTICATE === static final byte **INS_EXTERNAL_AUTHENTICATE** APDU command INS : EXTERNAL AUTHENTICATE = 0x82 **See Also:**[[javacard:java-card-api:constant-values#javacard.framework.ISO7816.INS_EXTERNAL_AUTHENTICATE|Constant Field Values]]