FreeCalypso > hg > fc-sim-tools
view libcommon/apducmd.c @ 86:de23872796cb
fc-uicc-tool: update-rec-imm and update-rec-fill ported over from fc-simtool
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 11 Apr 2021 03:19:22 +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); } }