Пример #1
0
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;
	}
}
Пример #2
0
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);
}
Пример #3
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));
}