Support implicit context tags in ASN.1 fields
authorGreg Hudson <ghudson@mit.edu>
Fri, 6 Jan 2012 21:08:54 +0000 (21:08 +0000)
committerGreg Hudson <ghudson@mit.edu>
Fri, 6 Jan 2012 21:08:54 +0000 (21:08 +0000)
commit0a1bfb5cfc4ebcf879ddc38dbe4b764ab1549c5b
tree7bb1b31094f0b5fe974248e2f4879d1c3b496eb2
parent158156c569e9adee58564d12b436197b4c1307bf
Support implicit context tags in ASN.1 fields

Add a field_info bit (the 32nd bit of the bitfields) indicating whether
the context tag is implicit, and support it in encode_a_field.  Adjust
all field-generating macros and invocations to include the new bit
(always 0 for the moment).

For atype_tagged_thing, narrow the construction field to six bits and
add an implicit bit.  We could remove the construction field if it
weren't for DEFOCTETWRAPPEDTYPE abusing atype_tagged_thing a little
bit, since (normal) explicit tags are always constructed and implicit
tag construction is computed from the base type.

Given how rarely implicit tagging is used, it might be nice to have
separate _IMPLICIT macros rather than an extra argument to every
field.  But we already have separate _OPT macros for optional fields
and FIELDOF_STRING vs. FIELDOF_STRINGL, so we start to get a
combinatoric explosion in the number of macros.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25614 dc483132-0cff-0310-8789-dd5450dbe970
src/lib/krb5/asn.1/asn1_encode.c
src/lib/krb5/asn.1/asn1_encode.h
src/lib/krb5/asn.1/asn1_k_encode.c
src/lib/krb5/asn.1/ldap_key_seq.c