[S] Change in osmo-ttcn3-hacks[master]: CCID: Check if reader times out while expecting procedure byte
jolly has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42798?usp=email ) Change subject: CCID: Check if reader times out while expecting procedure byte ...................................................................... CCID: Check if reader times out while expecting procedure byte A case 3 APDU is sent toward the reader. The reader expects a procedure byte or a status word. If none of these are sent by the SIM the reader must timeout and send an error message back to the host. Change-Id: Iacd6aacaf8220e69b9b7038e354d54c788d1eb05 --- M ccid/CCID_Tests.ttcn 1 file changed, 49 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/98/42798/1 diff --git a/ccid/CCID_Tests.ttcn b/ccid/CCID_Tests.ttcn index 1ac1351..d88b103 100644 --- a/ccid/CCID_Tests.ttcn +++ b/ccid/CCID_Tests.ttcn @@ -874,6 +874,54 @@ f_start_and_wait(); } +/* The SIM does not send the expected procedure byte. */ +private function f_TC_procedure_byte_timeout() runs on CardemSlot_CT +{ + var octetstring req := c_SIM_READ_BINARY; + var CCID_PDU ccid_pdu; + + f_cardem_manager(); + + f_ccid_power_on(CCID_PWRSEL_3V0); + + /* Send a request towards reader. */ + CCID.send(ts_CCID_XfrBlock(g_slot_nr, req, 0)); + /* Receive the request by SIM. */ + f_cardem_receive(tr_SIMTRACE_CEMU_RX_DATA(?, req)); + /* Transmit procedure byte from SIM. */ + f_cardem_transmit(ts_SIMTRACE_CEMU_TX_DATA(ts_CardEmu_DataFlags(pb_and_tx := true, final := true), + '60'O)); + /* Eat the possible 'Time Extension status' */ + timer T := 0.2; + T.start; + alt { + [] CCID.receive(tr_CCID_DataBlock(g_slot_nr, ?, tr_CCID_HeaderIN(?, CCID_CMD_STATUS_TIME_EXT, ?), ?)) { + log("Eating 'Time Extension status'."); + repeat; + } + [] as_ccid_any(); + [] T.timeout { } + } + /* Receive the response from reader. */ + ccid_pdu := f_ccid_receive(tr_CCID_DataBlock(g_slot_nr, ?, ?, ?)); + if (ccid_pdu.hdr_in.bError != CCID_ERR_ICC_MUTE) { + setverdict(fail, "Unexpected Response or error code"); + mtc.stop; + } + + /* Stop simtrace emulation, to prevent race condition. */ + vc_Cardem.stop; + vc_Cardem.done; +} +testcase TC_procedure_byte_timeout() runs on Test_CT +{ + f_init(); + + f_start_handler(refers(f_TC_procedure_byte_timeout), mp_simtrace_slot, true); + + f_start_and_wait(); +} + /* TODO */ /* IccPowerOn with wrong voltage (> 0x04) */ @@ -920,6 +968,7 @@ execute( TC_truncated_response() ); execute( TC_wrong_procedure_byte() ); execute( TC_unexpected_procedure_byte() ); + execute( TC_procedure_byte_timeout() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/42798?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: Iacd6aacaf8220e69b9b7038e354d54c788d1eb05 Gerrit-Change-Number: 42798 Gerrit-PatchSet: 1 Gerrit-Owner: jolly <andreas@eversberg.eu>
participants (1)
-
jolly