libosmosim: class_tables: Resolve conflicting CLA=8x INS=F2 definitions

In their infinite wisdom, GlobalPlatform re-defined the CLA 8x / INS F2 command
alreay specified by ETSI TS 102 221.  This wouldn't be as bads if they
had the same "Case".  However, ETSI has case 2 while GP has case 4.

Lucikly, the P1 coding of ETSI [so far] states all the four upper bits
must be 0, while GP always has one of those bits set.

Before this patch, it is possible that a Modem/Phone will send an 8xF2
command and intends it as a GlobalPlatform command (with Lc > 0 and
command data portion), while this code assumes it is an ETSI UICC
command with Lc=0 and hence no command data portion.  This will make
communication break when using simtrace2 'cardem'.

Change-Id: I8dd317ef8f942542e412b18c834a0467c51291c3
Related: SYS#6865
Related: https://lists.osmocom.org/hyperkitty/list/simtrace@lists.osmocom.org/thread/HPRTPGPZITHHASCJISCBAKHGBFZCFANP/
diff --git a/tests/sim/sim_test.c b/tests/sim/sim_test.c
index 2e2eec5..9a52af4 100644
--- a/tests/sim/sim_test.c
+++ b/tests/sim/sim_test.c
@@ -27,6 +27,8 @@
 const uint8_t uicc_tprof_wrong_class[] = { 0x00, 0x10, 0x00, 0x00, 0x02, 0x01, 0x02 };
 const uint8_t uicc_read[] = { 0x00, 0xB0, 0x00, 0x00, 0x10 };
 const uint8_t uicc_upd[] = { 0x00, 0xD6, 0x00, 0x00, 0x02, 0x01, 0x02 };
+const uint8_t uicc_get_status[] = { 0x80, 0xf2, 0x00, 0x02, 0x10 };
+const uint8_t euicc_m2m_get_status[] = { 0x81, 0xf2, 0x40, 0x02, 0x02, 0x4f, 0x00 };
 
 #define APDU_CASE_ASSERT(x, y)				\
 	do {						\
@@ -45,6 +47,8 @@
 	APDU_CASE_ASSERT(uicc_tprof_wrong_class, 0);
 	APDU_CASE_ASSERT(uicc_read, 2);
 	APDU_CASE_ASSERT(uicc_upd, 3);
+	APDU_CASE_ASSERT(uicc_get_status, 2);
+	APDU_CASE_ASSERT(euicc_m2m_get_status, 4);
 }
 
 int main(int argc, char **argv)