Data-driven ASN.1 decoder
authorGreg Hudson <ghudson@mit.edu>
Sat, 11 Feb 2012 23:25:25 +0000 (23:25 +0000)
committerGreg Hudson <ghudson@mit.edu>
Sat, 11 Feb 2012 23:25:25 +0000 (23:25 +0000)
commit9f23e1a8133c11bff4ef5f41cb44d28041320a76
tree0117414b7f978bf5e03a65f8886af9ccbc5e3b66
parent0af4df0af5fb856419681e8d259a5229c59e361f
Data-driven ASN.1 decoder

Add a general ASN.1 decoder implementation in asn1_encode.c using the
same data structures as the encoder (augmented where necessary), and
use it to define decoder functions in asn1_k_encode.c.  Add a boolean
type to atype_info, as it is needed for the pa_pac_req decoder.  For
the moment, just #if out the old decoder functions; they and their
support code can be cleaned up later after a a few remaining utility
functions are addressed.

Changes to encoder and decoder interfaces are minimized, but there are
two small ones.  ldap_seqof_key_data has a kvno field added, and some
of the decoder logic is pushed up into the caller.  The safe_with_body
decoder now outputs an allocated krb5_data * instead of a krb5_data
with aliases into the input buffer.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25693 dc483132-0cff-0310-8789-dd5450dbe970
12 files changed:
src/include/k5-int.h
src/lib/krb5/asn.1/asn1_encode.c
src/lib/krb5/asn.1/asn1_encode.h
src/lib/krb5/asn.1/asn1_get.h
src/lib/krb5/asn.1/asn1_k_encode.c
src/lib/krb5/asn.1/krb5_decode.c
src/lib/krb5/asn.1/krb5_decode_kdc.c
src/lib/krb5/asn.1/ldap_key_seq.c
src/lib/krb5/krb/rd_safe.c
src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c
src/tests/asn.1/ktest.c
src/tests/asn.1/ktest_equal.c