TLV decoding works

This commit is contained in:
merlokk 2017-11-01 13:38:29 +02:00
commit a2bb2735d5
11 changed files with 1121 additions and 2 deletions

31
client/emv/emvcore.c Normal file
View file

@ -0,0 +1,31 @@
//-----------------------------------------------------------------------------
// Copyright (C) 2017 Merlok
//
// This code is licensed to you under the terms of the GNU GPL, version 2 or,
// at your option, any later version. See the LICENSE.txt file for the text of
// the license.
//-----------------------------------------------------------------------------
// EMV core functions
//-----------------------------------------------------------------------------
#include "emvcore.h"
static bool print_cb(void *data, const struct tlv *tlv) {
emv_tag_dump(tlv, stdout);
dump_buffer(tlv->value, tlv->len, stdout);
return true;
}
void TLVPrintFromBuffer(uint8_t *data, int datalen) {
struct tlvdb *t = NULL;
t = tlvdb_parse(data, datalen);
if (t) {
PrintAndLog("TLV decoded:");
tlvdb_visit(t, print_cb, NULL);
tlvdb_free(t);
} else {
PrintAndLog("TLV ERROR: Can't parse response as TLV tree.");
}
}