9.4.1 Responses to commands which are correctly executed
SW1 |
SW2 |
Description |
'90' |
'00' |
? normal ending of the command |
'91' |
'XX' |
? normal ending of the command, with extra information from the proactive SIM containing a command for the ME. Length 'XX' of the response data |
'9E' |
'XX' |
? length 'XX' of the response data given in case of a SIM data download error |
'9F' |
'XX' |
? length 'XX' of the response data |
9.4.2 Responses to commands which are postponed
SW1 |
SW2 |
Error description |
'93' |
'00' |
? SIM Application Toolkit is busy. Command cannot be executed at present, further normal commands are allowed. |
9.4.3 Memory management
SW1 |
SW2 |
Error description |
'92' |
'0X' |
? command successful but after using an internal update retry routine 'X' times |
'92' |
'40' |
? memory problem |
9.4.4 Referencing management
SW1 |
SW2 |
Error description |
'94' |
'00' |
? no EF selected |
'94' |
'02' |
? out of range (invalid address) |
'94' |
'04' |
? file ID not found ? pattern not found |
'94' |
'08' |
? file is inconsistent with the command |
9.4.5 Security management
SW1 |
SW2 |
Error description |
'98' |
'02' |
? no CHV initialized |
'98' |
'04' |
? access condition not fulfilled ? unsuccessful CHV verification, at least one attempt left ? unsuccessful UNBLOCK CHV verification, at least one attempt left ? authentication failed (see note) |
'98' |
'08' |
? in contradiction with CHV status |
'98' |
'10' |
? in contradiction with invalidation status |
'98' |
'40' |
? unsuccessful CHV verification, no attempt left ? unsuccessful UNBLOCK CHV verification, no attempt left ? CHV blocked ? UNBLOCK CHV blocked |
'98' |
'50' |
? increase cannot be performed, Max value reached |
NOTE: A Phase 1 SIM may send this error code after the third consecutive unsuccessful CHV verification attempt or the tenth consecutive unsuccessful unblocking attempt.
9.4.6 Application independent errors
SW1 |
SW2 |
Error description |
'67' |
'XX' |
? incorrect parameter P3 (see note) |
'6B' |
'XX'# |
? incorrect parameter P1 or P2 (see ##) |
'6D' |
'XX'# |
? unknown instruction code given in the command |
'6E' |
'XX'# |
? wrong instruction class given in the command |
'6F' |
'XX'# |
? technical problem with no diagnostic given |
NOTE 1: # These values of 'XX' are specified by ISO/IEC; at present the default value 'XX'='00' is the only one defined. NOTE 2: ## When the error in P1 or P2 is caused by the addressed record being out of range, then the return code '94 02' shall be used. |
NOTE: 'XX' gives the correct length or states that no additional information is given ('XX' = '00').
Table 12 - Coding of SW1-SW2
SW1-SW2 |
Meaning |
Normal processing |
|
'9000' |
No further qualification |
'61XX' |
SW2 indicates the number of response bytes still available (see text below) |
Warning processings |
|
'62XX' |
State of non-volatile memory unchanged (further qualification in SW2, see table 13) |
'63XX' |
State of non-volatile memory changed (further qualification in SW2, see table 14) |
Execution errors |
|
'64XX' |
State of non-volatile memory unchanged (SW2='00', other values are RFU) |
'65XX' |
State of non-volatile memory changed (further qualification in SW2, see table 15) |
'66XX' |
Reserved for security-related issues (not defined in this part of ISO/IEC 7816) |
Checking errors |
|
'6700' |
Wrong length |
'68XX' |
Functions in CLA not supported (further qualification in SW2, see table 16) |
'69XX' |
Command not allowed (further qualification in SW2, see table 17) |
'6AXX' |
Wrong parameter(s) P1-P2 (further qualification in SW2, see table 18) |
'6B00' |
Wrong parameter(s) P1-P2 |
'6CXX' |
Wrong length Le: SW2 indicates the exact length (see text below) |
'6D00' |
Instruction code not supported or invalid |
'6E00' |
Class not supported |
'6F00' |
No precise diagnosis |
Table 13 - Coding of SW2 when SW1='62'
SW2 |
Meaning |
'00' |
No information given |
'81' |
Part of returned data may be corrupted |
'82' |
End of file/record reached before reading Le bytes |
'83' |
Selected file invalidated |
'84' |
FCI not formatted according to 1.1.5 |
Table 14 - Coding of SW2 when SW1='63'
SW2 |
Meaning |
'00' |
No information given |
'81' |
File filled up by the last write |
'CX' |
Counter provided by 'X' (valued from 0 to 15) (exact meaning depending on the command) |
Table 15 - Coding of SW2 when SW1='65'
SW2 |
Meaning |
'00' |
No information given |
'81' |
Memory failure |
Table 16 - Coding of SW2 when SW1='68'
SW2 |
Meaning |
'00' |
No information given |
'81' |
Logical channel not supported |
'82' |
Secure messaging not supported |
Table 17 - Coding of SW2 when SW1='69'
SW2 |
Meaning |
'00' |
No information given |
'81' |
Command incompatible with file structure |
'82' |
Security status not satisfied |
'83' |
Authentication method blocked |
'84' |
Referenced data invalidated |
'85' |
Conditions of use not satisfied |
'86' |
Command not allowed (no current EF) |
'87' |
Expected SM data objects missing |
'88' |
SM data objects incorrect |
Table 18 - Coding of SW2 when SW1='6A'
SW2 |
Meaning |
'00' |
No information given |
'80' |
Incorrect parameters in the data field |
'81' |
Function not supported |
'82' |
File not found |
'83' |
Record not found |
'84' |
Not enough memory space in the file |
'85' |
Lc inconsistent with TLV structure |
'86' |
Incorrect parameters P1-P2 |
'87' |
Lc inconsistent with P1-P2 |
'88' |
Referenced data not found |