]> cvs.zerfleddert.de Git - proxmark3-svn/blobdiff - client/emv/emvcore.c
TLV decoding works
[proxmark3-svn] / client / emv / emvcore.c
diff --git a/client/emv/emvcore.c b/client/emv/emvcore.c
new file mode 100644 (file)
index 0000000..6f8892f
--- /dev/null
@@ -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.");
+       }
+}
Impressum, Datenschutz