aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/asn.1/asn1_k_encode.c
diff options
context:
space:
mode:
authorNathaniel McCallum <npmccallum@redhat.com>2013-09-09 14:23:56 -0400
committerGreg Hudson <ghudson@mit.edu>2014-06-02 17:58:26 -0400
commitbb89afd7c59deea855d2818fe36ef7472b4abf2e (patch)
treed5e010a26e547c0fdd45ae3608ac3066bfb15f7f /src/lib/krb5/asn.1/asn1_k_encode.c
parentd0be57ac45ea639baa3cff0dd2108c34e834bfa7 (diff)
downloadkrb5-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.c14
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);