aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1fix
diff options
context:
space:
mode:
Diffstat (limited to 'libasn1fix')
-rw-r--r--libasn1fix/asn1fix_tags.c2
-rw-r--r--libasn1fix/asn1fix_tags.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/libasn1fix/asn1fix_tags.c b/libasn1fix/asn1fix_tags.c
index 6d887980..ed08513b 100644
--- a/libasn1fix/asn1fix_tags.c
+++ b/libasn1fix/asn1fix_tags.c
@@ -2,7 +2,7 @@
#define ADD_TAG(skip, newtag) do { \
void *__p; \
- if(skip) { \
+ if(skip && !(flags & AFT_FULL_COLLECT)) { \
if(newtag.tag_mode != TM_IMPLICIT) \
skip--; \
break; \
diff --git a/libasn1fix/asn1fix_tags.h b/libasn1fix/asn1fix_tags.h
index 394c3e84..a4c31ad9 100644
--- a/libasn1fix/asn1fix_tags.h
+++ b/libasn1fix/asn1fix_tags.h
@@ -4,6 +4,7 @@
enum asn1f_aft_flags_e {
AFT_IMAGINARY_ANY = 0x01, /* Treat ANY tag as [IMAGINARY ANY] */
AFT_FETCH_OUTMOST = 0x02, /* Fetch only outmost tag */
+ AFT_FULL_COLLECT = 0x04, /* Collect all tags */
};
/*