FreeCalypso > hg > freecalypso-hwlab
view uicc/apdu.c @ 176:fb2f6497ba53 default tip
doc/Linux-DTR-RTS-flaw: point to new location of this article
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 11 Dec 2023 19:37:20 +0000 |
parents | f691a19f191d |
children |
line wrap: on
line source
#include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <pcsclite.h> #include <winscard.h> #include "globals.h" apdu_exchange(cmd_apdu, cmd_apdu_len) u_char *cmd_apdu; unsigned cmd_apdu_len; { LONG rv; DWORD dwRecvLength; u_char *sw; dwRecvLength = 258; rv = SCardTransmit(hCard, SCARD_PCI_T0, cmd_apdu, cmd_apdu_len, NULL, sim_resp_data, &dwRecvLength); if (rv != SCARD_S_SUCCESS) { fprintf(stderr, "SCardTransmit: %s\n", pcsc_stringify_error(rv)); return(-1); } if (dwRecvLength < 2) { fprintf(stderr, "error: SCardTransmit response is shorter than 2 SW bytes\n"); return(-1); } sim_resp_data_len = dwRecvLength - 2; sw = sim_resp_data + sim_resp_data_len; sim_resp_sw = (sw[0] << 8) | sw[1]; return(0); }