Add: Emv first part of commands

* hf emv search
* hf emv pse
* hf emv select
* hf emv exec command - only part of functionality
This commit is contained in:
Oleg Moiseenko 2017-11-22 07:16:33 +02:00 committed by pwpiwi
commit 3c5fce2ba7
18 changed files with 1370 additions and 19 deletions

View file

@ -154,6 +154,28 @@ char *sprint_hex(const uint8_t *data, const size_t len) {
return buf;
}
char *sprint_hex_inrow_ex(const uint8_t *data, const size_t len, const size_t min_str_len) {
int maxLen = ( len > 1024/2) ? 1024/2 : len;
static char buf[1024] = {0};
char *tmp = buf;
size_t i;
for (i = 0; i < maxLen; ++i, tmp += 2)
sprintf(tmp, "%02x", (unsigned int) data[i]);
i *= 2;
int minStrLen = min_str_len > i ? min_str_len : 0;
for(; i < minStrLen; i++, tmp += 1)
sprintf(tmp, " ");
return buf;
}
char *sprint_hex_inrow(const uint8_t *data, const size_t len) {
return sprint_hex_inrow_ex(data, len, 0);
}
char *sprint_bin_break(const uint8_t *data, const size_t len, const uint8_t breaks) {
// make sure we don't go beyond our char array memory
int max_len;
@ -210,7 +232,7 @@ char *sprint_hex_ascii(const uint8_t *data, const size_t len) {
return buf;
}
char *sprint_ascii(const uint8_t *data, const size_t len) {
char *sprint_ascii_ex(const uint8_t *data, const size_t len, const size_t min_str_len) {
static char buf[1024];
char *tmp = buf;
memset(buf, 0x00, 1024);
@ -221,9 +243,18 @@ char *sprint_ascii(const uint8_t *data, const size_t len) {
tmp[i] = ((c < 32) || (c == 127)) ? '.' : c;
++i;
}
int minStrLen = min_str_len > i ? min_str_len : 0;
for(; i < minStrLen; ++i)
tmp[i] = ' ';
return buf;
}
char *sprint_ascii(const uint8_t *data, const size_t len) {
return sprint_ascii_ex(data, len, 0);
}
void num_to_bytes(uint64_t n, size_t len, uint8_t* dest)
{
while (len--) {
@ -498,8 +529,10 @@ int param_gethex_to_eol(const char *line, int paramnum, uint8_t * data, int maxd
int indx = bg;
while (line[indx]) {
if (line[indx] == '\t' || line[indx] == ' ')
if (line[indx] == '\t' || line[indx] == ' ') {
indx++;
continue;
}
if (isxdigit(line[indx])) {
buf[strlen(buf) + 1] = 0x00;