diff options
Diffstat (limited to 'libasn1fix')
-rw-r--r-- | libasn1fix/asn1fix_tags.c | 2 | ||||
-rw-r--r-- | libasn1fix/asn1fix_tags.h | 1 |
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 */ }; /* |