diff options
author | Nathaniel McCallum <npmccallum@redhat.com> | 2013-09-09 14:23:56 -0400 |
---|---|---|
committer | Greg Hudson <ghudson@mit.edu> | 2014-06-02 17:58:26 -0400 |
commit | bb89afd7c59deea855d2818fe36ef7472b4abf2e (patch) | |
tree | d5e010a26e547c0fdd45ae3608ac3066bfb15f7f /src/lib/krb5/asn.1/asn1_k_encode.c | |
parent | d0be57ac45ea639baa3cff0dd2108c34e834bfa7 (diff) | |
download | krb5-bb89afd7c59deea855d2818fe36ef7472b4abf2e.zip krb5-bb89afd7c59deea855d2818fe36ef7472b4abf2e.tar.gz krb5-bb89afd7c59deea855d2818fe36ef7472b4abf2e.tar.bz2 |
Add ASN.1 codec for KKDCP's KDC-PROXY-MESSAGE
Handle encoding and decoding [MS-KKDCP] proxy messages, including
handling of the additional length bytes. Early versions of [MS-KKDCP]
incorrectly omit that the size of the proxied message is prepended to
the proxied message, as it is when we're using plain TCP, before
encoding the proxy-message structure. This is fixed at least as of
version 2.1 of the spec.
[nalin@redhat.com: add tests]
ticket: 7929
Diffstat (limited to 'src/lib/krb5/asn.1/asn1_k_encode.c')
-rw-r--r-- | src/lib/krb5/asn.1/asn1_k_encode.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/krb5/asn.1/asn1_k_encode.c b/src/lib/krb5/asn.1/asn1_k_encode.c index 7b9179d..4dc49c2 100644 --- a/src/lib/krb5/asn.1/asn1_k_encode.c +++ b/src/lib/krb5/asn.1/asn1_k_encode.c @@ -1711,3 +1711,17 @@ static const struct atype_info *pa_otp_enc_req_fields[] = { }; DEFSEQTYPE(pa_otp_enc_req, krb5_data, pa_otp_enc_req_fields); MAKE_CODEC(krb5_pa_otp_enc_req, pa_otp_enc_req); + +DEFFIELD(kkdcp_message_0, krb5_kkdcp_message, + kerb_message, 0, ostring_data); +DEFFIELD(kkdcp_message_1, krb5_kkdcp_message, + target_domain, 1, opt_gstring_data); +DEFFIELD(kkdcp_message_2, krb5_kkdcp_message, + dclocator_hint, 2, opt_int32); +static const struct atype_info *kkdcp_message_fields[] = { + &k5_atype_kkdcp_message_0, &k5_atype_kkdcp_message_1, + &k5_atype_kkdcp_message_2 +}; +DEFSEQTYPE(kkdcp_message, krb5_kkdcp_message, + kkdcp_message_fields); +MAKE_CODEC(krb5_kkdcp_message, kkdcp_message); |