projects
/
proxmark3-svn
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix clang compiler warnings
[proxmark3-svn]
/
client
/
emv
/
tlv.h
diff --git
a/client/emv/tlv.h
b/client/emv/tlv.h
index 3fd3f34776c6154e65afb5679e9576842246b4cc..5b8b68250a84d6a70a7037297aacae838c0932c2 100644
(file)
--- a/
client/emv/tlv.h
+++ b/
client/emv/tlv.h
@@
-31,7
+31,7
@@
struct tlv {
};
struct tlvdb;
};
struct tlvdb;
-typedef bool (*tlv_cb)(void *data, const struct tlv *tlv);
+typedef bool (*tlv_cb)(void *data, const struct tlv *tlv
, int level, bool is_leaf
);
struct tlvdb *tlvdb_fixed(tlv_tag_t tag, size_t len, const unsigned char *value);
struct tlvdb *tlvdb_external(tlv_tag_t tag, size_t len, const unsigned char *value);
struct tlvdb *tlvdb_fixed(tlv_tag_t tag, size_t len, const unsigned char *value);
struct tlvdb *tlvdb_external(tlv_tag_t tag, size_t len, const unsigned char *value);
@@
-39,10
+39,15
@@
struct tlvdb *tlvdb_parse(const unsigned char *buf, size_t len);
struct tlvdb *tlvdb_parse_multi(const unsigned char *buf, size_t len);
void tlvdb_free(struct tlvdb *tlvdb);
struct tlvdb *tlvdb_parse_multi(const unsigned char *buf, size_t len);
void tlvdb_free(struct tlvdb *tlvdb);
+struct tlvdb *tlvdb_find(struct tlvdb *tlvdb, tlv_tag_t tag);
+struct tlvdb *tlvdb_find_next(struct tlvdb *tlvdb, tlv_tag_t tag);
+struct tlvdb *tlvdb_find_path(struct tlvdb *tlvdb, tlv_tag_t tag[]);
+
void tlvdb_add(struct tlvdb *tlvdb, struct tlvdb *other);
void tlvdb_add(struct tlvdb *tlvdb, struct tlvdb *other);
-void tlvdb_visit(const struct tlvdb *tlvdb, tlv_cb cb, void *data);
+void tlvdb_visit(const struct tlvdb *tlvdb, tlv_cb cb, void *data
, int level
);
const struct tlv *tlvdb_get(const struct tlvdb *tlvdb, tlv_tag_t tag, const struct tlv *prev);
const struct tlv *tlvdb_get(const struct tlvdb *tlvdb, tlv_tag_t tag, const struct tlv *prev);
+const struct tlv *tlvdb_get_inchild(const struct tlvdb *tlvdb, tlv_tag_t tag, const struct tlv *prev);
bool tlv_parse_tl(const unsigned char **buf, size_t *len, struct tlv *tlv);
unsigned char *tlv_encode(const struct tlv *tlv, size_t *len);
bool tlv_parse_tl(const unsigned char **buf, size_t *len, struct tlv *tlv);
unsigned char *tlv_encode(const struct tlv *tlv, size_t *len);
Impressum
,
Datenschutz