FreeCalypso > hg > fc-sim-tools
view libcommon/apducmd.c @ 83:3055d5c9e7a3
fc-simtool update-rec* commands: check curfile_record_len
and error out if it is not set
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 11 Apr 2021 02:38:31 +0000 |
parents | bccf028921bb |
children |
line wrap: on
line source
/* * This module implements a low-level debug command * for users to manually send arbitrary APDUs. */ #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include "simresp.h" cmd_apdu(argc, argv) char **argv; { u_char cmd[260]; int rc; unsigned len; rc = decode_hex_data_from_string(argv[1], cmd, 5, 260); if (rc < 0) return(rc); len = rc; rc = apdu_exchange(cmd, len); if (rc < 0) return(rc); printf("%04X\n", sim_resp_sw); return(0); } cmd_apdu_checksw(argc, argv) char **argv; { u_char cmd[260]; int rc; unsigned len, expect_sw; rc = decode_hex_data_from_string(argv[1], cmd, 5, 260); if (rc < 0) return(rc); len = rc; expect_sw = strtoul(argv[2], 0, 16); rc = apdu_exchange(cmd, len); if (rc < 0) return(rc); if (sim_resp_sw == expect_sw) return(0); else { fprintf(stderr, "SW response mismatch: expected %04X, got %04X\n", expect_sw, sim_resp_sw); return(-1); } }