void sap_transfer_apdu_req(void *sap_device, struct sap_parameter *param) { char apdu[] = "APDU response!"; DBG("status: %d", sim_card_conn_status); switch (sim_card_conn_status) { case SIM_MISSING: sap_transfer_apdu_rsp(sap_device, SAP_RESULT_ERROR_CARD_REMOVED, NULL, 0); break; case SIM_POWERED_OFF: sap_transfer_apdu_rsp(sap_device, SAP_RESULT_ERROR_POWERED_OFF, NULL, 0); break; case SIM_DISCONNECTED: sap_transfer_apdu_rsp(sap_device, SAP_RESULT_ERROR_NOT_ACCESSIBLE, NULL, 0); break; case SIM_CONNECTED: sap_transfer_apdu_rsp(sap_device, SAP_RESULT_OK, (uint8_t *)apdu, sizeof(apdu)); break; } }
void sap_transfer_apdu_req(void *sap_device, struct sap_parameter *param) { uint8_t result; DBG_VERBOSE("sap_device %p param %p", sap_device, param); if (u8500.state != STE_ENABLED) { result = get_sap_result(STE_SEND_APDU_MSG, STE_STATUS_FAILURE); sap_transfer_apdu_rsp(sap_device, result, NULL, 0); return; } if (send_request(u8500.io, STE_SEND_APDU_REQ, param) < 0) sap_transfer_apdu_rsp(sap_device, SAP_RESULT_ERROR_NO_DATA, NULL, 0); }
void sap_transfer_apdu_req(void *sap_device, struct sap_parameter *param) { char apdu[] = "APDU response!"; DBG("status: %d", sim_card_conn_status); if (sim_card_conn_status == SIM_MISSING) sap_transfer_apdu_rsp(sap_device, SAP_RESULT_ERROR_CARD_REMOVED, NULL, 0); else if (sim_card_conn_status == SIM_POWERED_OFF) sap_transfer_apdu_rsp(sap_device, SAP_RESULT_ERROR_POWERED_OFF, NULL, 0); else if (sim_card_conn_status != SIM_CONNECTED) sap_transfer_apdu_rsp(sap_device, SAP_RESULT_ERROR_NOT_ACCESSIBLE, NULL, 0); else sap_transfer_apdu_rsp(sap_device, SAP_RESULT_OK, (uint8_t *)&apdu, sizeof(apdu)); }