Use sc_hex_dump instead of cwa_hexdump.
This commit is contained in:
parent
ac091b7466
commit
741add2588
|
@ -65,39 +65,6 @@ typedef struct cwa_tlv_st {
|
||||||
|
|
||||||
/*********************** utility functions ************************/
|
/*********************** utility functions ************************/
|
||||||
|
|
||||||
/**
|
|
||||||
* Tool for create a string dump of a provided buffer.
|
|
||||||
*
|
|
||||||
* When buffer length is longer than 16384 bytes, output is cut
|
|
||||||
*
|
|
||||||
* @param buff Buffer to be printed
|
|
||||||
* @param len Buffer len
|
|
||||||
* @return a char buffer with data dump in hex+ascii format
|
|
||||||
*/
|
|
||||||
static char *cwa_hexdump(const u8 * buf, size_t len)
|
|
||||||
{
|
|
||||||
size_t j;
|
|
||||||
size_t count = 0;
|
|
||||||
static char res[16384];
|
|
||||||
memset(res, 0, sizeof(res));
|
|
||||||
len = MIN(len, sizeof(res));
|
|
||||||
for (count = 0; count < len; count += 16) {
|
|
||||||
size_t nitems = MIN(16, len - count);
|
|
||||||
for (j = 0; j < nitems; j++)
|
|
||||||
sprintf(res, "%s%02X ", res, 0xff & *(buf + count + j));
|
|
||||||
for (; j < 16; j++)
|
|
||||||
sprintf(res, "%s ", res);
|
|
||||||
for (j = 0; j < nitems; j++) {
|
|
||||||
char c = (char)*(buf + count + j);
|
|
||||||
sprintf(res, "%s%c", res, (isprint(c) ? c : '.'));
|
|
||||||
}
|
|
||||||
for (; j < 16; j++)
|
|
||||||
sprintf(res, "%s ", res);
|
|
||||||
sprintf(res, "%s\n", res);
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump an APDU before SM translation.
|
* Dump an APDU before SM translation.
|
||||||
*
|
*
|
||||||
|
@ -111,14 +78,12 @@ static char *cwa_hexdump(const u8 * buf, size_t len)
|
||||||
*/
|
*/
|
||||||
static void cwa_trace_apdu(sc_card_t * card, sc_apdu_t * apdu, int flag)
|
static void cwa_trace_apdu(sc_card_t * card, sc_apdu_t * apdu, int flag)
|
||||||
{
|
{
|
||||||
char *buf = NULL;
|
char buf[2048];
|
||||||
/* set to 0 in production */
|
if (!card || !card->ctx || !apdu || card->ctx->debug < SC_LOG_DEBUG_NORMAL)
|
||||||
#if 1
|
|
||||||
if (!card || !card->ctx || !apdu)
|
|
||||||
return;
|
return;
|
||||||
if (flag == 0) { /* apdu command */
|
if (flag == 0) { /* apdu command */
|
||||||
if (apdu->datalen > 0) { /* apdu data to show */
|
if (apdu->datalen > 0) { /* apdu data to show */
|
||||||
buf = cwa_hexdump(apdu->data, apdu->datalen);
|
sc_hex_dump(card->ctx, SC_LOG_DEBUG_NORMAL, apdu->data, apdu->datalen, buf, sizeof(buf));
|
||||||
sc_log(card->ctx,
|
sc_log(card->ctx,
|
||||||
"\nAPDU before encode: ==================================================\nCLA: %02X INS: %02X P1: %02X P2: %02X Lc: %02"SC_FORMAT_LEN_SIZE_T"X Le: %02"SC_FORMAT_LEN_SIZE_T"X DATA: [%5"SC_FORMAT_LEN_SIZE_T"u bytes]\n%s======================================================================\n",
|
"\nAPDU before encode: ==================================================\nCLA: %02X INS: %02X P1: %02X P2: %02X Lc: %02"SC_FORMAT_LEN_SIZE_T"X Le: %02"SC_FORMAT_LEN_SIZE_T"X DATA: [%5"SC_FORMAT_LEN_SIZE_T"u bytes]\n%s======================================================================\n",
|
||||||
apdu->cla, apdu->ins, apdu->p1, apdu->p2,
|
apdu->cla, apdu->ins, apdu->p1, apdu->p2,
|
||||||
|
@ -130,13 +95,11 @@ static void cwa_trace_apdu(sc_card_t * card, sc_apdu_t * apdu, int flag)
|
||||||
apdu->lc, apdu->le);
|
apdu->lc, apdu->le);
|
||||||
}
|
}
|
||||||
} else { /* apdu response */
|
} else { /* apdu response */
|
||||||
buf = cwa_hexdump(apdu->resp, apdu->resplen);
|
sc_hex_dump(card->ctx, SC_LOG_DEBUG_NORMAL, apdu->resp, apdu->resplen, buf, sizeof(buf));
|
||||||
sc_log(card->ctx,
|
sc_log(card->ctx,
|
||||||
"\nAPDU response after decode: ==========================================\nSW1: %02X SW2: %02X RESP: [%5"SC_FORMAT_LEN_SIZE_T"u bytes]\n%s======================================================================\n",
|
"\nAPDU response after decode: ==========================================\nSW1: %02X SW2: %02X RESP: [%5"SC_FORMAT_LEN_SIZE_T"u bytes]\n%s======================================================================\n",
|
||||||
apdu->sw1, apdu->sw2, apdu->resplen, buf);
|
apdu->sw1, apdu->sw2, apdu->resplen, buf);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue