FreeCalypso > hg > freecalypso-hwlab
view simtool/apdu.c @ 124:6c4567dd8946
fc-simtool: add non-interactive one-shot command (or script) mode
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 28 Jan 2021 18:56:34 +0000 |
parents | b57cf64ece29 |
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); }