aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-kerberos.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-kerberos.c')
-rw-r--r--epan/dissectors/packet-kerberos.c2151
1 files changed, 1294 insertions, 857 deletions
diff --git a/epan/dissectors/packet-kerberos.c b/epan/dissectors/packet-kerberos.c
index 0ac5551ba4..7744154ca5 100644
--- a/epan/dissectors/packet-kerberos.c
+++ b/epan/dissectors/packet-kerberos.c
@@ -1,11 +1,8 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-kerberos.c */
-/* asn2wrs.py -b -p kerberos -c ./kerberos.cnf -s ./packet-kerberos-template -D . -O ../.. KerberosV5Spec2.asn k5.asn RFC3244.asn RFC6113.asn SPAKE.asn */
+/* asn2wrs.py -b -L -p kerberos -c ./kerberos.cnf -s ./packet-kerberos-template -D . -O ../.. KerberosV5Spec2.asn k5.asn RFC3244.asn RFC6113.asn SPAKE.asn */
-/* Input file: packet-kerberos-template.c */
-
-#line 1 "./asn1/kerberos/packet-kerberos-template.c"
/* packet-kerberos.c
* Routines for Kerberos
* Wes Hardaker (c) 2000
@@ -23,11 +20,11 @@
*
* and
*
- * https://tools.ietf.org/html/draft-ietf-krb-wg-kerberos-clarifications-07
+ * https://tools.ietf.org/html/rfc4120
*
* and
*
- * https://tools.ietf.org/html/draft-ietf-krb-wg-kerberos-referrals-05
+ * https://tools.ietf.org/html/rfc6806
*
* Some structures from RFC2630
*
@@ -144,6 +141,11 @@ typedef struct {
wmem_list_t *learnt_keys;
wmem_list_t *missing_keys;
guint32 within_PA_TGS_REQ;
+ struct _kerberos_PA_FX_FAST_REQUEST {
+ gboolean defer;
+ tvbuff_t *tvb;
+ proto_tree *tree;
+ } PA_FX_FAST_REQUEST;
#ifdef HAVE_KERBEROS
enc_key_t *PA_TGS_REQ_key;
enc_key_t *PA_TGS_REQ_subkey;
@@ -158,506 +160,519 @@ typedef struct {
#endif
} kerberos_private_data_t;
+static dissector_handle_t kerberos_handle_tcp;
static dissector_handle_t kerberos_handle_udp;
/* Forward declarations */
-static int dissect_kerberos_Applications(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_AuthorizationData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_ENC_TIMESTAMP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_Applications(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_AuthorizationData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_ENC_TIMESTAMP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#ifdef HAVE_KERBEROS
-static int dissect_kerberos_PA_ENC_TS_ENC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_ENC_TS_ENC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#endif
-static int dissect_kerberos_PA_PAC_REQUEST(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_S4U2Self(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_S4U_X509_USER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_ETYPE_INFO(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_ETYPE_INFO2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_AD_IF_RELEVANT(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_AUTHENTICATION_SET_ELEM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_FX_FAST_REQUEST(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_EncryptedChallenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_KERB_KEY_LIST_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_KERB_KEY_LIST_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_FX_FAST_REPLY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_PAC_OPTIONS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_KERB_AD_RESTRICTION_ENTRY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_SEQUENCE_OF_ENCTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_PA_SPAKE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_PAC_REQUEST(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_S4U2Self(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_S4U_X509_USER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_ETYPE_INFO(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_ETYPE_INFO2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_AD_IF_RELEVANT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_AUTHENTICATION_SET_ELEM(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_EncryptedChallenge(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_KERB_KEY_LIST_REQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_KERB_KEY_LIST_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_FX_FAST_REPLY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_PAC_OPTIONS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KERB_AD_RESTRICTION_ENTRY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_SEQUENCE_OF_ENCTYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_PA_SPAKE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#ifdef HAVE_KERBEROS
-static int dissect_kerberos_KrbFastReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_KrbFastResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
-static int dissect_kerberos_FastOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KrbFastReq(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_KrbFastResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
+static int dissect_kerberos_FastOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_);
#endif
/* Desegment Kerberos over TCP messages */
static gboolean krb_desegment = TRUE;
-static gint proto_kerberos = -1;
-
-static gint hf_krb_rm_reserved = -1;
-static gint hf_krb_rm_reclen = -1;
-static gint hf_krb_provsrv_location = -1;
-static gint hf_krb_pw_salt = -1;
-static gint hf_krb_ext_error_nt_status = -1;
-static gint hf_krb_ext_error_reserved = -1;
-static gint hf_krb_ext_error_flags = -1;
-static gint hf_krb_address_ip = -1;
-static gint hf_krb_address_netbios = -1;
-static gint hf_krb_address_ipv6 = -1;
-static gint hf_krb_gssapi_len = -1;
-static gint hf_krb_gssapi_bnd = -1;
-static gint hf_krb_gssapi_dlgopt = -1;
-static gint hf_krb_gssapi_dlglen = -1;
-static gint hf_krb_gssapi_c_flag_deleg = -1;
-static gint hf_krb_gssapi_c_flag_mutual = -1;
-static gint hf_krb_gssapi_c_flag_replay = -1;
-static gint hf_krb_gssapi_c_flag_sequence = -1;
-static gint hf_krb_gssapi_c_flag_conf = -1;
-static gint hf_krb_gssapi_c_flag_integ = -1;
-static gint hf_krb_gssapi_c_flag_dce_style = -1;
-static gint hf_krb_midl_version = -1;
-static gint hf_krb_midl_hdr_len = -1;
-static gint hf_krb_midl_fill_bytes = -1;
-static gint hf_krb_midl_blob_len = -1;
-static gint hf_krb_pac_signature_type = -1;
-static gint hf_krb_pac_signature_signature = -1;
-static gint hf_krb_w2k_pac_entries = -1;
-static gint hf_krb_w2k_pac_version = -1;
-static gint hf_krb_w2k_pac_type = -1;
-static gint hf_krb_w2k_pac_size = -1;
-static gint hf_krb_w2k_pac_offset = -1;
-static gint hf_krb_pac_clientid = -1;
-static gint hf_krb_pac_namelen = -1;
-static gint hf_krb_pac_clientname = -1;
-static gint hf_krb_pac_logon_info = -1;
-static gint hf_krb_pac_credential_data = -1;
-static gint hf_krb_pac_credential_info = -1;
-static gint hf_krb_pac_credential_info_version = -1;
-static gint hf_krb_pac_credential_info_etype = -1;
-static gint hf_krb_pac_s4u_delegation_info = -1;
-static gint hf_krb_pac_upn_dns_info = -1;
-static gint hf_krb_pac_upn_flags = -1;
-static gint hf_krb_pac_upn_dns_offset = -1;
-static gint hf_krb_pac_upn_dns_len = -1;
-static gint hf_krb_pac_upn_upn_offset = -1;
-static gint hf_krb_pac_upn_upn_len = -1;
-static gint hf_krb_pac_upn_upn_name = -1;
-static gint hf_krb_pac_upn_dns_name = -1;
-static gint hf_krb_pac_server_checksum = -1;
-static gint hf_krb_pac_privsvr_checksum = -1;
-static gint hf_krb_pac_client_info_type = -1;
-static gint hf_krb_pac_client_claims_info = -1;
-static gint hf_krb_pac_device_info = -1;
-static gint hf_krb_pac_device_claims_info = -1;
-static gint hf_krb_pac_ticket_checksum = -1;
-static gint hf_krb_pa_supported_enctypes = -1;
-static gint hf_krb_pa_supported_enctypes_des_cbc_crc = -1;
-static gint hf_krb_pa_supported_enctypes_des_cbc_md5 = -1;
-static gint hf_krb_pa_supported_enctypes_rc4_hmac = -1;
-static gint hf_krb_pa_supported_enctypes_aes128_cts_hmac_sha1_96 = -1;
-static gint hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96 = -1;
-static gint hf_krb_pa_supported_enctypes_fast_supported = -1;
-static gint hf_krb_pa_supported_enctypes_compound_identity_supported = -1;
-static gint hf_krb_pa_supported_enctypes_claims_supported = -1;
-static gint hf_krb_pa_supported_enctypes_resource_sid_compression_disabled = -1;
-static gint hf_krb_ad_ap_options = -1;
-static gint hf_krb_ad_ap_options_cbt = -1;
-static gint hf_krb_ad_target_principal = -1;
-static gint hf_krb_key_hidden_item = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_MessageType = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_Flags = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_ServiceTicketLength = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicketLength = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_ServiceTicket = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicket = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_FLAG_ALLOW_EXPIRED_TICKET = -1;
-static gint hf_kerberos_KERB_TICKET_LOGON_FLAG_REDIRECTED = -1;
+static gint proto_kerberos;
+
+static gint hf_krb_rm_reserved;
+static gint hf_krb_rm_reclen;
+static gint hf_krb_provsrv_location;
+static gint hf_krb_pw_salt;
+static gint hf_krb_ext_error_nt_status;
+static gint hf_krb_ext_error_reserved;
+static gint hf_krb_ext_error_flags;
+static gint hf_krb_address_ip;
+static gint hf_krb_address_netbios;
+static gint hf_krb_address_ipv6;
+static gint hf_krb_gssapi_len;
+static gint hf_krb_gssapi_bnd;
+static gint hf_krb_gssapi_dlgopt;
+static gint hf_krb_gssapi_dlglen;
+static gint hf_krb_gssapi_c_flag_deleg;
+static gint hf_krb_gssapi_c_flag_mutual;
+static gint hf_krb_gssapi_c_flag_replay;
+static gint hf_krb_gssapi_c_flag_sequence;
+static gint hf_krb_gssapi_c_flag_conf;
+static gint hf_krb_gssapi_c_flag_integ;
+static gint hf_krb_gssapi_c_flag_dce_style;
+static gint hf_krb_midl_version;
+static gint hf_krb_midl_hdr_len;
+static gint hf_krb_midl_fill_bytes;
+static gint hf_krb_midl_blob_len;
+static gint hf_krb_pac_signature_type;
+static gint hf_krb_pac_signature_signature;
+static gint hf_krb_w2k_pac_entries;
+static gint hf_krb_w2k_pac_version;
+static gint hf_krb_w2k_pac_type;
+static gint hf_krb_w2k_pac_size;
+static gint hf_krb_w2k_pac_offset;
+static gint hf_krb_pac_clientid;
+static gint hf_krb_pac_namelen;
+static gint hf_krb_pac_clientname;
+static gint hf_krb_pac_logon_info;
+static gint hf_krb_pac_credential_data;
+static gint hf_krb_pac_credential_info;
+static gint hf_krb_pac_credential_info_version;
+static gint hf_krb_pac_credential_info_etype;
+static gint hf_krb_pac_s4u_delegation_info;
+static gint hf_krb_pac_upn_dns_info;
+static gint hf_krb_pac_upn_flags;
+static gint hf_krb_pac_upn_flag_upn_constructed;
+static gint hf_krb_pac_upn_flag_has_sam_name_and_sid;
+static gint hf_krb_pac_upn_upn_offset;
+static gint hf_krb_pac_upn_upn_len;
+static gint hf_krb_pac_upn_upn_name;
+static gint hf_krb_pac_upn_dns_offset;
+static gint hf_krb_pac_upn_dns_len;
+static gint hf_krb_pac_upn_dns_name;
+static gint hf_krb_pac_upn_samaccountname_offset;
+static gint hf_krb_pac_upn_samaccountname_len;
+static gint hf_krb_pac_upn_samaccountname;
+static gint hf_krb_pac_upn_objectsid_offset;
+static gint hf_krb_pac_upn_objectsid_len;
+static gint hf_krb_pac_server_checksum;
+static gint hf_krb_pac_privsvr_checksum;
+static gint hf_krb_pac_client_info_type;
+static gint hf_krb_pac_client_claims_info;
+static gint hf_krb_pac_device_info;
+static gint hf_krb_pac_device_claims_info;
+static gint hf_krb_pac_ticket_checksum;
+static gint hf_krb_pac_attributes_info;
+static gint hf_krb_pac_attributes_info_length;
+static gint hf_krb_pac_attributes_info_flags;
+static gint hf_krb_pac_attributes_info_flags_pac_was_requested;
+static gint hf_krb_pac_attributes_info_flags_pac_was_given_implicitly;
+static gint hf_krb_pac_requester_sid;
+static gint hf_krb_pac_full_checksum;
+static gint hf_krb_pa_supported_enctypes;
+static gint hf_krb_pa_supported_enctypes_des_cbc_crc;
+static gint hf_krb_pa_supported_enctypes_des_cbc_md5;
+static gint hf_krb_pa_supported_enctypes_rc4_hmac;
+static gint hf_krb_pa_supported_enctypes_aes128_cts_hmac_sha1_96;
+static gint hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96;
+static gint hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96_sk;
+static gint hf_krb_pa_supported_enctypes_fast_supported;
+static gint hf_krb_pa_supported_enctypes_compound_identity_supported;
+static gint hf_krb_pa_supported_enctypes_claims_supported;
+static gint hf_krb_pa_supported_enctypes_resource_sid_compression_disabled;
+static gint hf_krb_ad_ap_options;
+static gint hf_krb_ad_ap_options_cbt;
+static gint hf_krb_ad_ap_options_unverified_target_name;
+static gint hf_krb_ad_target_principal;
+static gint hf_krb_key_hidden_item;
+static gint hf_kerberos_KERB_TICKET_LOGON;
+static gint hf_kerberos_KERB_TICKET_LOGON_MessageType;
+static gint hf_kerberos_KERB_TICKET_LOGON_Flags;
+static gint hf_kerberos_KERB_TICKET_LOGON_ServiceTicketLength;
+static gint hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicketLength;
+static gint hf_kerberos_KERB_TICKET_LOGON_ServiceTicket;
+static gint hf_kerberos_KERB_TICKET_LOGON_TicketGrantingTicket;
+static gint hf_kerberos_KERB_TICKET_LOGON_FLAG_ALLOW_EXPIRED_TICKET;
+static gint hf_kerberos_KERB_TICKET_LOGON_FLAG_REDIRECTED;
#ifdef HAVE_KERBEROS
-static gint hf_kerberos_KrbFastResponse = -1;
-static gint hf_kerberos_strengthen_key = -1;
-static gint hf_kerberos_finished = -1;
-static gint hf_kerberos_fast_options = -1;
-static gint hf_kerberos_ticket_checksum = -1;
-static gint hf_krb_patimestamp = -1;
-static gint hf_krb_pausec = -1;
-static gint hf_kerberos_FastOptions_reserved = -1;
-static gint hf_kerberos_FastOptions_hide_client_names = -1;
-static gint hf_kerberos_FastOptions_spare_bit2 = -1;
-static gint hf_kerberos_FastOptions_spare_bit3 = -1;
-static gint hf_kerberos_FastOptions_spare_bit4 = -1;
-static gint hf_kerberos_FastOptions_spare_bit5 = -1;
-static gint hf_kerberos_FastOptions_spare_bit6 = -1;
-static gint hf_kerberos_FastOptions_spare_bit7 = -1;
-static gint hf_kerberos_FastOptions_spare_bit8 = -1;
-static gint hf_kerberos_FastOptions_spare_bit9 = -1;
-static gint hf_kerberos_FastOptions_spare_bit10 = -1;
-static gint hf_kerberos_FastOptions_spare_bit11 = -1;
-static gint hf_kerberos_FastOptions_spare_bit12 = -1;
-static gint hf_kerberos_FastOptions_spare_bit13 = -1;
-static gint hf_kerberos_FastOptions_spare_bit14 = -1;
-static gint hf_kerberos_FastOptions_spare_bit15 = -1;
-static gint hf_kerberos_FastOptions_kdc_follow_referrals = -1;
+static gint hf_kerberos_KrbFastResponse;
+static gint hf_kerberos_strengthen_key;
+static gint hf_kerberos_finished;
+static gint hf_kerberos_fast_options;
+static gint hf_kerberos_ticket_checksum;
+static gint hf_krb_patimestamp;
+static gint hf_krb_pausec;
+static gint hf_kerberos_FastOptions_reserved;
+static gint hf_kerberos_FastOptions_hide_client_names;
+static gint hf_kerberos_FastOptions_spare_bit2;
+static gint hf_kerberos_FastOptions_spare_bit3;
+static gint hf_kerberos_FastOptions_spare_bit4;
+static gint hf_kerberos_FastOptions_spare_bit5;
+static gint hf_kerberos_FastOptions_spare_bit6;
+static gint hf_kerberos_FastOptions_spare_bit7;
+static gint hf_kerberos_FastOptions_spare_bit8;
+static gint hf_kerberos_FastOptions_spare_bit9;
+static gint hf_kerberos_FastOptions_spare_bit10;
+static gint hf_kerberos_FastOptions_spare_bit11;
+static gint hf_kerberos_FastOptions_spare_bit12;
+static gint hf_kerberos_FastOptions_spare_bit13;
+static gint hf_kerberos_FastOptions_spare_bit14;
+static gint hf_kerberos_FastOptions_spare_bit15;
+static gint hf_kerberos_FastOptions_kdc_follow_referrals;
#endif
-
-/*--- Included file: packet-kerberos-hf.c ---*/
-#line 1 "./asn1/kerberos/packet-kerberos-hf.c"
-static int hf_kerberos_ticket = -1; /* Ticket */
-static int hf_kerberos_authenticator = -1; /* Authenticator */
-static int hf_kerberos_encTicketPart = -1; /* EncTicketPart */
-static int hf_kerberos_as_req = -1; /* AS_REQ */
-static int hf_kerberos_as_rep = -1; /* AS_REP */
-static int hf_kerberos_tgs_req = -1; /* TGS_REQ */
-static int hf_kerberos_tgs_rep = -1; /* TGS_REP */
-static int hf_kerberos_ap_req = -1; /* AP_REQ */
-static int hf_kerberos_ap_rep = -1; /* AP_REP */
-static int hf_kerberos_krb_safe = -1; /* KRB_SAFE */
-static int hf_kerberos_krb_priv = -1; /* KRB_PRIV */
-static int hf_kerberos_krb_cred = -1; /* KRB_CRED */
-static int hf_kerberos_encASRepPart = -1; /* EncASRepPart */
-static int hf_kerberos_encTGSRepPart = -1; /* EncTGSRepPart */
-static int hf_kerberos_encAPRepPart = -1; /* EncAPRepPart */
-static int hf_kerberos_encKrbPrivPart = -1; /* ENC_KRB_PRIV_PART */
-static int hf_kerberos_encKrbCredPart = -1; /* EncKrbCredPart */
-static int hf_kerberos_krb_error = -1; /* KRB_ERROR */
-static int hf_kerberos_name_type = -1; /* NAME_TYPE */
-static int hf_kerberos_name_string = -1; /* SEQUENCE_OF_KerberosString */
-static int hf_kerberos_name_string_item = -1; /* KerberosString */
-static int hf_kerberos_cname_string = -1; /* SEQUENCE_OF_CNameString */
-static int hf_kerberos_cname_string_item = -1; /* CNameString */
-static int hf_kerberos_sname_string = -1; /* SEQUENCE_OF_SNameString */
-static int hf_kerberos_sname_string_item = -1; /* SNameString */
-static int hf_kerberos_addr_type = -1; /* ADDR_TYPE */
-static int hf_kerberos_address = -1; /* T_address */
-static int hf_kerberos_HostAddresses_item = -1; /* HostAddress */
-static int hf_kerberos_AuthorizationData_item = -1; /* AuthorizationData_item */
-static int hf_kerberos_ad_type = -1; /* AUTHDATA_TYPE */
-static int hf_kerberos_ad_data = -1; /* T_ad_data */
-static int hf_kerberos_padata_type = -1; /* PADATA_TYPE */
-static int hf_kerberos_padata_value = -1; /* T_padata_value */
-static int hf_kerberos_keytype = -1; /* T_keytype */
-static int hf_kerberos_keyvalue = -1; /* T_keyvalue */
-static int hf_kerberos_cksumtype = -1; /* CKSUMTYPE */
-static int hf_kerberos_checksum = -1; /* T_checksum */
-static int hf_kerberos_etype = -1; /* ENCTYPE */
-static int hf_kerberos_kvno = -1; /* UInt32 */
-static int hf_kerberos_encryptedTicketData_cipher = -1; /* T_encryptedTicketData_cipher */
-static int hf_kerberos_encryptedAuthorizationData_cipher = -1; /* T_encryptedAuthorizationData_cipher */
-static int hf_kerberos_encryptedAuthenticator_cipher = -1; /* T_encryptedAuthenticator_cipher */
-static int hf_kerberos_encryptedKDCREPData_cipher = -1; /* T_encryptedKDCREPData_cipher */
-static int hf_kerberos_encryptedAPREPData_cipher = -1; /* T_encryptedAPREPData_cipher */
-static int hf_kerberos_encryptedKrbPrivData_cipher = -1; /* T_encryptedKrbPrivData_cipher */
-static int hf_kerberos_encryptedKrbCredData_cipher = -1; /* T_encryptedKrbCredData_cipher */
-static int hf_kerberos_tkt_vno = -1; /* INTEGER_5 */
-static int hf_kerberos_realm = -1; /* Realm */
-static int hf_kerberos_sname = -1; /* SName */
-static int hf_kerberos_ticket_enc_part = -1; /* EncryptedTicketData */
-static int hf_kerberos_flags = -1; /* TicketFlags */
-static int hf_kerberos_encTicketPart_key = -1; /* T_encTicketPart_key */
-static int hf_kerberos_crealm = -1; /* Realm */
-static int hf_kerberos_cname = -1; /* CName */
-static int hf_kerberos_transited = -1; /* TransitedEncoding */
-static int hf_kerberos_authtime = -1; /* KerberosTime */
-static int hf_kerberos_starttime = -1; /* KerberosTime */
-static int hf_kerberos_endtime = -1; /* KerberosTime */
-static int hf_kerberos_renew_till = -1; /* KerberosTime */
-static int hf_kerberos_caddr = -1; /* HostAddresses */
-static int hf_kerberos_authorization_data = -1; /* AuthorizationData */
-static int hf_kerberos_tr_type = -1; /* Int32 */
-static int hf_kerberos_contents = -1; /* OCTET_STRING */
-static int hf_kerberos_pvno = -1; /* INTEGER_5 */
-static int hf_kerberos_msg_type = -1; /* MESSAGE_TYPE */
-static int hf_kerberos_padata = -1; /* SEQUENCE_OF_PA_DATA */
-static int hf_kerberos_padata_item = -1; /* PA_DATA */
-static int hf_kerberos_req_body = -1; /* KDC_REQ_BODY */
-static int hf_kerberos_kdc_options = -1; /* KDCOptions */
-static int hf_kerberos_from = -1; /* KerberosTime */
-static int hf_kerberos_till = -1; /* KerberosTime */
-static int hf_kerberos_rtime = -1; /* KerberosTime */
-static int hf_kerberos_nonce = -1; /* UInt32 */
-static int hf_kerberos_kDC_REQ_BODY_etype = -1; /* SEQUENCE_OF_ENCTYPE */
-static int hf_kerberos_kDC_REQ_BODY_etype_item = -1; /* ENCTYPE */
-static int hf_kerberos_addresses = -1; /* HostAddresses */
-static int hf_kerberos_enc_authorization_data = -1; /* EncryptedAuthorizationData */
-static int hf_kerberos_additional_tickets = -1; /* SEQUENCE_OF_Ticket */
-static int hf_kerberos_additional_tickets_item = -1; /* Ticket */
-static int hf_kerberos_kDC_REP_enc_part = -1; /* EncryptedKDCREPData */
-static int hf_kerberos_encKDCRepPart_key = -1; /* T_encKDCRepPart_key */
-static int hf_kerberos_last_req = -1; /* LastReq */
-static int hf_kerberos_key_expiration = -1; /* KerberosTime */
-static int hf_kerberos_srealm = -1; /* Realm */
-static int hf_kerberos_encrypted_pa_data = -1; /* T_encrypted_pa_data */
-static int hf_kerberos_LastReq_item = -1; /* LastReq_item */
-static int hf_kerberos_lr_type = -1; /* LR_TYPE */
-static int hf_kerberos_lr_value = -1; /* KerberosTime */
-static int hf_kerberos_ap_options = -1; /* APOptions */
-static int hf_kerberos_authenticator_enc_part = -1; /* EncryptedAuthenticator */
-static int hf_kerberos_authenticator_vno = -1; /* INTEGER_5 */
-static int hf_kerberos_cksum = -1; /* Checksum */
-static int hf_kerberos_cusec = -1; /* Microseconds */
-static int hf_kerberos_ctime = -1; /* KerberosTime */
-static int hf_kerberos_authenticator_subkey = -1; /* T_authenticator_subkey */
-static int hf_kerberos_seq_number = -1; /* UInt32 */
-static int hf_kerberos_aP_REP_enc_part = -1; /* EncryptedAPREPData */
-static int hf_kerberos_encAPRepPart_subkey = -1; /* T_encAPRepPart_subkey */
-static int hf_kerberos_safe_body = -1; /* KRB_SAFE_BODY */
-static int hf_kerberos_kRB_SAFE_BODY_user_data = -1; /* T_kRB_SAFE_BODY_user_data */
-static int hf_kerberos_timestamp = -1; /* KerberosTime */
-static int hf_kerberos_usec = -1; /* Microseconds */
-static int hf_kerberos_s_address = -1; /* HostAddress */
-static int hf_kerberos_r_address = -1; /* HostAddress */
-static int hf_kerberos_kRB_PRIV_enc_part = -1; /* EncryptedKrbPrivData */
-static int hf_kerberos_encKrbPrivPart_user_data = -1; /* T_encKrbPrivPart_user_data */
-static int hf_kerberos_tickets = -1; /* SEQUENCE_OF_Ticket */
-static int hf_kerberos_tickets_item = -1; /* Ticket */
-static int hf_kerberos_kRB_CRED_enc_part = -1; /* EncryptedKrbCredData */
-static int hf_kerberos_ticket_info = -1; /* SEQUENCE_OF_KrbCredInfo */
-static int hf_kerberos_ticket_info_item = -1; /* KrbCredInfo */
-static int hf_kerberos_krbCredInfo_key = -1; /* T_krbCredInfo_key */
-static int hf_kerberos_prealm = -1; /* Realm */
-static int hf_kerberos_pname = -1; /* PrincipalName */
-static int hf_kerberos_stime = -1; /* KerberosTime */
-static int hf_kerberos_susec = -1; /* Microseconds */
-static int hf_kerberos_error_code = -1; /* ERROR_CODE */
-static int hf_kerberos_e_text = -1; /* KerberosString */
-static int hf_kerberos_e_data = -1; /* T_e_data */
-static int hf_kerberos_e_checksum = -1; /* Checksum */
-static int hf_kerberos_METHOD_DATA_item = -1; /* PA_DATA */
-static int hf_kerberos_pA_ENC_TIMESTAMP_cipher = -1; /* T_pA_ENC_TIMESTAMP_cipher */
-static int hf_kerberos_info_salt = -1; /* OCTET_STRING */
-static int hf_kerberos_ETYPE_INFO_item = -1; /* ETYPE_INFO_ENTRY */
-static int hf_kerberos_info2_salt = -1; /* KerberosString */
-static int hf_kerberos_s2kparams = -1; /* OCTET_STRING */
-static int hf_kerberos_ETYPE_INFO2_item = -1; /* ETYPE_INFO2_ENTRY */
-static int hf_kerberos_server_name = -1; /* PrincipalName */
-static int hf_kerberos_include_pac = -1; /* BOOLEAN */
-static int hf_kerberos_name = -1; /* PrincipalName */
-static int hf_kerberos_auth = -1; /* GeneralString */
-static int hf_kerberos_user_id = -1; /* S4UUserID */
-static int hf_kerberos_checksum_01 = -1; /* Checksum */
-static int hf_kerberos_cname_01 = -1; /* PrincipalName */
-static int hf_kerberos_subject_certificate = -1; /* T_subject_certificate */
-static int hf_kerberos_options = -1; /* BIT_STRING */
-static int hf_kerberos_flags_01 = -1; /* PAC_OPTIONS_FLAGS */
-static int hf_kerberos_restriction_type = -1; /* Int32 */
-static int hf_kerberos_restriction = -1; /* OCTET_STRING */
-static int hf_kerberos_PA_KERB_KEY_LIST_REQ_item = -1; /* ENCTYPE */
-static int hf_kerberos_kerbKeyListRep_key = -1; /* PA_KERB_KEY_LIST_REP_item */
-static int hf_kerberos_newpasswd = -1; /* OCTET_STRING */
-static int hf_kerberos_targname = -1; /* PrincipalName */
-static int hf_kerberos_targrealm = -1; /* Realm */
-static int hf_kerberos_pa_type = -1; /* PADATA_TYPE */
-static int hf_kerberos_pa_hint = -1; /* OCTET_STRING */
-static int hf_kerberos_pa_value = -1; /* OCTET_STRING */
-static int hf_kerberos_armor_type = -1; /* KrbFastArmorTypes */
-static int hf_kerberos_armor_value = -1; /* T_armor_value */
-static int hf_kerberos_armored_data_request = -1; /* KrbFastArmoredReq */
-static int hf_kerberos_encryptedKrbFastReq_cipher = -1; /* T_encryptedKrbFastReq_cipher */
-static int hf_kerberos_armor = -1; /* KrbFastArmor */
-static int hf_kerberos_req_checksum = -1; /* Checksum */
-static int hf_kerberos_enc_fast_req = -1; /* EncryptedKrbFastReq */
-static int hf_kerberos_armored_data_reply = -1; /* KrbFastArmoredRep */
-static int hf_kerberos_encryptedKrbFastResponse_cipher = -1; /* T_encryptedKrbFastResponse_cipher */
-static int hf_kerberos_enc_fast_rep = -1; /* EncryptedKrbFastResponse */
-static int hf_kerberos_encryptedChallenge_cipher = -1; /* T_encryptedChallenge_cipher */
-static int hf_kerberos_cipher = -1; /* OCTET_STRING */
-static int hf_kerberos_groups = -1; /* SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup */
-static int hf_kerberos_groups_item = -1; /* SPAKEGroup */
-static int hf_kerberos_group = -1; /* SPAKEGroup */
-static int hf_kerberos_pubkey = -1; /* OCTET_STRING */
-static int hf_kerberos_factors = -1; /* SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor */
-static int hf_kerberos_factors_item = -1; /* SPAKESecondFactor */
-static int hf_kerberos_type = -1; /* SPAKESecondFactorType */
-static int hf_kerberos_data = -1; /* OCTET_STRING */
-static int hf_kerberos_factor = -1; /* EncryptedSpakeResponseData */
-static int hf_kerberos_support = -1; /* SPAKESupport */
-static int hf_kerberos_challenge = -1; /* SPAKEChallenge */
-static int hf_kerberos_response = -1; /* SPAKEResponse */
-static int hf_kerberos_encdata = -1; /* EncryptedSpakeData */
+static int hf_kerberos_ticket; /* Ticket */
+static int hf_kerberos_authenticator; /* Authenticator */
+static int hf_kerberos_encTicketPart; /* EncTicketPart */
+static int hf_kerberos_as_req; /* AS_REQ */
+static int hf_kerberos_as_rep; /* AS_REP */
+static int hf_kerberos_tgs_req; /* TGS_REQ */
+static int hf_kerberos_tgs_rep; /* TGS_REP */
+static int hf_kerberos_ap_req; /* AP_REQ */
+static int hf_kerberos_ap_rep; /* AP_REP */
+static int hf_kerberos_krb_safe; /* KRB_SAFE */
+static int hf_kerberos_krb_priv; /* KRB_PRIV */
+static int hf_kerberos_krb_cred; /* KRB_CRED */
+static int hf_kerberos_encASRepPart; /* EncASRepPart */
+static int hf_kerberos_encTGSRepPart; /* EncTGSRepPart */
+static int hf_kerberos_encAPRepPart; /* EncAPRepPart */
+static int hf_kerberos_encKrbPrivPart; /* ENC_KRB_PRIV_PART */
+static int hf_kerberos_encKrbCredPart; /* EncKrbCredPart */
+static int hf_kerberos_krb_error; /* KRB_ERROR */
+static int hf_kerberos_name_type; /* NAME_TYPE */
+static int hf_kerberos_name_string; /* SEQUENCE_OF_KerberosString */
+static int hf_kerberos_name_string_item; /* KerberosString */
+static int hf_kerberos_cname_string; /* SEQUENCE_OF_CNameString */
+static int hf_kerberos_cname_string_item; /* CNameString */
+static int hf_kerberos_sname_string; /* SEQUENCE_OF_SNameString */
+static int hf_kerberos_sname_string_item; /* SNameString */
+static int hf_kerberos_addr_type; /* ADDR_TYPE */
+static int hf_kerberos_address; /* T_address */
+static int hf_kerberos_HostAddresses_item; /* HostAddress */
+static int hf_kerberos_AuthorizationData_item; /* AuthorizationData_item */
+static int hf_kerberos_ad_type; /* AUTHDATA_TYPE */
+static int hf_kerberos_ad_data; /* T_ad_data */
+static int hf_kerberos_padata_type; /* PADATA_TYPE */
+static int hf_kerberos_padata_value; /* T_padata_value */
+static int hf_kerberos_keytype; /* T_keytype */
+static int hf_kerberos_keyvalue; /* T_keyvalue */
+static int hf_kerberos_cksumtype; /* CKSUMTYPE */
+static int hf_kerberos_checksum; /* T_checksum */
+static int hf_kerberos_etype; /* ENCTYPE */
+static int hf_kerberos_kvno; /* UInt32 */
+static int hf_kerberos_encryptedTicketData_cipher; /* T_encryptedTicketData_cipher */
+static int hf_kerberos_encryptedAuthorizationData_cipher; /* T_encryptedAuthorizationData_cipher */
+static int hf_kerberos_encryptedAuthenticator_cipher; /* T_encryptedAuthenticator_cipher */
+static int hf_kerberos_encryptedKDCREPData_cipher; /* T_encryptedKDCREPData_cipher */
+static int hf_kerberos_encryptedAPREPData_cipher; /* T_encryptedAPREPData_cipher */
+static int hf_kerberos_encryptedKrbPrivData_cipher; /* T_encryptedKrbPrivData_cipher */
+static int hf_kerberos_encryptedKrbCredData_cipher; /* T_encryptedKrbCredData_cipher */
+static int hf_kerberos_tkt_vno; /* INTEGER_5 */
+static int hf_kerberos_realm; /* Realm */
+static int hf_kerberos_sname; /* SName */
+static int hf_kerberos_ticket_enc_part; /* EncryptedTicketData */
+static int hf_kerberos_flags; /* TicketFlags */
+static int hf_kerberos_encTicketPart_key; /* T_encTicketPart_key */
+static int hf_kerberos_crealm; /* Realm */
+static int hf_kerberos_cname; /* CName */
+static int hf_kerberos_transited; /* TransitedEncoding */
+static int hf_kerberos_authtime; /* KerberosTime */
+static int hf_kerberos_starttime; /* KerberosTime */
+static int hf_kerberos_endtime; /* KerberosTime */
+static int hf_kerberos_renew_till; /* KerberosTime */
+static int hf_kerberos_caddr; /* HostAddresses */
+static int hf_kerberos_authorization_data; /* AuthorizationData */
+static int hf_kerberos_tr_type; /* Int32 */
+static int hf_kerberos_contents; /* OCTET_STRING */
+static int hf_kerberos_pvno; /* INTEGER_5 */
+static int hf_kerberos_msg_type; /* MESSAGE_TYPE */
+static int hf_kerberos_rEQ_SEQUENCE_OF_PA_DATA; /* T_rEQ_SEQUENCE_OF_PA_DATA */
+static int hf_kerberos_rEQ_SEQUENCE_OF_PA_DATA_item; /* PA_DATA */
+static int hf_kerberos_req_body; /* KDC_REQ_BODY */
+static int hf_kerberos_kdc_options; /* KDCOptions */
+static int hf_kerberos_from; /* KerberosTime */
+static int hf_kerberos_till; /* KerberosTime */
+static int hf_kerberos_rtime; /* KerberosTime */
+static int hf_kerberos_nonce; /* UInt32 */
+static int hf_kerberos_kDC_REQ_BODY_etype; /* SEQUENCE_OF_ENCTYPE */
+static int hf_kerberos_kDC_REQ_BODY_etype_item; /* ENCTYPE */
+static int hf_kerberos_addresses; /* HostAddresses */
+static int hf_kerberos_enc_authorization_data; /* EncryptedAuthorizationData */
+static int hf_kerberos_additional_tickets; /* SEQUENCE_OF_Ticket */
+static int hf_kerberos_additional_tickets_item; /* Ticket */
+static int hf_kerberos_rEP_SEQUENCE_OF_PA_DATA; /* T_rEP_SEQUENCE_OF_PA_DATA */
+static int hf_kerberos_rEP_SEQUENCE_OF_PA_DATA_item; /* PA_DATA */
+static int hf_kerberos_kDC_REP_enc_part; /* EncryptedKDCREPData */
+static int hf_kerberos_encKDCRepPart_key; /* T_encKDCRepPart_key */
+static int hf_kerberos_last_req; /* LastReq */
+static int hf_kerberos_key_expiration; /* KerberosTime */
+static int hf_kerberos_srealm; /* Realm */
+static int hf_kerberos_encrypted_pa_data; /* T_encrypted_pa_data */
+static int hf_kerberos_LastReq_item; /* LastReq_item */
+static int hf_kerberos_lr_type; /* LR_TYPE */
+static int hf_kerberos_lr_value; /* KerberosTime */
+static int hf_kerberos_ap_options; /* APOptions */
+static int hf_kerberos_authenticator_enc_part; /* EncryptedAuthenticator */
+static int hf_kerberos_authenticator_vno; /* INTEGER_5 */
+static int hf_kerberos_cksum; /* Checksum */
+static int hf_kerberos_cusec; /* Microseconds */
+static int hf_kerberos_ctime; /* KerberosTime */
+static int hf_kerberos_authenticator_subkey; /* T_authenticator_subkey */
+static int hf_kerberos_seq_number; /* UInt32 */
+static int hf_kerberos_aP_REP_enc_part; /* EncryptedAPREPData */
+static int hf_kerberos_encAPRepPart_subkey; /* T_encAPRepPart_subkey */
+static int hf_kerberos_safe_body; /* KRB_SAFE_BODY */
+static int hf_kerberos_kRB_SAFE_BODY_user_data; /* T_kRB_SAFE_BODY_user_data */
+static int hf_kerberos_timestamp; /* KerberosTime */
+static int hf_kerberos_usec; /* Microseconds */
+static int hf_kerberos_s_address; /* HostAddress */
+static int hf_kerberos_r_address; /* HostAddress */
+static int hf_kerberos_kRB_PRIV_enc_part; /* EncryptedKrbPrivData */
+static int hf_kerberos_encKrbPrivPart_user_data; /* T_encKrbPrivPart_user_data */
+static int hf_kerberos_tickets; /* SEQUENCE_OF_Ticket */
+static int hf_kerberos_tickets_item; /* Ticket */
+static int hf_kerberos_kRB_CRED_enc_part; /* EncryptedKrbCredData */
+static int hf_kerberos_ticket_info; /* SEQUENCE_OF_KrbCredInfo */
+static int hf_kerberos_ticket_info_item; /* KrbCredInfo */
+static int hf_kerberos_krbCredInfo_key; /* T_krbCredInfo_key */
+static int hf_kerberos_prealm; /* Realm */
+static int hf_kerberos_pname; /* PrincipalName */
+static int hf_kerberos_stime; /* KerberosTime */
+static int hf_kerberos_susec; /* Microseconds */
+static int hf_kerberos_error_code; /* ERROR_CODE */
+static int hf_kerberos_e_text; /* KerberosString */
+static int hf_kerberos_e_data; /* T_e_data */
+static int hf_kerberos_e_checksum; /* Checksum */
+static int hf_kerberos_METHOD_DATA_item; /* PA_DATA */
+static int hf_kerberos_pA_ENC_TIMESTAMP_cipher; /* T_pA_ENC_TIMESTAMP_cipher */
+static int hf_kerberos_info_salt; /* OCTET_STRING */
+static int hf_kerberos_ETYPE_INFO_item; /* ETYPE_INFO_ENTRY */
+static int hf_kerberos_info2_salt; /* KerberosString */
+static int hf_kerberos_s2kparams; /* OCTET_STRING */
+static int hf_kerberos_ETYPE_INFO2_item; /* ETYPE_INFO2_ENTRY */
+static int hf_kerberos_server_name; /* PrincipalName */
+static int hf_kerberos_include_pac; /* BOOLEAN */
+static int hf_kerberos_name; /* PrincipalName */
+static int hf_kerberos_auth; /* GeneralString */
+static int hf_kerberos_user_id; /* S4UUserID */
+static int hf_kerberos_checksum_01; /* Checksum */
+static int hf_kerberos_cname_01; /* PrincipalName */
+static int hf_kerberos_subject_certificate; /* T_subject_certificate */
+static int hf_kerberos_options; /* BIT_STRING */
+static int hf_kerberos_flags_01; /* PAC_OPTIONS_FLAGS */
+static int hf_kerberos_restriction_type; /* Int32 */
+static int hf_kerberos_restriction; /* OCTET_STRING */
+static int hf_kerberos_PA_KERB_KEY_LIST_REQ_item; /* ENCTYPE */
+static int hf_kerberos_kerbKeyListRep_key; /* PA_KERB_KEY_LIST_REP_item */
+static int hf_kerberos_newpasswd; /* OCTET_STRING */
+static int hf_kerberos_targname; /* PrincipalName */
+static int hf_kerberos_targrealm; /* Realm */
+static int hf_kerberos_pa_type; /* PADATA_TYPE */
+static int hf_kerberos_pa_hint; /* OCTET_STRING */
+static int hf_kerberos_pa_value; /* OCTET_STRING */
+static int hf_kerberos_armor_type; /* KrbFastArmorTypes */
+static int hf_kerberos_armor_value; /* T_armor_value */
+static int hf_kerberos_armored_data_request; /* KrbFastArmoredReq */
+static int hf_kerberos_encryptedKrbFastReq_cipher; /* T_encryptedKrbFastReq_cipher */
+static int hf_kerberos_armor; /* KrbFastArmor */
+static int hf_kerberos_req_checksum; /* Checksum */
+static int hf_kerberos_enc_fast_req; /* EncryptedKrbFastReq */
+static int hf_kerberos_armored_data_reply; /* KrbFastArmoredRep */
+static int hf_kerberos_encryptedKrbFastResponse_cipher; /* T_encryptedKrbFastResponse_cipher */
+static int hf_kerberos_enc_fast_rep; /* EncryptedKrbFastResponse */
+static int hf_kerberos_encryptedChallenge_cipher; /* T_encryptedChallenge_cipher */
+static int hf_kerberos_cipher; /* OCTET_STRING */
+static int hf_kerberos_groups; /* SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup */
+static int hf_kerberos_groups_item; /* SPAKEGroup */
+static int hf_kerberos_group; /* SPAKEGroup */
+static int hf_kerberos_pubkey; /* OCTET_STRING */
+static int hf_kerberos_factors; /* SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor */
+static int hf_kerberos_factors_item; /* SPAKESecondFactor */
+static int hf_kerberos_type; /* SPAKESecondFactorType */
+static int hf_kerberos_data; /* OCTET_STRING */
+static int hf_kerberos_factor; /* EncryptedSpakeResponseData */
+static int hf_kerberos_support; /* SPAKESupport */
+static int hf_kerberos_challenge; /* SPAKEChallenge */
+static int hf_kerberos_response; /* SPAKEResponse */
+static int hf_kerberos_encdata; /* EncryptedSpakeData */
/* named bits */
-static int hf_kerberos_APOptions_reserved = -1;
-static int hf_kerberos_APOptions_use_session_key = -1;
-static int hf_kerberos_APOptions_mutual_required = -1;
-static int hf_kerberos_TicketFlags_reserved = -1;
-static int hf_kerberos_TicketFlags_forwardable = -1;
-static int hf_kerberos_TicketFlags_forwarded = -1;
-static int hf_kerberos_TicketFlags_proxiable = -1;
-static int hf_kerberos_TicketFlags_proxy = -1;
-static int hf_kerberos_TicketFlags_may_postdate = -1;
-static int hf_kerberos_TicketFlags_postdated = -1;
-static int hf_kerberos_TicketFlags_invalid = -1;
-static int hf_kerberos_TicketFlags_renewable = -1;
-static int hf_kerberos_TicketFlags_initial = -1;
-static int hf_kerberos_TicketFlags_pre_authent = -1;
-static int hf_kerberos_TicketFlags_hw_authent = -1;
-static int hf_kerberos_TicketFlags_transited_policy_checked = -1;
-static int hf_kerberos_TicketFlags_ok_as_delegate = -1;
-static int hf_kerberos_TicketFlags_unused = -1;
-static int hf_kerberos_TicketFlags_enc_pa_rep = -1;
-static int hf_kerberos_TicketFlags_anonymous = -1;
-static int hf_kerberos_KDCOptions_reserved = -1;
-static int hf_kerberos_KDCOptions_forwardable = -1;
-static int hf_kerberos_KDCOptions_forwarded = -1;
-static int hf_kerberos_KDCOptions_proxiable = -1;
-static int hf_kerberos_KDCOptions_proxy = -1;
-static int hf_kerberos_KDCOptions_allow_postdate = -1;
-static int hf_kerberos_KDCOptions_postdated = -1;
-static int hf_kerberos_KDCOptions_unused7 = -1;
-static int hf_kerberos_KDCOptions_renewable = -1;
-static int hf_kerberos_KDCOptions_unused9 = -1;
-static int hf_kerberos_KDCOptions_unused10 = -1;
-static int hf_kerberos_KDCOptions_opt_hardware_auth = -1;
-static int hf_kerberos_KDCOptions_unused12 = -1;
-static int hf_kerberos_KDCOptions_unused13 = -1;
-static int hf_kerberos_KDCOptions_constrained_delegation = -1;
-static int hf_kerberos_KDCOptions_canonicalize = -1;
-static int hf_kerberos_KDCOptions_request_anonymous = -1;
-static int hf_kerberos_KDCOptions_unused17 = -1;
-static int hf_kerberos_KDCOptions_unused18 = -1;
-static int hf_kerberos_KDCOptions_unused19 = -1;
-static int hf_kerberos_KDCOptions_unused20 = -1;
-static int hf_kerberos_KDCOptions_unused21 = -1;
-static int hf_kerberos_KDCOptions_unused22 = -1;
-static int hf_kerberos_KDCOptions_unused23 = -1;
-static int hf_kerberos_KDCOptions_unused24 = -1;
-static int hf_kerberos_KDCOptions_unused25 = -1;
-static int hf_kerberos_KDCOptions_disable_transited_check = -1;
-static int hf_kerberos_KDCOptions_renewable_ok = -1;
-static int hf_kerberos_KDCOptions_enc_tkt_in_skey = -1;
-static int hf_kerberos_KDCOptions_unused29 = -1;
-static int hf_kerberos_KDCOptions_renew = -1;
-static int hf_kerberos_KDCOptions_validate = -1;
-static int hf_kerberos_PAC_OPTIONS_FLAGS_claims = -1;
-static int hf_kerberos_PAC_OPTIONS_FLAGS_branch_aware = -1;
-static int hf_kerberos_PAC_OPTIONS_FLAGS_forward_to_full_dc = -1;
-static int hf_kerberos_PAC_OPTIONS_FLAGS_resource_based_constrained_delegation = -1;
-
-/*--- End of included file: packet-kerberos-hf.c ---*/
-#line 296 "./asn1/kerberos/packet-kerberos-template.c"
+static int hf_kerberos_APOptions_reserved;
+static int hf_kerberos_APOptions_use_session_key;
+static int hf_kerberos_APOptions_mutual_required;
+static int hf_kerberos_TicketFlags_reserved;
+static int hf_kerberos_TicketFlags_forwardable;
+static int hf_kerberos_TicketFlags_forwarded;
+static int hf_kerberos_TicketFlags_proxiable;
+static int hf_kerberos_TicketFlags_proxy;
+static int hf_kerberos_TicketFlags_may_postdate;
+static int hf_kerberos_TicketFlags_postdated;
+static int hf_kerberos_TicketFlags_invalid;
+static int hf_kerberos_TicketFlags_renewable;
+static int hf_kerberos_TicketFlags_initial;
+static int hf_kerberos_TicketFlags_pre_authent;
+static int hf_kerberos_TicketFlags_hw_authent;
+static int hf_kerberos_TicketFlags_transited_policy_checked;
+static int hf_kerberos_TicketFlags_ok_as_delegate;
+static int hf_kerberos_TicketFlags_unused;
+static int hf_kerberos_TicketFlags_enc_pa_rep;
+static int hf_kerberos_TicketFlags_anonymous;
+static int hf_kerberos_KDCOptions_reserved;
+static int hf_kerberos_KDCOptions_forwardable;
+static int hf_kerberos_KDCOptions_forwarded;
+static int hf_kerberos_KDCOptions_proxiable;
+static int hf_kerberos_KDCOptions_proxy;
+static int hf_kerberos_KDCOptions_allow_postdate;
+static int hf_kerberos_KDCOptions_postdated;
+static int hf_kerberos_KDCOptions_unused7;
+static int hf_kerberos_KDCOptions_renewable;
+static int hf_kerberos_KDCOptions_unused9;
+static int hf_kerberos_KDCOptions_unused10;
+static int hf_kerberos_KDCOptions_opt_hardware_auth;
+static int hf_kerberos_KDCOptions_unused12;
+static int hf_kerberos_KDCOptions_unused13;
+static int hf_kerberos_KDCOptions_constrained_delegation;
+static int hf_kerberos_KDCOptions_canonicalize;
+static int hf_kerberos_KDCOptions_request_anonymous;
+static int hf_kerberos_KDCOptions_unused17;
+static int hf_kerberos_KDCOptions_unused18;
+static int hf_kerberos_KDCOptions_unused19;
+static int hf_kerberos_KDCOptions_unused20;
+static int hf_kerberos_KDCOptions_unused21;
+static int hf_kerberos_KDCOptions_unused22;
+static int hf_kerberos_KDCOptions_unused23;
+static int hf_kerberos_KDCOptions_unused24;
+static int hf_kerberos_KDCOptions_unused25;
+static int hf_kerberos_KDCOptions_disable_transited_check;
+static int hf_kerberos_KDCOptions_renewable_ok;
+static int hf_kerberos_KDCOptions_enc_tkt_in_skey;
+static int hf_kerberos_KDCOptions_unused29;
+static int hf_kerberos_KDCOptions_renew;
+static int hf_kerberos_KDCOptions_validate;
+static int hf_kerberos_PAC_OPTIONS_FLAGS_claims;
+static int hf_kerberos_PAC_OPTIONS_FLAGS_branch_aware;
+static int hf_kerberos_PAC_OPTIONS_FLAGS_forward_to_full_dc;
+static int hf_kerberos_PAC_OPTIONS_FLAGS_resource_based_constrained_delegation;
/* Initialize the subtree pointers */
-static gint ett_kerberos = -1;
-static gint ett_krb_recordmark = -1;
-static gint ett_krb_pac = -1;
-static gint ett_krb_pac_drep = -1;
-static gint ett_krb_pac_midl_blob = -1;
-static gint ett_krb_pac_logon_info = -1;
-static gint ett_krb_pac_credential_info = -1;
-static gint ett_krb_pac_s4u_delegation_info = -1;
-static gint ett_krb_pac_upn_dns_info = -1;
-static gint ett_krb_pac_device_info = -1;
-static gint ett_krb_pac_server_checksum = -1;
-static gint ett_krb_pac_privsvr_checksum = -1;
-static gint ett_krb_pac_client_info_type = -1;
-static gint ett_krb_pac_ticket_checksum = -1;
-static gint ett_krb_pa_supported_enctypes = -1;
-static gint ett_krb_ad_ap_options = -1;
-static gint ett_kerberos_KERB_TICKET_LOGON = -1;
+static gint ett_kerberos;
+static gint ett_krb_recordmark;
+static gint ett_krb_pac;
+static gint ett_krb_pac_drep;
+static gint ett_krb_pac_midl_blob;
+static gint ett_krb_pac_logon_info;
+static gint ett_krb_pac_credential_info;
+static gint ett_krb_pac_s4u_delegation_info;
+static gint ett_krb_pac_upn_dns_info;
+static gint ett_krb_pac_upn_dns_info_flags;
+static gint ett_krb_pac_device_info;
+static gint ett_krb_pac_server_checksum;
+static gint ett_krb_pac_privsvr_checksum;
+static gint ett_krb_pac_client_info_type;
+static gint ett_krb_pac_ticket_checksum;
+static gint ett_krb_pac_attributes_info;
+static gint ett_krb_pac_attributes_info_flags;
+static gint ett_krb_pac_requester_sid;
+static gint ett_krb_pac_full_checksum;
+static gint ett_krb_pa_supported_enctypes;
+static gint ett_krb_ad_ap_options;
+static gint ett_kerberos_KERB_TICKET_LOGON;
#ifdef HAVE_KERBEROS
-static gint ett_krb_pa_enc_ts_enc = -1;
-static gint ett_kerberos_KrbFastFinished = -1;
-static gint ett_kerberos_KrbFastResponse = -1;
-static gint ett_kerberos_KrbFastReq = -1;
-static gint ett_kerberos_FastOptions = -1;
+static gint ett_krb_pa_enc_ts_enc;
+static gint ett_kerberos_KrbFastFinished;
+static gint ett_kerberos_KrbFastResponse;
+static gint ett_kerberos_KrbFastReq;
+static gint ett_kerberos_FastOptions;
#endif
-
-/*--- Included file: packet-kerberos-ett.c ---*/
-#line 1 "./asn1/kerberos/packet-kerberos-ett.c"
-static gint ett_kerberos_Applications = -1;
-static gint ett_kerberos_PrincipalName = -1;
-static gint ett_kerberos_SEQUENCE_OF_KerberosString = -1;
-static gint ett_kerberos_CName = -1;
-static gint ett_kerberos_SEQUENCE_OF_CNameString = -1;
-static gint ett_kerberos_SName = -1;
-static gint ett_kerberos_SEQUENCE_OF_SNameString = -1;
-static gint ett_kerberos_HostAddress = -1;
-static gint ett_kerberos_HostAddresses = -1;
-static gint ett_kerberos_AuthorizationData = -1;
-static gint ett_kerberos_AuthorizationData_item = -1;
-static gint ett_kerberos_PA_DATA = -1;
-static gint ett_kerberos_EncryptionKey = -1;
-static gint ett_kerberos_Checksum = -1;
-static gint ett_kerberos_EncryptedTicketData = -1;
-static gint ett_kerberos_EncryptedAuthorizationData = -1;
-static gint ett_kerberos_EncryptedAuthenticator = -1;
-static gint ett_kerberos_EncryptedKDCREPData = -1;
-static gint ett_kerberos_EncryptedAPREPData = -1;
-static gint ett_kerberos_EncryptedKrbPrivData = -1;
-static gint ett_kerberos_EncryptedKrbCredData = -1;
-static gint ett_kerberos_Ticket_U = -1;
-static gint ett_kerberos_EncTicketPart_U = -1;
-static gint ett_kerberos_TransitedEncoding = -1;
-static gint ett_kerberos_KDC_REQ = -1;
-static gint ett_kerberos_SEQUENCE_OF_PA_DATA = -1;
-static gint ett_kerberos_KDC_REQ_BODY = -1;
-static gint ett_kerberos_SEQUENCE_OF_ENCTYPE = -1;
-static gint ett_kerberos_SEQUENCE_OF_Ticket = -1;
-static gint ett_kerberos_KDC_REP = -1;
-static gint ett_kerberos_EncKDCRepPart = -1;
-static gint ett_kerberos_LastReq = -1;
-static gint ett_kerberos_LastReq_item = -1;
-static gint ett_kerberos_AP_REQ_U = -1;
-static gint ett_kerberos_Authenticator_U = -1;
-static gint ett_kerberos_AP_REP_U = -1;
-static gint ett_kerberos_EncAPRepPart_U = -1;
-static gint ett_kerberos_KRB_SAFE_U = -1;
-static gint ett_kerberos_KRB_SAFE_BODY = -1;
-static gint ett_kerberos_KRB_PRIV_U = -1;
-static gint ett_kerberos_EncKrbPrivPart = -1;
-static gint ett_kerberos_KRB_CRED_U = -1;
-static gint ett_kerberos_EncKrbCredPart_U = -1;
-static gint ett_kerberos_SEQUENCE_OF_KrbCredInfo = -1;
-static gint ett_kerberos_KrbCredInfo = -1;
-static gint ett_kerberos_KRB_ERROR_U = -1;
-static gint ett_kerberos_METHOD_DATA = -1;
-static gint ett_kerberos_PA_ENC_TIMESTAMP = -1;
-static gint ett_kerberos_ETYPE_INFO_ENTRY = -1;
-static gint ett_kerberos_ETYPE_INFO = -1;
-static gint ett_kerberos_ETYPE_INFO2_ENTRY = -1;
-static gint ett_kerberos_ETYPE_INFO2 = -1;
-static gint ett_kerberos_TGT_REQ = -1;
-static gint ett_kerberos_TGT_REP = -1;
-static gint ett_kerberos_APOptions = -1;
-static gint ett_kerberos_TicketFlags = -1;
-static gint ett_kerberos_KDCOptions = -1;
-static gint ett_kerberos_PA_PAC_REQUEST = -1;
-static gint ett_kerberos_PA_S4U2Self = -1;
-static gint ett_kerberos_PA_S4U_X509_USER = -1;
-static gint ett_kerberos_S4UUserID = -1;
-static gint ett_kerberos_PAC_OPTIONS_FLAGS = -1;
-static gint ett_kerberos_PA_PAC_OPTIONS = -1;
-static gint ett_kerberos_KERB_AD_RESTRICTION_ENTRY_U = -1;
-static gint ett_kerberos_PA_KERB_KEY_LIST_REQ = -1;
-static gint ett_kerberos_PA_KERB_KEY_LIST_REP = -1;
-static gint ett_kerberos_ChangePasswdData = -1;
-static gint ett_kerberos_PA_AUTHENTICATION_SET_ELEM = -1;
-static gint ett_kerberos_KrbFastArmor = -1;
-static gint ett_kerberos_PA_FX_FAST_REQUEST = -1;
-static gint ett_kerberos_EncryptedKrbFastReq = -1;
-static gint ett_kerberos_KrbFastArmoredReq = -1;
-static gint ett_kerberos_PA_FX_FAST_REPLY = -1;
-static gint ett_kerberos_EncryptedKrbFastResponse = -1;
-static gint ett_kerberos_KrbFastArmoredRep = -1;
-static gint ett_kerberos_EncryptedChallenge = -1;
-static gint ett_kerberos_EncryptedSpakeData = -1;
-static gint ett_kerberos_EncryptedSpakeResponseData = -1;
-static gint ett_kerberos_SPAKESupport = -1;
-static gint ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup = -1;
-static gint ett_kerberos_SPAKEChallenge = -1;
-static gint ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor = -1;
-static gint ett_kerberos_SPAKESecondFactor = -1;
-static gint ett_kerberos_SPAKEResponse = -1;
-static gint ett_kerberos_PA_SPAKE = -1;
-
-/*--- End of included file: packet-kerberos-ett.c ---*/
-#line 323 "./asn1/kerberos/packet-kerberos-template.c"
-
-static expert_field ei_kerberos_missing_keytype = EI_INIT;
-static expert_field ei_kerberos_decrypted_keytype = EI_INIT;
-static expert_field ei_kerberos_learnt_keytype = EI_INIT;
-static expert_field ei_kerberos_address = EI_INIT;
-static expert_field ei_krb_gssapi_dlglen = EI_INIT;
+static gint ett_kerberos_Applications;
+static gint ett_kerberos_PrincipalName;
+static gint ett_kerberos_SEQUENCE_OF_KerberosString;
+static gint ett_kerberos_CName;
+static gint ett_kerberos_SEQUENCE_OF_CNameString;
+static gint ett_kerberos_SName;
+static gint ett_kerberos_SEQUENCE_OF_SNameString;
+static gint ett_kerberos_HostAddress;
+static gint ett_kerberos_HostAddresses;
+static gint ett_kerberos_AuthorizationData;
+static gint ett_kerberos_AuthorizationData_item;
+static gint ett_kerberos_PA_DATA;
+static gint ett_kerberos_EncryptionKey;
+static gint ett_kerberos_Checksum;
+static gint ett_kerberos_EncryptedTicketData;
+static gint ett_kerberos_EncryptedAuthorizationData;
+static gint ett_kerberos_EncryptedAuthenticator;
+static gint ett_kerberos_EncryptedKDCREPData;
+static gint ett_kerberos_EncryptedAPREPData;
+static gint ett_kerberos_EncryptedKrbPrivData;
+static gint ett_kerberos_EncryptedKrbCredData;
+static gint ett_kerberos_Ticket_U;
+static gint ett_kerberos_EncTicketPart_U;
+static gint ett_kerberos_TransitedEncoding;
+static gint ett_kerberos_KDC_REQ;
+static gint ett_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA;
+static gint ett_kerberos_KDC_REQ_BODY;
+static gint ett_kerberos_SEQUENCE_OF_ENCTYPE;
+static gint ett_kerberos_SEQUENCE_OF_Ticket;
+static gint ett_kerberos_KDC_REP;
+static gint ett_kerberos_T_rEP_SEQUENCE_OF_PA_DATA;
+static gint ett_kerberos_EncKDCRepPart;
+static gint ett_kerberos_LastReq;
+static gint ett_kerberos_LastReq_item;
+static gint ett_kerberos_AP_REQ_U;
+static gint ett_kerberos_Authenticator_U;
+static gint ett_kerberos_AP_REP_U;
+static gint ett_kerberos_EncAPRepPart_U;
+static gint ett_kerberos_KRB_SAFE_U;
+static gint ett_kerberos_KRB_SAFE_BODY;
+static gint ett_kerberos_KRB_PRIV_U;
+static gint ett_kerberos_EncKrbPrivPart;
+static gint ett_kerberos_KRB_CRED_U;
+static gint ett_kerberos_EncKrbCredPart_U;
+static gint ett_kerberos_SEQUENCE_OF_KrbCredInfo;
+static gint ett_kerberos_KrbCredInfo;
+static gint ett_kerberos_KRB_ERROR_U;
+static gint ett_kerberos_METHOD_DATA;
+static gint ett_kerberos_PA_ENC_TIMESTAMP;
+static gint ett_kerberos_ETYPE_INFO_ENTRY;
+static gint ett_kerberos_ETYPE_INFO;
+static gint ett_kerberos_ETYPE_INFO2_ENTRY;
+static gint ett_kerberos_ETYPE_INFO2;
+static gint ett_kerberos_TGT_REQ;
+static gint ett_kerberos_TGT_REP;
+static gint ett_kerberos_APOptions;
+static gint ett_kerberos_TicketFlags;
+static gint ett_kerberos_KDCOptions;
+static gint ett_kerberos_PA_PAC_REQUEST;
+static gint ett_kerberos_PA_S4U2Self;
+static gint ett_kerberos_PA_S4U_X509_USER;
+static gint ett_kerberos_S4UUserID;
+static gint ett_kerberos_PAC_OPTIONS_FLAGS;
+static gint ett_kerberos_PA_PAC_OPTIONS;
+static gint ett_kerberos_KERB_AD_RESTRICTION_ENTRY_U;
+static gint ett_kerberos_PA_KERB_KEY_LIST_REQ;
+static gint ett_kerberos_PA_KERB_KEY_LIST_REP;
+static gint ett_kerberos_ChangePasswdData;
+static gint ett_kerberos_PA_AUTHENTICATION_SET_ELEM;
+static gint ett_kerberos_KrbFastArmor;
+static gint ett_kerberos_PA_FX_FAST_REQUEST;
+static gint ett_kerberos_EncryptedKrbFastReq;
+static gint ett_kerberos_KrbFastArmoredReq;
+static gint ett_kerberos_PA_FX_FAST_REPLY;
+static gint ett_kerberos_EncryptedKrbFastResponse;
+static gint ett_kerberos_KrbFastArmoredRep;
+static gint ett_kerberos_EncryptedChallenge;
+static gint ett_kerberos_EncryptedSpakeData;
+static gint ett_kerberos_EncryptedSpakeResponseData;
+static gint ett_kerberos_SPAKESupport;
+static gint ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup;
+static gint ett_kerberos_SPAKEChallenge;
+static gint ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor;
+static gint ett_kerberos_SPAKESecondFactor;
+static gint ett_kerberos_SPAKEResponse;
+static gint ett_kerberos_PA_SPAKE;
+
+static expert_field ei_kerberos_missing_keytype;
+static expert_field ei_kerberos_decrypted_keytype;
+static expert_field ei_kerberos_learnt_keytype;
+static expert_field ei_kerberos_address;
+static expert_field ei_krb_gssapi_dlglen;
static dissector_handle_t krb4_handle=NULL;
@@ -665,9 +680,6 @@ static dissector_handle_t krb4_handle=NULL;
static guint32 gbl_keytype;
static gboolean gbl_do_col_info;
-
-/*--- Included file: packet-kerberos-val.h ---*/
-#line 1 "./asn1/kerberos/packet-kerberos-val.h"
#define id_krb5 "1.3.6.1.5.2"
typedef enum _KERBEROS_AUTHDATA_TYPE_enum {
@@ -767,7 +779,10 @@ typedef enum _KERBEROS_PADATA_TYPE_enum {
KERBEROS_PA_PKINIT_KX = 147,
KERBEROS_PA_PKU2U_NAME = 148,
KERBEROS_PA_REQ_ENC_PA_REP = 149,
+ KERBEROS_PA_AS_FRESHNESS = 150,
KERBEROS_PA_SPAKE = 151,
+ KERBEROS_PA_REDHAT_IDP_OAUTH2 = 152,
+ KERBEROS_PA_REDHAT_PASSKEY = 153,
KERBEROS_PA_KERB_KEY_LIST_REQ = 161,
KERBEROS_PA_KERB_KEY_LIST_REP = 162,
KERBEROS_PA_SUPPORTED_ETYPES = 165,
@@ -781,9 +796,6 @@ typedef enum _KERBEROS_KRBFASTARMORTYPES_enum {
KERBEROS_FX_FAST_ARMOR_AP_REQUEST = 1
} KERBEROS_KRBFASTARMORTYPES_enum;
-/*--- End of included file: packet-kerberos-val.h ---*/
-#line 337 "./asn1/kerberos/packet-kerberos-template.c"
-
static void
call_kerberos_callbacks(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int tag, kerberos_callbacks *cb)
{
@@ -827,7 +839,7 @@ kerberos_get_private_data(asn1_ctx_t *actx)
return (kerberos_private_data_t *)(actx->private_data);
}
-static gboolean
+static bool
kerberos_private_is_kdc_req(kerberos_private_data_t *private_data)
{
switch (private_data->msg_type) {
@@ -847,6 +859,38 @@ kerberos_is_win2k_pkinit(asn1_ctx_t *actx)
return private_data->is_win2k_pkinit;
}
+static int dissect_kerberos_defer_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
+{
+ kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
+
+ /*
+ * dissect_ber_octet_string_wcb() always passes
+ * implicit_tag=FALSE, offset=0 and hf_index=-1
+ *
+ * It means we only need to remember tvb and tree
+ * in order to replay dissect_kerberos_PA_FX_FAST_REQUEST()
+ * in dissect_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA()
+ */
+ ws_assert(implicit_tag == FALSE);
+ ws_assert(offset == 0);
+ ws_assert(hf_index <= 0);
+
+ if (private_data->PA_FX_FAST_REQUEST.defer) {
+ /*
+ * Remember the tvb (and the optional tree)
+ */
+ private_data->PA_FX_FAST_REQUEST.tvb = tvb;
+ private_data->PA_FX_FAST_REQUEST.tree = tree;
+ /*
+ * only handle the first PA_FX_FAST_REQUEST...
+ */
+ private_data->PA_FX_FAST_REQUEST.defer = FALSE;
+ return tvb_reported_length_remaining(tvb, offset);
+ }
+
+ return dissect_kerberos_PA_FX_FAST_REQUEST(implicit_tag, tvb, offset, actx, tree, hf_index);
+}
+
#ifdef HAVE_KERBEROS
/* Decrypt Kerberos blobs */
@@ -886,7 +930,7 @@ wmem_map_t *kerberos_longterm_keys = NULL;
static wmem_map_t *kerberos_all_keys = NULL;
static wmem_map_t *kerberos_app_session_keys = NULL;
-static gboolean
+static bool
enc_key_list_cb(wmem_allocator_t* allocator _U_, wmem_cb_event_t event _U_, void *user_data _U_)
{
enc_key_list = NULL;
@@ -1139,11 +1183,11 @@ add_encryption_key(packet_info *pinfo,
}
new_key = wmem_new0(key_scope, enc_key_t);
- g_snprintf(new_key->key_origin, KRB_MAX_ORIG_LEN, "%s %s in frame %u",
+ snprintf(new_key->key_origin, KRB_MAX_ORIG_LEN, "%s %s in frame %u",
methodl, origin, pinfo->num);
new_key->fd_num = pinfo->num;
new_key->id = ++private_data->learnt_key_ids;
- g_snprintf(new_key->id_str, KRB_MAX_ID_STR_LEN, "%d.%u",
+ snprintf(new_key->id_str, KRB_MAX_ID_STR_LEN, "%d.%u",
new_key->fd_num, new_key->id);
new_key->keytype=keytype;
new_key->keylength=keylength;
@@ -1204,7 +1248,7 @@ save_encryption_key(tvbuff_t *tvb _U_, int offset _U_, int length _U_,
const char *element = proto_registrar_get_name(hf_index);
char origin[KRB_MAX_ORIG_LEN] = { 0, };
- g_snprintf(origin, KRB_MAX_ORIG_LEN, "%s_%s", parent, element);
+ snprintf(origin, KRB_MAX_ORIG_LEN, "%s_%s", parent, element);
add_encryption_key(actx->pinfo,
private_data,
@@ -1375,12 +1419,12 @@ static void missing_encryption_key(proto_tree *tree, packet_info *pinfo,
enc_key_t *mek = NULL;
mek = wmem_new0(pinfo->pool, enc_key_t);
- g_snprintf(mek->key_origin, KRB_MAX_ORIG_LEN,
+ snprintf(mek->key_origin, KRB_MAX_ORIG_LEN,
"keytype %d usage %d missing in frame %u",
keytype, usage, pinfo->num);
mek->fd_num = pinfo->num;
mek->id = ++private_data->missing_key_ids;
- g_snprintf(mek->id_str, KRB_MAX_ID_STR_LEN, "missing.%u",
+ snprintf(mek->id_str, KRB_MAX_ID_STR_LEN, "missing.%u",
mek->id);
mek->keytype=keytype;
@@ -1451,12 +1495,12 @@ static void missing_signing_key(proto_tree *tree, packet_info *pinfo,
enc_key_t *mek = NULL;
mek = wmem_new0(pinfo->pool, enc_key_t);
- g_snprintf(mek->key_origin, KRB_MAX_ORIG_LEN,
+ snprintf(mek->key_origin, KRB_MAX_ORIG_LEN,
"checksum %d keytype %d missing in frame %u",
checksum, keytype, pinfo->num);
mek->fd_num = pinfo->num;
mek->id = ++private_data->missing_key_ids;
- g_snprintf(mek->id_str, KRB_MAX_ID_STR_LEN, "missing.%u",
+ snprintf(mek->id_str, KRB_MAX_ID_STR_LEN, "missing.%u",
mek->id);
mek->keytype=keytype;
@@ -1583,19 +1627,19 @@ read_keytab_file(const char *filename)
new_key = wmem_new0(wmem_epan_scope(), enc_key_t);
new_key->fd_num = -1;
new_key->id = ++kerberos_longterm_ids;
- g_snprintf(new_key->id_str, KRB_MAX_ID_STR_LEN, "keytab.%u", new_key->id);
+ snprintf(new_key->id_str, KRB_MAX_ID_STR_LEN, "keytab.%u", new_key->id);
new_key->next = enc_key_list;
/* generate origin string, describing where this key came from */
pos=new_key->key_origin;
pos+=MIN(KRB_MAX_ORIG_LEN,
- g_snprintf(pos, KRB_MAX_ORIG_LEN, "keytab principal "));
+ snprintf(pos, KRB_MAX_ORIG_LEN, "keytab principal "));
for(i=0;i<key.principal->length;i++){
pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
- g_snprintf(pos, (gulong)(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin)), "%s%s",(i?"/":""),(key.principal->data[i]).data));
+ snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "%s%s",(i?"/":""),(key.principal->data[i]).data));
}
pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
- g_snprintf(pos, (gulong)(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin)), "@%s",key.principal->realm.data));
+ snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "@%s",key.principal->realm.data));
*pos=0;
new_key->keytype=key.key.enctype;
new_key->keylength=key.key.length;
@@ -2278,6 +2322,8 @@ keytype_for_cksumtype(krb5_cksumtype checksum)
}
struct verify_krb5_pac_state {
+ int pacbuffer_length;
+ const guint8 *pacbuffer;
krb5_pac pac;
krb5_cksumtype server_checksum;
guint server_count;
@@ -2287,6 +2333,10 @@ struct verify_krb5_pac_state {
enc_key_t *kdc_ek;
krb5_cksumtype ticket_checksum_type;
const krb5_data *ticket_checksum_data;
+ krb5_cksumtype full_checksum_type;
+ const krb5_data *full_checksum_data;
+ guint full_count;
+ enc_key_t *full_ek;
};
static void
@@ -2468,7 +2518,7 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
}
checksum.length = MIN(checksum.length, (unsigned int)checksum_length);
- tepdata.data = (void *)(uintptr_t)tepbuffer;
+ tepdata.data = (void *)tepbuffer;
tepdata.length = teplength;
ret = decode_krb5_enc_tkt_part(&tepdata, &tep);
@@ -2610,6 +2660,216 @@ verify_krb5_pac_ticket_checksum(proto_tree *tree _U_,
#endif /* HAVE_DECODE_KRB5_ENC_TKT_PART */
}
+#define __KRB5_PAC_FULL_CHECKSUM 19
+
+static void
+verify_krb5_pac_full_checksum(proto_tree *tree,
+ asn1_ctx_t *actx,
+ tvbuff_t *orig_pactvb,
+ struct verify_krb5_pac_state *state)
+{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ krb5_error_code ret;
+ krb5_keyblock kdc_key = { .magic = KV5M_KEYBLOCK, };
+ size_t checksum_length = 0;
+ krb5_checksum checksum = { .checksum_type = 0, };
+ krb5_data pac_data = { .length = 0, };
+ tvbuff_t *copy_pactvb = NULL;
+ guint32 cur_offset;
+ guint32 num_buffers;
+ guint32 idx;
+ krb5_boolean valid = FALSE;
+
+ if (state->kdc_ek == NULL) {
+ int keytype = keytype_for_cksumtype(state->full_checksum_type);
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ keytype,
+ "Missing KDC (for full)",
+ "kdc_checksum_key",
+ 0,
+ 0);
+ return;
+ }
+
+ kdc_key.magic = KV5M_KEYBLOCK;
+ kdc_key.enctype = state->kdc_ek->keytype;
+ kdc_key.length = state->kdc_ek->keylength;
+ kdc_key.contents = (guint8 *)state->kdc_ek->keyvalue;
+
+ ret = krb5_c_checksum_length(krb5_ctx,
+ state->full_checksum_type,
+ &checksum_length);
+ if (ret != 0) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "krb5_c_checksum_length failed for Full Signature",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+
+ /*
+ * The checksum element begins with 4 bytes of type
+ * (state->full_checksum_type) before the crypto checksum
+ */
+ if (state->full_checksum_data->length < (4 + checksum_length)) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "pacbuffer_length too short for Full Signature",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+
+ pac_data.data = wmem_memdup(actx->pinfo->pool, state->pacbuffer, state->pacbuffer_length);
+ if (pac_data.data == NULL) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "wmem_memdup(pacbuffer) failed",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+ pac_data.length = state->pacbuffer_length;
+
+ copy_pactvb = tvb_new_child_real_data(orig_pactvb,
+ (guint8 *)pac_data.data,
+ pac_data.length,
+ pac_data.length);
+ if (copy_pactvb == NULL) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "tvb_new_child_real_data(pac_copy) failed",
+ "kdc_checksum_key",
+ 1,
+ 0);
+ return;
+ }
+
+#define __PAC_CHECK_OFFSET_SIZE(__offset, __length, __reason) do { \
+ guint64 __end = state->pacbuffer_length; \
+ guint64 __offset64 = __offset; \
+ guint64 __length64 = __length; \
+ guint64 __last; \
+ if (__offset64 > G_MAXINT32) { \
+ missing_signing_key(tree, actx->pinfo, private_data, \
+ orig_pactvb, state->full_checksum_type, \
+ state->kdc_ek->keytype, \
+ __reason, \
+ "kdc_checksum_key", \
+ 1, \
+ 0); \
+ return; \
+ } \
+ if (__length64 > G_MAXINT32) { \
+ missing_signing_key(tree, actx->pinfo, private_data, \
+ orig_pactvb, state->full_checksum_type, \
+ state->kdc_ek->keytype, \
+ __reason, \
+ "kdc_checksum_key", \
+ 1, \
+ 0); \
+ return; \
+ } \
+ __last = __offset64 + __length64; \
+ if (__last > __end) { \
+ missing_signing_key(tree, actx->pinfo, private_data, \
+ orig_pactvb, state->full_checksum_type, \
+ state->kdc_ek->keytype, \
+ __reason, \
+ "kdc_checksum_key", \
+ 1, \
+ 0); \
+ return; \
+ } \
+} while(0)
+
+ cur_offset = 0;
+ __PAC_CHECK_OFFSET_SIZE(cur_offset, 8, "PACTYPE Header");
+ num_buffers = tvb_get_guint32(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 4;
+ /* ignore 4 byte version */
+ cur_offset += 4;
+
+ for (idx = 0; idx < num_buffers; idx++) {
+ guint32 b_type;
+ guint32 b_length;
+ guint64 b_offset;
+
+ __PAC_CHECK_OFFSET_SIZE(cur_offset, 16, "PAC_INFO_BUFFER Header");
+ b_type = tvb_get_guint32(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 4;
+ b_length = tvb_get_guint32(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 4;
+ b_offset = tvb_get_guint64(copy_pactvb, cur_offset, ENC_LITTLE_ENDIAN);
+ cur_offset += 8;
+
+ __PAC_CHECK_OFFSET_SIZE(b_offset, b_length, "PAC_INFO_BUFFER Payload");
+
+ if (b_length <= 4) {
+ continue;
+ }
+
+ /*
+ * Leave PAC_TICKET_CHECKSUM and clear all other checksums
+ * and their possible RODC identifier, but leaving their
+ * checksum type as is.
+ */
+ switch (b_type) {
+ case KRB5_PAC_SERVER_CHECKSUM:
+ case KRB5_PAC_PRIVSVR_CHECKSUM:
+ case __KRB5_PAC_FULL_CHECKSUM:
+ memset(pac_data.data + b_offset+4, 0, b_length-4);
+ break;
+ }
+ }
+
+ checksum.checksum_type = state->full_checksum_type;
+ checksum.contents = (guint8 *)state->full_checksum_data->data + 4;
+ checksum.length = (unsigned)checksum_length;
+
+ ret = krb5_c_verify_checksum(krb5_ctx, &kdc_key,
+ KRB5_KEYUSAGE_APP_DATA_CKSUM,
+ &pac_data, &checksum, &valid);
+ if (ret != 0) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "krb5_c_verify_checksum failed for Full PAC Signature",
+ "kdc_checksum_key",
+ 1,
+ 1);
+ return;
+ }
+
+ if (valid == FALSE) {
+ missing_signing_key(tree, actx->pinfo, private_data,
+ orig_pactvb, state->full_checksum_type,
+ state->kdc_ek->keytype,
+ "Invalid Full PAC Signature",
+ "kdc_checksum_key",
+ 1,
+ 1);
+ return;
+ }
+
+ used_signing_key(tree, actx->pinfo, private_data,
+ state->kdc_ek, orig_pactvb,
+ state->full_checksum_type,
+ "Verified Full PAC",
+ "kdc_checksum_key",
+ 1,
+ 1);
+}
+
static void
verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
{
@@ -2617,6 +2877,7 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
krb5_error_code ret;
krb5_data checksum_data = {0,0,NULL};
krb5_data ticket_checksum_data = {0,0,NULL};
+ krb5_data full_checksum_data = {0,0,NULL};
int length = tvb_captured_length(pactvb);
const guint8 *pacbuffer = NULL;
struct verify_krb5_pac_state state = {
@@ -2634,6 +2895,8 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
}
pacbuffer = tvb_get_ptr(pactvb, 0, length);
+ state.pacbuffer_length = length;
+ state.pacbuffer = pacbuffer;
ret = krb5_pac_parse(krb5_ctx, pacbuffer, length, &state.pac);
if (ret != 0) {
@@ -2663,6 +2926,13 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
state.ticket_checksum_data = &ticket_checksum_data;
state.ticket_checksum_type = pletoh32(ticket_checksum_data.data);
};
+ ret = krb5_pac_get_buffer(krb5_ctx, state.pac,
+ __KRB5_PAC_FULL_CHECKSUM,
+ &full_checksum_data);
+ if (ret == 0) {
+ state.full_checksum_data = &full_checksum_data;
+ state.full_checksum_type = pletoh32(full_checksum_data.data);
+ };
read_keytab_file_from_preferences();
@@ -2713,6 +2983,14 @@ verify_krb5_pac(proto_tree *tree _U_, asn1_ctx_t *actx, tvbuff_t *pactvb)
krb5_free_data_contents(krb5_ctx, &ticket_checksum_data);
}
+ if (state.full_checksum_type != 0) {
+ verify_krb5_pac_full_checksum(tree, actx, pactvb, &state);
+ }
+
+ if (state.full_checksum_data != NULL) {
+ krb5_free_data_contents(krb5_ctx, &full_checksum_data);
+ }
+
krb5_pac_free(krb5_ctx, state.pac);
}
#endif /* HAVE_KRB5_PAC_VERIFY */
@@ -2775,19 +3053,19 @@ read_keytab_file(const char *filename)
new_key = wmem_new0(wmem_epan_scope(), enc_key_t);
new_key->fd_num = -1;
new_key->id = ++kerberos_longterm_ids;
- g_snprintf(new_key->id_str, KRB_MAX_ID_STR_LEN, "keytab.%u", new_key->id);
+ snprintf(new_key->id_str, KRB_MAX_ID_STR_LEN, "keytab.%u", new_key->id);
new_key->next = enc_key_list;
/* generate origin string, describing where this key came from */
pos=new_key->key_origin;
pos+=MIN(KRB_MAX_ORIG_LEN,
- g_snprintf(pos, KRB_MAX_ORIG_LEN, "keytab principal "));
+ snprintf(pos, KRB_MAX_ORIG_LEN, "keytab principal "));
for(i=0;i<key.principal->name.name_string.len;i++){
pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
- g_snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "%s%s",(i?"/":""),key.principal->name.name_string.val[i]));
+ snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "%s%s",(i?"/":""),key.principal->name.name_string.val[i]));
}
pos+=MIN(KRB_MAX_ORIG_LEN-(pos-new_key->key_origin),
- g_snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "@%s",key.principal->realm));
+ snprintf(pos, KRB_MAX_ORIG_LEN-(pos-new_key->key_origin), "@%s",key.principal->realm));
*pos=0;
new_key->keytype=key.keyblock.keytype;
new_key->keylength=(int)key.keyblock.keyvalue.length;
@@ -2924,7 +3202,7 @@ add_encryption_key(packet_info *pinfo, int keytype, int keylength, const char *k
new_key->keytype = keytype;
new_key->length = keylength;
new_key->contents = g_memdup2(keyvalue, keylength);
- g_snprintf(new_key->origin, KRB_MAX_ORIG_LEN, "%s learnt from frame %u", origin, pinfo->num);
+ snprintf(new_key->origin, KRB_MAX_ORIG_LEN, "%s learnt from frame %u", origin, pinfo->num);
service_key_list = g_slist_append(service_key_list, (gpointer) new_key);
}
@@ -2939,7 +3217,7 @@ save_encryption_key(tvbuff_t *tvb _U_, int offset _U_, int length _U_,
const char *element = proto_registrar_get_name(hf_index);
char origin[KRB_MAX_ORIG_LEN] = { 0, };
- g_snprintf(origin, KRB_MAX_ORIG_LEN, "%s_%s", parent, element);
+ snprintf(origin, KRB_MAX_ORIG_LEN, "%s_%s", parent, element);
add_encryption_key(actx->pinfo,
private_data->key.keytype,
@@ -3052,7 +3330,7 @@ read_keytab_file(const char *service_key_file)
sk->keytype = KEYTYPE_DES3_CBC_MD5;
sk->length = DES3_KEY_SIZE;
sk->contents = g_memdup2(buf + 2, DES3_KEY_SIZE);
- g_snprintf(sk->origin, KRB_MAX_ORIG_LEN, "3DES service key file, key #%d, offset %ld", count, ftell(skf));
+ snprintf(sk->origin, KRB_MAX_ORIG_LEN, "3DES service key file, key #%d, offset %ld", count, ftell(skf));
service_key_list = g_slist_append(service_key_list, (gpointer) sk);
if (fseek(skf, newline_skip, SEEK_CUR) < 0) {
fprintf(stderr, "unable to seek...\n");
@@ -3077,7 +3355,7 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
tvbuff_t *encr_tvb;
guint8 *decrypted_data = NULL, *plaintext = NULL;
guint8 cls;
- gboolean pc;
+ bool pc;
guint32 tag, item_len, data_len;
int id_offset, offset;
guint8 key[DES3_KEY_SIZE];
@@ -3086,7 +3364,7 @@ decrypt_krb5_data(proto_tree *tree, packet_info *pinfo,
guint8 *digest;
guint8 zero_fill[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
guint8 confounder[8];
- gboolean ind;
+ bool ind;
GSList *ske;
service_key_t *sk;
struct des3_ctx ctx;
@@ -3413,6 +3691,9 @@ static const value_string krb5_error_codes[] = {
#define PAC_DEVICE_INFO 14
#define PAC_DEVICE_CLAIMS_INFO 15
#define PAC_TICKET_CHECKSUM 16
+#define PAC_ATTRIBUTES_INFO 17
+#define PAC_REQUESTER_SID 18
+#define PAC_FULL_CHECKSUM 19
static const value_string w2k_pac_types[] = {
{ PAC_LOGON_INFO , "Logon Info" },
{ PAC_CREDENTIAL_TYPE , "Credential Type" },
@@ -3425,6 +3706,9 @@ static const value_string w2k_pac_types[] = {
{ PAC_DEVICE_INFO , "Device Info" },
{ PAC_DEVICE_CLAIMS_INFO , "Device Claims Info" },
{ PAC_TICKET_CHECKSUM , "Ticket Checksum" },
+ { PAC_ATTRIBUTES_INFO , "Attributes Info" },
+ { PAC_REQUESTER_SID , "Requester Sid" },
+ { PAC_FULL_CHECKSUM , "Full Checksum" },
{ 0, NULL },
};
@@ -3509,7 +3793,7 @@ decrypt_krb5_data_asn1(proto_tree *tree, asn1_ctx_t *actx,
}
static int
-dissect_krb5_decrypt_ticket_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_ticket_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
guint8 *plaintext;
@@ -3542,7 +3826,7 @@ dissect_krb5_decrypt_ticket_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offse
}
static int
-dissect_krb5_decrypt_authenticator_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_authenticator_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -3585,7 +3869,7 @@ dissect_krb5_decrypt_authenticator_data (gboolean imp_tag _U_, tvbuff_t *tvb, in
}
static int
-dissect_krb5_decrypt_authorization_data(gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_authorization_data(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -3626,7 +3910,7 @@ dissect_krb5_decrypt_authorization_data(gboolean imp_tag _U_, tvbuff_t *tvb, int
}
static int
-dissect_krb5_decrypt_KDC_REP_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_KDC_REP_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -3697,7 +3981,7 @@ dissect_krb5_decrypt_KDC_REP_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offs
}
static int
-dissect_krb5_decrypt_PA_ENC_TIMESTAMP (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_PA_ENC_TIMESTAMP (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
guint8 *plaintext;
@@ -3727,7 +4011,7 @@ dissect_krb5_decrypt_PA_ENC_TIMESTAMP (gboolean imp_tag _U_, tvbuff_t *tvb, int
}
static int
-dissect_krb5_decrypt_AP_REP_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_AP_REP_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
guint8 *plaintext;
@@ -3756,7 +4040,7 @@ dissect_krb5_decrypt_AP_REP_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offse
}
static int
-dissect_krb5_decrypt_PRIV_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_PRIV_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
guint8 *plaintext;
@@ -3785,9 +4069,10 @@ dissect_krb5_decrypt_PRIV_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset,
}
static int
-dissect_krb5_decrypt_CRED_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_CRED_data (bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
guint8 *plaintext;
int length;
tvbuff_t *next_tvb;
@@ -3795,6 +4080,11 @@ dissect_krb5_decrypt_CRED_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset,
next_tvb=tvb_new_subset_remaining(tvb, offset);
length=tvb_captured_length_remaining(tvb, offset);
+ if (private_data->etype == 0) {
+ offset=dissect_kerberos_Applications(FALSE, next_tvb, 0, actx , tree, /* hf_index*/ -1);
+ return offset;
+ }
+
/* RFC4120 :
* EncKrbCredPart encrypted with usage
* == 14
@@ -3814,7 +4104,7 @@ dissect_krb5_decrypt_CRED_data (gboolean imp_tag _U_, tvbuff_t *tvb, int offset,
}
static int
-dissect_krb5_decrypt_KrbFastReq(gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_KrbFastReq(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
guint8 *plaintext;
@@ -3877,7 +4167,7 @@ dissect_krb5_decrypt_KrbFastReq(gboolean imp_tag _U_, tvbuff_t *tvb, int offset,
}
static int
-dissect_krb5_decrypt_KrbFastResponse(gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_KrbFastResponse(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
guint8 *plaintext;
@@ -3910,7 +4200,7 @@ dissect_krb5_decrypt_KrbFastResponse(gboolean imp_tag _U_, tvbuff_t *tvb, int of
}
static int
-dissect_krb5_decrypt_EncryptedChallenge(gboolean imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
+dissect_krb5_decrypt_EncryptedChallenge(bool imp_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
proto_tree *tree, int hf_index _U_)
{
guint8 *plaintext;
@@ -3955,6 +4245,7 @@ static int * const hf_krb_pa_supported_enctypes_fields[] = {
&hf_krb_pa_supported_enctypes_rc4_hmac,
&hf_krb_pa_supported_enctypes_aes128_cts_hmac_sha1_96,
&hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96,
+ &hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96_sk,
&hf_krb_pa_supported_enctypes_fast_supported,
&hf_krb_pa_supported_enctypes_compound_identity_supported,
&hf_krb_pa_supported_enctypes_claims_supported,
@@ -3963,7 +4254,7 @@ static int * const hf_krb_pa_supported_enctypes_fields[] = {
};
static int
-dissect_kerberos_PA_SUPPORTED_ENCTYPES(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
+dissect_kerberos_PA_SUPPORTED_ENCTYPES(bool implicit_tag _U_, tvbuff_t *tvb _U_,
int offset _U_, asn1_ctx_t *actx _U_,
proto_tree *tree _U_, int hf_index _U_)
{
@@ -3979,12 +4270,13 @@ dissect_kerberos_PA_SUPPORTED_ENCTYPES(gboolean implicit_tag _U_, tvbuff_t *tvb
static int * const hf_krb_ad_ap_options_fields[] = {
&hf_krb_ad_ap_options_cbt,
+ &hf_krb_ad_ap_options_unverified_target_name,
NULL,
};
static int
-dissect_kerberos_AD_AP_OPTIONS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
+dissect_kerberos_AD_AP_OPTIONS(bool implicit_tag _U_, tvbuff_t *tvb _U_,
int offset _U_, asn1_ctx_t *actx _U_,
proto_tree *tree _U_, int hf_index _U_)
{
@@ -3999,7 +4291,7 @@ dissect_kerberos_AD_AP_OPTIONS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
}
static int
-dissect_kerberos_AD_TARGET_PRINCIPAL(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
+dissect_kerberos_AD_TARGET_PRINCIPAL(bool implicit_tag _U_, tvbuff_t *tvb _U_,
int offset _U_, asn1_ctx_t *actx _U_,
proto_tree *tree _U_, int hf_index _U_)
{
@@ -4075,7 +4367,7 @@ dissect_krb5_rfc1964_checksum(asn1_ctx_t *actx _U_, proto_tree *tree, tvbuff_t *
}
static int
-dissect_krb5_PA_PROV_SRV_LOCATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
+dissect_krb5_PA_PROV_SRV_LOCATION(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
{
offset=dissect_ber_GeneralString(actx, tree, tvb, offset, hf_krb_provsrv_location, NULL, 0);
@@ -4083,7 +4375,7 @@ dissect_krb5_PA_PROV_SRV_LOCATION(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
}
static int
-dissect_krb5_PW_SALT(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
+dissect_krb5_PW_SALT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_)
{
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint length;
@@ -4323,6 +4615,22 @@ dissect_krb5_PAC_S4U_DELEGATION_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int
return offset;
}
+#define PAC_UPN_DNS_FLAG_CONSTRUCTED 0x00000001
+#define PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID 0x00000002
+static const true_false_string tfs_krb_pac_upn_flag_upn_constructed = {
+ "UPN Name is Constructed",
+ "UPN Name is NOT Constructed",
+};
+static const true_false_string tfs_krb_pac_upn_flag_has_sam_name_and_sid = {
+ "SAM_NAME and SID are included",
+ "SAM_NAME and SID are NOT included",
+};
+static int * const hf_krb_pac_upn_flags_fields[] = {
+ &hf_krb_pac_upn_flag_upn_constructed,
+ &hf_krb_pac_upn_flag_has_sam_name_and_sid,
+ NULL
+};
+
static int
dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
{
@@ -4330,6 +4638,9 @@ dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset
proto_tree *tree;
guint16 dns_offset, dns_len;
guint16 upn_offset, upn_len;
+ guint16 samaccountname_offset = 0, samaccountname_len = 0;
+ guint16 objectsid_offset = 0, objectsid_len = 0;
+ guint32 flags;
item = proto_tree_add_item(parent_tree, hf_krb_pac_upn_dns_info, tvb, offset, -1, ENC_NA);
tree = proto_item_add_subtree(item, ett_krb_pac_upn_dns_info);
@@ -4351,7 +4662,29 @@ dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset
offset+=2;
/* flags */
- proto_tree_add_item(tree, hf_krb_pac_upn_flags, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ flags = tvb_get_letohl(tvb, offset);
+ proto_tree_add_bitmask(tree, tvb, offset,
+ hf_krb_pac_upn_flags,
+ ett_krb_pac_upn_dns_info_flags,
+ hf_krb_pac_upn_flags_fields,
+ ENC_LITTLE_ENDIAN);
+ offset+=4;
+
+ if (flags & PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID) {
+ samaccountname_len = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_samaccountname_len, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+ samaccountname_offset = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_samaccountname_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+
+ objectsid_len = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_objectsid_len, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset+=2;
+ objectsid_offset = tvb_get_letohs(tvb, offset);
+ proto_tree_add_item(tree, hf_krb_pac_upn_objectsid_offset, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ /* offset+=2; */
+ }
/* upn */
proto_tree_add_item(tree, hf_krb_pac_upn_upn_name, tvb, upn_offset, upn_len, ENC_UTF_16|ENC_LITTLE_ENDIAN);
@@ -4359,6 +4692,17 @@ dissect_krb5_PAC_UPN_DNS_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset
/* dns */
proto_tree_add_item(tree, hf_krb_pac_upn_dns_name, tvb, dns_offset, dns_len, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ /* samaccountname */
+ if (samaccountname_offset != 0 && samaccountname_len != 0) {
+ proto_tree_add_item(tree, hf_krb_pac_upn_samaccountname, tvb, samaccountname_offset, samaccountname_len, ENC_UTF_16|ENC_LITTLE_ENDIAN);
+ }
+ /* objectsid */
+ if (objectsid_offset != 0 && objectsid_len != 0) {
+ tvbuff_t *sid_tvb;
+ sid_tvb=tvb_new_subset_length(tvb, objectsid_offset, objectsid_len);
+ dissect_nt_sid(sid_tvb, 0, tree, "objectSid", NULL, -1);
+ }
+
return dns_offset;
}
@@ -4502,6 +4846,79 @@ dissect_krb5_PAC_TICKET_CHECKSUM(proto_tree *parent_tree, tvbuff_t *tvb, int off
return offset;
}
+#define PAC_ATTRIBUTE_FLAG_PAC_WAS_REQUESTED 0x00000001
+#define PAC_ATTRIBUTE_FLAG_PAC_WAS_GIVEN_IMPLICITLY 0x00000002
+static const true_false_string tfs_krb_pac_attributes_info_pac_was_requested = {
+ "PAC was requested",
+ "PAC was NOT requested",
+};
+static const true_false_string tfs_krb_pac_attributes_info_pac_was_given_implicitly = {
+ "PAC was given implicitly",
+ "PAC was NOT given implicitly",
+};
+static int * const hf_krb_pac_attributes_info_flags_fields[] = {
+ &hf_krb_pac_attributes_info_flags_pac_was_requested,
+ &hf_krb_pac_attributes_info_flags_pac_was_given_implicitly,
+ NULL
+};
+
+static int
+dissect_krb5_PAC_ATTRIBUTES_INFO(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_attributes_info, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_attributes_info);
+
+ /* flags length*/
+ proto_tree_add_item(tree, hf_krb_pac_attributes_info_length, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset+=4;
+
+ /* flags */
+ proto_tree_add_bitmask(tree, tvb, offset,
+ hf_krb_pac_attributes_info_flags,
+ ett_krb_pac_attributes_info_flags,
+ hf_krb_pac_attributes_info_flags_fields,
+ ENC_LITTLE_ENDIAN);
+ offset+=4;
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_REQUESTER_SID(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_requester_sid, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_requester_sid);
+
+ offset = dissect_nt_sid(tvb, offset, tree, "RequesterSid", NULL, -1);
+
+ return offset;
+}
+
+static int
+dissect_krb5_PAC_FULL_CHECKSUM(proto_tree *parent_tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx _U_)
+{
+ proto_item *item;
+ proto_tree *tree;
+
+ item = proto_tree_add_item(parent_tree, hf_krb_pac_full_checksum, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_krb_pac_full_checksum);
+
+ /* signature type */
+ proto_tree_add_item(tree, hf_krb_pac_signature_type, tvb, offset, 4, ENC_LITTLE_ENDIAN);
+ offset+=4;
+
+ /* signature data */
+ proto_tree_add_item(tree, hf_krb_pac_signature_signature, tvb, offset, -1, ENC_NA);
+
+ return offset;
+}
+
static int
dissect_krb5_AD_WIN2K_PAC_struct(proto_tree *tree, tvbuff_t *tvb, int offset, asn1_ctx_t *actx)
{
@@ -4564,6 +4981,15 @@ dissect_krb5_AD_WIN2K_PAC_struct(proto_tree *tree, tvbuff_t *tvb, int offset, as
case PAC_TICKET_CHECKSUM:
dissect_krb5_PAC_TICKET_CHECKSUM(tr, next_tvb, 0, actx);
break;
+ case PAC_ATTRIBUTES_INFO:
+ dissect_krb5_PAC_ATTRIBUTES_INFO(tr, next_tvb, 0, actx);
+ break;
+ case PAC_REQUESTER_SID:
+ dissect_krb5_PAC_REQUESTER_SID(tr, next_tvb, 0, actx);
+ break;
+ case PAC_FULL_CHECKSUM:
+ dissect_krb5_PAC_FULL_CHECKSUM(tr, next_tvb, 0, actx);
+ break;
default:
break;
@@ -4572,7 +4998,7 @@ dissect_krb5_AD_WIN2K_PAC_struct(proto_tree *tree, tvbuff_t *tvb, int offset, as
}
static int
-dissect_krb5_AD_WIN2K_PAC(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_)
+dissect_krb5_AD_WIN2K_PAC(bool implicit_tag _U_, tvbuff_t *tvb, int offset, asn1_ctx_t *actx, proto_tree *tree, int hf_index _U_)
{
guint32 entries;
guint32 version;
@@ -4600,12 +5026,9 @@ dissect_krb5_AD_WIN2K_PAC(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset,
}
-/*--- Included file: packet-kerberos-fn.c ---*/
-#line 1 "./asn1/kerberos/packet-kerberos-fn.c"
-
static int
-dissect_kerberos_INTEGER_5(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_INTEGER_5(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -4615,7 +5038,7 @@ dissect_kerberos_INTEGER_5(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
-dissect_kerberos_KerberosString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KerberosString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
actx, tree, tvb, offset, hf_index,
NULL);
@@ -4626,7 +5049,7 @@ dissect_kerberos_KerberosString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
-dissect_kerberos_Realm(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Realm(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_kerberos_KerberosString(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
@@ -4658,7 +5081,7 @@ static const value_string kerberos_NAME_TYPE_vals[] = {
static int
-dissect_kerberos_NAME_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_NAME_TYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -4668,7 +5091,7 @@ dissect_kerberos_NAME_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
-dissect_kerberos_SNameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SNameString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
actx, tree, tvb, offset, hf_index,
NULL);
@@ -4682,7 +5105,7 @@ static const ber_sequence_t SEQUENCE_OF_SNameString_sequence_of[1] = {
};
static int
-dissect_kerberos_SEQUENCE_OF_SNameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_OF_SNameString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_SNameString_sequence_of, hf_index, ett_kerberos_SEQUENCE_OF_SNameString);
@@ -4697,7 +5120,7 @@ static const ber_sequence_t SName_sequence[] = {
};
static int
-dissect_kerberos_SName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SName_sequence, hf_index, ett_kerberos_SName);
@@ -4744,22 +5167,20 @@ static const value_string kerberos_ENCTYPE_vals[] = {
static int
-dissect_kerberos_ENCTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 323 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_ENCTYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->etype));
-
return offset;
}
static int
-dissect_kerberos_UInt32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_UInt32(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -4769,8 +5190,7 @@ dissect_kerberos_UInt32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
-dissect_kerberos_T_encryptedTicketData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 327 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedTicketData_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_ticket_data);
#else
@@ -4780,7 +5200,6 @@ dissect_kerberos_T_encryptedTicketData_cipher(gboolean implicit_tag _U_, tvbuff_
#endif
-
return offset;
}
@@ -4793,7 +5212,7 @@ static const ber_sequence_t EncryptedTicketData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedTicketData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedTicketData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedTicketData_sequence, hf_index, ett_kerberos_EncryptedTicketData);
@@ -4810,7 +5229,7 @@ static const ber_sequence_t Ticket_U_sequence[] = {
};
static int
-dissect_kerberos_Ticket_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Ticket_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Ticket_U_sequence, hf_index, ett_kerberos_Ticket_U);
@@ -4820,7 +5239,7 @@ dissect_kerberos_Ticket_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
-dissect_kerberos_Ticket(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Ticket(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 1, FALSE, dissect_kerberos_Ticket_U);
@@ -4830,7 +5249,7 @@ dissect_kerberos_Ticket(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
-dissect_kerberos_CNameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_CNameString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
actx, tree, tvb, offset, hf_index,
NULL);
@@ -4844,7 +5263,7 @@ static const ber_sequence_t SEQUENCE_OF_CNameString_sequence_of[1] = {
};
static int
-dissect_kerberos_SEQUENCE_OF_CNameString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_OF_CNameString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_CNameString_sequence_of, hf_index, ett_kerberos_SEQUENCE_OF_CNameString);
@@ -4859,7 +5278,7 @@ static const ber_sequence_t CName_sequence[] = {
};
static int
-dissect_kerberos_CName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_CName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
CName_sequence, hf_index, ett_kerberos_CName);
@@ -4896,23 +5315,20 @@ static const value_string kerberos_CKSUMTYPE_vals[] = {
static int
-dissect_kerberos_CKSUMTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 383 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_CKSUMTYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->checksum_type));
-
return offset;
}
static int
-dissect_kerberos_T_checksum(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 387 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_checksum(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *next_tvb;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -4927,7 +5343,6 @@ dissect_kerberos_T_checksum(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
}
-
return offset;
}
@@ -4939,7 +5354,7 @@ static const ber_sequence_t Checksum_sequence[] = {
};
static int
-dissect_kerberos_Checksum(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Checksum(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Checksum_sequence, hf_index, ett_kerberos_Checksum);
@@ -4949,7 +5364,7 @@ dissect_kerberos_Checksum(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
-dissect_kerberos_Microseconds(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Microseconds(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -4959,7 +5374,7 @@ dissect_kerberos_Microseconds(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KerberosTime(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_GeneralizedTime(implicit_tag, actx, tree, tvb, offset, hf_index);
return offset;
@@ -4968,7 +5383,7 @@ dissect_kerberos_KerberosTime(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_Int32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Int32(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -4978,8 +5393,7 @@ dissect_kerberos_Int32(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
-dissect_kerberos_T_keytype(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 401 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_keytype(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
private_data->key_hidden_item = proto_tree_add_item(tree, hf_krb_key_hidden_item,
@@ -4993,15 +5407,13 @@ dissect_kerberos_T_keytype(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
private_data->key.keytype = gbl_keytype;
-
return offset;
}
static int
-dissect_kerberos_T_keyvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 414 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_keyvalue(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
tvbuff_t *out_tvb;
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
@@ -5015,7 +5427,6 @@ dissect_kerberos_T_keyvalue(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
private_data->key_tvb = out_tvb;
-
return offset;
}
@@ -5027,8 +5438,7 @@ static const ber_sequence_t EncryptionKey_sequence[] = {
};
static int
-dissect_kerberos_EncryptionKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 425 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_EncryptionKey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
#ifdef HAVE_KERBEROS
int start_offset = offset;
@@ -5050,15 +5460,13 @@ dissect_kerberos_EncryptionKey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-
return offset;
}
static int
-dissect_kerberos_T_authenticator_subkey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 444 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_authenticator_subkey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
@@ -5072,7 +5480,6 @@ dissect_kerberos_T_authenticator_subkey(gboolean implicit_tag _U_, tvbuff_t *tvb
private_data->save_encryption_key_fn = saved_encryption_key_fn;
-
return offset;
}
@@ -5106,23 +5513,20 @@ static const value_string kerberos_AUTHDATA_TYPE_vals[] = {
static int
-dissect_kerberos_AUTHDATA_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 525 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_AUTHDATA_TYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->ad_type));
-
return offset;
}
static int
-dissect_kerberos_T_ad_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 529 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_ad_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
switch(private_data->ad_type){
@@ -5153,7 +5557,6 @@ dissect_kerberos_T_ad_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
}
-
return offset;
}
@@ -5165,7 +5568,7 @@ static const ber_sequence_t AuthorizationData_item_sequence[] = {
};
static int
-dissect_kerberos_AuthorizationData_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AuthorizationData_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
AuthorizationData_item_sequence, hf_index, ett_kerberos_AuthorizationData_item);
@@ -5178,7 +5581,7 @@ static const ber_sequence_t AuthorizationData_sequence_of[1] = {
};
static int
-dissect_kerberos_AuthorizationData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AuthorizationData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
AuthorizationData_sequence_of, hf_index, ett_kerberos_AuthorizationData);
@@ -5200,7 +5603,7 @@ static const ber_sequence_t Authenticator_U_sequence[] = {
};
static int
-dissect_kerberos_Authenticator_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Authenticator_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
Authenticator_U_sequence, hf_index, ett_kerberos_Authenticator_U);
@@ -5210,7 +5613,7 @@ dissect_kerberos_Authenticator_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
-dissect_kerberos_Authenticator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Authenticator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 2, FALSE, dissect_kerberos_Authenticator_U);
@@ -5240,7 +5643,7 @@ static int * const TicketFlags_bits[] = {
};
static int
-dissect_kerberos_TicketFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_TicketFlags(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
TicketFlags_bits, 17, hf_index, ett_kerberos_TicketFlags,
NULL);
@@ -5251,8 +5654,7 @@ dissect_kerberos_TicketFlags(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
-dissect_kerberos_T_encTicketPart_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 489 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encTicketPart_key(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
@@ -5266,14 +5668,13 @@ dissect_kerberos_T_encTicketPart_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U
private_data->save_encryption_key_fn = saved_encryption_key_fn;
-
return offset;
}
static int
-dissect_kerberos_OCTET_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_OCTET_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_octet_string(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -5288,7 +5689,7 @@ static const ber_sequence_t TransitedEncoding_sequence[] = {
};
static int
-dissect_kerberos_TransitedEncoding(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_TransitedEncoding(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
TransitedEncoding_sequence, hf_index, ett_kerberos_TransitedEncoding);
@@ -5310,25 +5711,22 @@ static const value_string kerberos_ADDR_TYPE_vals[] = {
static int
-dissect_kerberos_ADDR_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 562 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_ADDR_TYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->addr_type));
-
return offset;
}
static int
-dissect_kerberos_T_address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 272 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_address(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
gint8 appclass;
- gboolean pc;
+ bool pc;
gint32 tag;
guint32 len;
const char *address_str;
@@ -5375,7 +5773,6 @@ dissect_kerberos_T_address(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
-
return offset;
}
@@ -5387,7 +5784,7 @@ static const ber_sequence_t HostAddress_sequence[] = {
};
static int
-dissect_kerberos_HostAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_HostAddress(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
HostAddress_sequence, hf_index, ett_kerberos_HostAddress);
@@ -5400,7 +5797,7 @@ static const ber_sequence_t HostAddresses_sequence_of[1] = {
};
static int
-dissect_kerberos_HostAddresses(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_HostAddresses(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
HostAddresses_sequence_of, hf_index, ett_kerberos_HostAddresses);
@@ -5424,7 +5821,7 @@ static const ber_sequence_t EncTicketPart_U_sequence[] = {
};
static int
-dissect_kerberos_EncTicketPart_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncTicketPart_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncTicketPart_U_sequence, hf_index, ett_kerberos_EncTicketPart_U);
@@ -5434,7 +5831,7 @@ dissect_kerberos_EncTicketPart_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static int
-dissect_kerberos_EncTicketPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncTicketPart(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 3, FALSE, dissect_kerberos_EncTicketPart_U);
@@ -5460,8 +5857,7 @@ static const value_string kerberos_MESSAGE_TYPE_vals[] = {
static int
-dissect_kerberos_MESSAGE_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 100 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_MESSAGE_TYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
guint32 msgtype;
@@ -5470,8 +5866,6 @@ dissect_kerberos_MESSAGE_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
-
-#line 106 "./asn1/kerberos/kerberos.cnf"
if (gbl_do_col_info) {
col_add_str(actx->pinfo->cinfo, COL_INFO,
val_to_str(msgtype, krb5_msg_types,
@@ -5487,7 +5881,6 @@ dissect_kerberos_MESSAGE_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
private_data->msg_type = msgtype;
}
-
return offset;
}
@@ -5553,7 +5946,10 @@ static const value_string kerberos_PADATA_TYPE_vals[] = {
{ KERBEROS_PA_PKINIT_KX, "pA-PKINIT-KX" },
{ KERBEROS_PA_PKU2U_NAME, "pA-PKU2U-NAME" },
{ KERBEROS_PA_REQ_ENC_PA_REP, "pA-REQ-ENC-PA-REP" },
+ { KERBEROS_PA_AS_FRESHNESS, "pA-AS-FRESHNESS" },
{ KERBEROS_PA_SPAKE, "pA-SPAKE" },
+ { KERBEROS_PA_REDHAT_IDP_OAUTH2, "pA-REDHAT-IDP-OAUTH2" },
+ { KERBEROS_PA_REDHAT_PASSKEY, "pA-REDHAT-PASSKEY" },
{ KERBEROS_PA_KERB_KEY_LIST_REQ, "pA-KERB-KEY-LIST-REQ" },
{ KERBEROS_PA_KERB_KEY_LIST_REP, "pA-KERB-KEY-LIST-REP" },
{ KERBEROS_PA_SUPPORTED_ETYPES, "pA-SUPPORTED-ETYPES" },
@@ -5565,30 +5961,25 @@ static const value_string kerberos_PADATA_TYPE_vals[] = {
static int
-dissect_kerberos_PADATA_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 165 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_PADATA_TYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->padata_type));
-
-#line 168 "./asn1/kerberos/kerberos.cnf"
if(tree){
proto_item_append_text(tree, " %s",
val_to_str(private_data->padata_type, kerberos_PADATA_TYPE_vals,
"Unknown:%d"));
}
-
return offset;
}
static int
-dissect_kerberos_T_padata_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 175 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_padata_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
proto_tree *sub_tree=tree;
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
@@ -5651,7 +6042,7 @@ dissect_kerberos_T_padata_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
break;
case KERBEROS_PA_FX_FAST:
if (kerberos_private_is_kdc_req(private_data)) {
- offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_FX_FAST_REQUEST);
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_defer_PA_FX_FAST_REQUEST);
}else{
offset=dissect_ber_octet_string_wcb(FALSE, actx, sub_tree, tvb, offset,hf_index, dissect_kerberos_PA_FX_FAST_REPLY);
}
@@ -5686,7 +6077,6 @@ dissect_kerberos_T_padata_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
}
-
return offset;
}
@@ -5698,7 +6088,7 @@ static const ber_sequence_t PA_DATA_sequence[] = {
};
static int
-dissect_kerberos_PA_DATA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_DATA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_DATA_sequence, hf_index, ett_kerberos_PA_DATA);
@@ -5706,14 +6096,41 @@ dissect_kerberos_PA_DATA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
}
-static const ber_sequence_t SEQUENCE_OF_PA_DATA_sequence_of[1] = {
- { &hf_kerberos_padata_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_kerberos_PA_DATA },
+static const ber_sequence_t T_rEQ_SEQUENCE_OF_PA_DATA_sequence_of[1] = {
+ { &hf_kerberos_rEQ_SEQUENCE_OF_PA_DATA_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_kerberos_PA_DATA },
};
static int
-dissect_kerberos_SEQUENCE_OF_PA_DATA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
+ struct _kerberos_PA_FX_FAST_REQUEST saved_stack = private_data->PA_FX_FAST_REQUEST;
+
+ /*
+ * we need to defer calling dissect_kerberos_PA_FX_FAST_REQUEST,
+ * see dissect_kerberos_defer_PA_FX_FAST_REQUEST()
+ */
+ private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = TRUE, };
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
- SEQUENCE_OF_PA_DATA_sequence_of, hf_index, ett_kerberos_SEQUENCE_OF_PA_DATA);
+ T_rEQ_SEQUENCE_OF_PA_DATA_sequence_of, hf_index, ett_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA);
+
+ if (private_data->PA_FX_FAST_REQUEST.tvb != NULL) {
+ struct _kerberos_PA_FX_FAST_REQUEST used_stack = private_data->PA_FX_FAST_REQUEST;
+ private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = FALSE, };
+
+ /*
+ * dissect_kerberos_defer_PA_FX_FAST_REQUEST() remembered
+ * a tvb, so replay dissect_kerberos_PA_FX_FAST_REQUEST()
+ * here.
+ */
+ dissect_kerberos_PA_FX_FAST_REQUEST(FALSE,
+ used_stack.tvb,
+ 0,
+ actx,
+ used_stack.tree,
+ -1);
+ }
+ private_data->PA_FX_FAST_REQUEST = saved_stack;
+
return offset;
}
@@ -5756,7 +6173,7 @@ static int * const KDCOptions_bits[] = {
};
static int
-dissect_kerberos_KDCOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KDCOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
KDCOptions_bits, 32, hf_index, ett_kerberos_KDCOptions,
NULL);
@@ -5770,7 +6187,7 @@ static const ber_sequence_t SEQUENCE_OF_ENCTYPE_sequence_of[1] = {
};
static int
-dissect_kerberos_SEQUENCE_OF_ENCTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_OF_ENCTYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_ENCTYPE_sequence_of, hf_index, ett_kerberos_SEQUENCE_OF_ENCTYPE);
@@ -5780,8 +6197,7 @@ dissect_kerberos_SEQUENCE_OF_ENCTYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static int
-dissect_kerberos_T_encryptedAuthorizationData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 334 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedAuthorizationData_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authorization_data);
#else
@@ -5791,7 +6207,6 @@ dissect_kerberos_T_encryptedAuthorizationData_cipher(gboolean implicit_tag _U_,
#endif
-
return offset;
}
@@ -5804,7 +6219,7 @@ static const ber_sequence_t EncryptedAuthorizationData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedAuthorizationData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedAuthorizationData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedAuthorizationData_sequence, hf_index, ett_kerberos_EncryptedAuthorizationData);
@@ -5817,7 +6232,7 @@ static const ber_sequence_t SEQUENCE_OF_Ticket_sequence_of[1] = {
};
static int
-dissect_kerberos_SEQUENCE_OF_Ticket(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_OF_Ticket(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_Ticket_sequence_of, hf_index, ett_kerberos_SEQUENCE_OF_Ticket);
@@ -5842,8 +6257,7 @@ static const ber_sequence_t KDC_REQ_BODY_sequence[] = {
};
static int
-dissect_kerberos_KDC_REQ_BODY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 566 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_KDC_REQ_BODY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
conversation_t *conversation;
/*
@@ -5855,10 +6269,10 @@ dissect_kerberos_KDC_REQ_BODY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
* http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-kerberos-clarifications-07.txt
*/
if (actx->pinfo->destport == UDP_PORT_KERBEROS && actx->pinfo->ptype == PT_UDP) {
- conversation = find_conversation(actx->pinfo->num, &actx->pinfo->src, &actx->pinfo->dst, ENDPOINT_UDP,
+ conversation = find_conversation(actx->pinfo->num, &actx->pinfo->src, &actx->pinfo->dst, CONVERSATION_UDP,
actx->pinfo->srcport, 0, NO_PORT_B);
if (conversation == NULL) {
- conversation = conversation_new(actx->pinfo->num, &actx->pinfo->src, &actx->pinfo->dst, ENDPOINT_UDP,
+ conversation = conversation_new(actx->pinfo->num, &actx->pinfo->src, &actx->pinfo->dst, CONVERSATION_UDP,
actx->pinfo->srcport, 0, NO_PORT2);
conversation_set_dissector(conversation, kerberos_handle_udp);
}
@@ -5869,7 +6283,6 @@ dissect_kerberos_KDC_REQ_BODY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
-
return offset;
}
@@ -5877,13 +6290,13 @@ dissect_kerberos_KDC_REQ_BODY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static const ber_sequence_t KDC_REQ_sequence[] = {
{ &hf_kerberos_pvno , BER_CLASS_CON, 1, 0, dissect_kerberos_INTEGER_5 },
{ &hf_kerberos_msg_type , BER_CLASS_CON, 2, 0, dissect_kerberos_MESSAGE_TYPE },
- { &hf_kerberos_padata , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_kerberos_SEQUENCE_OF_PA_DATA },
+ { &hf_kerberos_rEQ_SEQUENCE_OF_PA_DATA, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA },
{ &hf_kerberos_req_body , BER_CLASS_CON, 4, 0, dissect_kerberos_KDC_REQ_BODY },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_kerberos_KDC_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KDC_REQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KDC_REQ_sequence, hf_index, ett_kerberos_KDC_REQ);
@@ -5893,7 +6306,7 @@ dissect_kerberos_KDC_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
-dissect_kerberos_AS_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AS_REQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 10, FALSE, dissect_kerberos_KDC_REQ);
@@ -5901,10 +6314,24 @@ dissect_kerberos_AS_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
}
+static const ber_sequence_t T_rEP_SEQUENCE_OF_PA_DATA_sequence_of[1] = {
+ { &hf_kerberos_rEP_SEQUENCE_OF_PA_DATA_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_kerberos_PA_DATA },
+};
static int
-dissect_kerberos_T_encryptedKDCREPData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 348 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_rEP_SEQUENCE_OF_PA_DATA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+ T_rEP_SEQUENCE_OF_PA_DATA_sequence_of, hf_index, ett_kerberos_T_rEP_SEQUENCE_OF_PA_DATA);
+
+
+
+ return offset;
+}
+
+
+
+static int
+dissect_kerberos_T_encryptedKDCREPData_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KDC_REP_data);
#else
@@ -5914,7 +6341,6 @@ dissect_kerberos_T_encryptedKDCREPData_cipher(gboolean implicit_tag _U_, tvbuff_
#endif
-
return offset;
}
@@ -5927,7 +6353,7 @@ static const ber_sequence_t EncryptedKDCREPData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedKDCREPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedKDCREPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedKDCREPData_sequence, hf_index, ett_kerberos_EncryptedKDCREPData);
@@ -5938,7 +6364,7 @@ dissect_kerberos_EncryptedKDCREPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U
static const ber_sequence_t KDC_REP_sequence[] = {
{ &hf_kerberos_pvno , BER_CLASS_CON, 0, 0, dissect_kerberos_INTEGER_5 },
{ &hf_kerberos_msg_type , BER_CLASS_CON, 1, 0, dissect_kerberos_MESSAGE_TYPE },
- { &hf_kerberos_padata , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_kerberos_SEQUENCE_OF_PA_DATA },
+ { &hf_kerberos_rEP_SEQUENCE_OF_PA_DATA, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_kerberos_T_rEP_SEQUENCE_OF_PA_DATA },
{ &hf_kerberos_crealm , BER_CLASS_CON, 3, 0, dissect_kerberos_Realm },
{ &hf_kerberos_cname , BER_CLASS_CON, 4, 0, dissect_kerberos_CName },
{ &hf_kerberos_ticket , BER_CLASS_CON, 5, 0, dissect_kerberos_Ticket },
@@ -5947,7 +6373,7 @@ static const ber_sequence_t KDC_REP_sequence[] = {
};
static int
-dissect_kerberos_KDC_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KDC_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KDC_REP_sequence, hf_index, ett_kerberos_KDC_REP);
@@ -5957,7 +6383,7 @@ dissect_kerberos_KDC_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
-dissect_kerberos_AS_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AS_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 11, FALSE, dissect_kerberos_KDC_REP);
@@ -5967,7 +6393,7 @@ dissect_kerberos_AS_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
-dissect_kerberos_TGS_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_TGS_REQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 12, FALSE, dissect_kerberos_KDC_REQ);
@@ -5977,7 +6403,7 @@ dissect_kerberos_TGS_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
-dissect_kerberos_TGS_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_TGS_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 13, FALSE, dissect_kerberos_KDC_REP);
@@ -5993,7 +6419,7 @@ static int * const APOptions_bits[] = {
};
static int
-dissect_kerberos_APOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_APOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
APOptions_bits, 3, hf_index, ett_kerberos_APOptions,
NULL);
@@ -6004,8 +6430,7 @@ dissect_kerberos_APOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int off
static int
-dissect_kerberos_T_encryptedAuthenticator_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 341 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedAuthenticator_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_authenticator_data);
#else
@@ -6015,7 +6440,6 @@ dissect_kerberos_T_encryptedAuthenticator_cipher(gboolean implicit_tag _U_, tvbu
#endif
-
return offset;
}
@@ -6028,7 +6452,7 @@ static const ber_sequence_t EncryptedAuthenticator_sequence[] = {
};
static int
-dissect_kerberos_EncryptedAuthenticator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedAuthenticator(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedAuthenticator_sequence, hf_index, ett_kerberos_EncryptedAuthenticator);
@@ -6046,7 +6470,7 @@ static const ber_sequence_t AP_REQ_U_sequence[] = {
};
static int
-dissect_kerberos_AP_REQ_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AP_REQ_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
AP_REQ_U_sequence, hf_index, ett_kerberos_AP_REQ_U);
@@ -6056,7 +6480,7 @@ dissect_kerberos_AP_REQ_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
-dissect_kerberos_AP_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AP_REQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 14, FALSE, dissect_kerberos_AP_REQ_U);
@@ -6066,8 +6490,7 @@ dissect_kerberos_AP_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
-dissect_kerberos_T_encryptedAPREPData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 362 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedAPREPData_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_AP_REP_data);
#else
@@ -6077,7 +6500,6 @@ dissect_kerberos_T_encryptedAPREPData_cipher(gboolean implicit_tag _U_, tvbuff_t
#endif
-
return offset;
}
@@ -6090,7 +6512,7 @@ static const ber_sequence_t EncryptedAPREPData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedAPREPData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedAPREPData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedAPREPData_sequence, hf_index, ett_kerberos_EncryptedAPREPData);
@@ -6106,7 +6528,7 @@ static const ber_sequence_t AP_REP_U_sequence[] = {
};
static int
-dissect_kerberos_AP_REP_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AP_REP_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
AP_REP_U_sequence, hf_index, ett_kerberos_AP_REP_U);
@@ -6116,7 +6538,7 @@ dissect_kerberos_AP_REP_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
-dissect_kerberos_AP_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AP_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 15, FALSE, dissect_kerberos_AP_REP_U);
@@ -6126,8 +6548,7 @@ dissect_kerberos_AP_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset
static int
-dissect_kerberos_T_kRB_SAFE_BODY_user_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 589 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_kRB_SAFE_BODY_user_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
tvbuff_t *new_tvb;
offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb);
@@ -6136,7 +6557,6 @@ dissect_kerberos_T_kRB_SAFE_BODY_user_data(gboolean implicit_tag _U_, tvbuff_t *
}
-
return offset;
}
@@ -6152,7 +6572,7 @@ static const ber_sequence_t KRB_SAFE_BODY_sequence[] = {
};
static int
-dissect_kerberos_KRB_SAFE_BODY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_SAFE_BODY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KRB_SAFE_BODY_sequence, hf_index, ett_kerberos_KRB_SAFE_BODY);
@@ -6169,7 +6589,7 @@ static const ber_sequence_t KRB_SAFE_U_sequence[] = {
};
static int
-dissect_kerberos_KRB_SAFE_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_SAFE_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KRB_SAFE_U_sequence, hf_index, ett_kerberos_KRB_SAFE_U);
@@ -6179,7 +6599,7 @@ dissect_kerberos_KRB_SAFE_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
-dissect_kerberos_KRB_SAFE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_SAFE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 20, FALSE, dissect_kerberos_KRB_SAFE_U);
@@ -6189,8 +6609,7 @@ dissect_kerberos_KRB_SAFE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
-dissect_kerberos_T_encryptedKrbPrivData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 369 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedKrbPrivData_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PRIV_data);
#else
@@ -6200,7 +6619,6 @@ dissect_kerberos_T_encryptedKrbPrivData_cipher(gboolean implicit_tag _U_, tvbuff
#endif
-
return offset;
}
@@ -6213,7 +6631,7 @@ static const ber_sequence_t EncryptedKrbPrivData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedKrbPrivData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedKrbPrivData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedKrbPrivData_sequence, hf_index, ett_kerberos_EncryptedKrbPrivData);
@@ -6229,7 +6647,7 @@ static const ber_sequence_t KRB_PRIV_U_sequence[] = {
};
static int
-dissect_kerberos_KRB_PRIV_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_PRIV_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KRB_PRIV_U_sequence, hf_index, ett_kerberos_KRB_PRIV_U);
@@ -6239,7 +6657,7 @@ dissect_kerberos_KRB_PRIV_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
-dissect_kerberos_KRB_PRIV(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_PRIV(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 21, FALSE, dissect_kerberos_KRB_PRIV_U);
@@ -6249,8 +6667,7 @@ dissect_kerberos_KRB_PRIV(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
-dissect_kerberos_T_encryptedKrbCredData_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 376 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedKrbCredData_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_CRED_data);
#else
@@ -6260,7 +6677,6 @@ dissect_kerberos_T_encryptedKrbCredData_cipher(gboolean implicit_tag _U_, tvbuff
#endif
-
return offset;
}
@@ -6273,7 +6689,7 @@ static const ber_sequence_t EncryptedKrbCredData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedKrbCredData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedKrbCredData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedKrbCredData_sequence, hf_index, ett_kerberos_EncryptedKrbCredData);
@@ -6290,7 +6706,7 @@ static const ber_sequence_t KRB_CRED_U_sequence[] = {
};
static int
-dissect_kerberos_KRB_CRED_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_CRED_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KRB_CRED_U_sequence, hf_index, ett_kerberos_KRB_CRED_U);
@@ -6300,7 +6716,7 @@ dissect_kerberos_KRB_CRED_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
static int
-dissect_kerberos_KRB_CRED(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_CRED(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 22, FALSE, dissect_kerberos_KRB_CRED_U);
@@ -6310,8 +6726,7 @@ dissect_kerberos_KRB_CRED(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
static int
-dissect_kerberos_T_encKDCRepPart_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 468 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encKDCRepPart_key(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
@@ -6334,7 +6749,6 @@ dissect_kerberos_T_encKDCRepPart_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U
private_data->save_encryption_key_fn = saved_encryption_key_fn;
-
return offset;
}
@@ -6353,7 +6767,7 @@ static const value_string kerberos_LR_TYPE_vals[] = {
static int
-dissect_kerberos_LR_TYPE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_LR_TYPE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -6368,7 +6782,7 @@ static const ber_sequence_t LastReq_item_sequence[] = {
};
static int
-dissect_kerberos_LastReq_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_LastReq_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
LastReq_item_sequence, hf_index, ett_kerberos_LastReq_item);
@@ -6381,7 +6795,7 @@ static const ber_sequence_t LastReq_sequence_of[1] = {
};
static int
-dissect_kerberos_LastReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_LastReq(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
LastReq_sequence_of, hf_index, ett_kerberos_LastReq);
@@ -6394,7 +6808,7 @@ static const ber_sequence_t METHOD_DATA_sequence_of[1] = {
};
static int
-dissect_kerberos_METHOD_DATA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_METHOD_DATA(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
METHOD_DATA_sequence_of, hf_index, ett_kerberos_METHOD_DATA);
@@ -6404,18 +6818,14 @@ dissect_kerberos_METHOD_DATA(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
-dissect_kerberos_T_encrypted_pa_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 605 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encrypted_pa_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
private_data->is_enc_padata = TRUE;
-
offset = dissect_kerberos_METHOD_DATA(implicit_tag, tvb, offset, actx, tree, hf_index);
-#line 609 "./asn1/kerberos/kerberos.cnf"
private_data->is_enc_padata = FALSE;
-
return offset;
}
@@ -6438,7 +6848,7 @@ static const ber_sequence_t EncKDCRepPart_sequence[] = {
};
static int
-dissect_kerberos_EncKDCRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncKDCRepPart(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncKDCRepPart_sequence, hf_index, ett_kerberos_EncKDCRepPart);
@@ -6448,7 +6858,7 @@ dissect_kerberos_EncKDCRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_EncASRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncASRepPart(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 25, FALSE, dissect_kerberos_EncKDCRepPart);
@@ -6458,7 +6868,7 @@ dissect_kerberos_EncASRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_EncTGSRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncTGSRepPart(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 26, FALSE, dissect_kerberos_EncKDCRepPart);
@@ -6468,8 +6878,7 @@ dissect_kerberos_EncTGSRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_T_encAPRepPart_subkey(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 456 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encAPRepPart_subkey(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
@@ -6483,7 +6892,6 @@ dissect_kerberos_T_encAPRepPart_subkey(gboolean implicit_tag _U_, tvbuff_t *tvb
private_data->save_encryption_key_fn = saved_encryption_key_fn;
-
return offset;
}
@@ -6497,7 +6905,7 @@ static const ber_sequence_t EncAPRepPart_U_sequence[] = {
};
static int
-dissect_kerberos_EncAPRepPart_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncAPRepPart_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncAPRepPart_U_sequence, hf_index, ett_kerberos_EncAPRepPart_U);
@@ -6507,7 +6915,7 @@ dissect_kerberos_EncAPRepPart_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
-dissect_kerberos_EncAPRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncAPRepPart(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 27, FALSE, dissect_kerberos_EncAPRepPart_U);
@@ -6517,8 +6925,7 @@ dissect_kerberos_EncAPRepPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_T_encKrbPrivPart_user_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 597 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encKrbPrivPart_user_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
tvbuff_t *new_tvb;
offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_index, &new_tvb);
@@ -6527,7 +6934,6 @@ dissect_kerberos_T_encKrbPrivPart_user_data(gboolean implicit_tag _U_, tvbuff_t
}
-
return offset;
}
@@ -6543,7 +6949,7 @@ static const ber_sequence_t EncKrbPrivPart_sequence[] = {
};
static int
-dissect_kerberos_EncKrbPrivPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncKrbPrivPart(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncKrbPrivPart_sequence, hf_index, ett_kerberos_EncKrbPrivPart);
@@ -6553,7 +6959,7 @@ dissect_kerberos_EncKrbPrivPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
-dissect_kerberos_ENC_KRB_PRIV_PART(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_ENC_KRB_PRIV_PART(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 28, FALSE, dissect_kerberos_EncKrbPrivPart);
@@ -6563,8 +6969,7 @@ dissect_kerberos_ENC_KRB_PRIV_PART(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
-dissect_kerberos_T_krbCredInfo_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 501 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_krbCredInfo_key(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
@@ -6578,7 +6983,6 @@ dissect_kerberos_T_krbCredInfo_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
private_data->save_encryption_key_fn = saved_encryption_key_fn;
-
return offset;
}
@@ -6588,7 +6992,7 @@ static const ber_sequence_t SEQUENCE_OF_KerberosString_sequence_of[1] = {
};
static int
-dissect_kerberos_SEQUENCE_OF_KerberosString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_OF_KerberosString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_KerberosString_sequence_of, hf_index, ett_kerberos_SEQUENCE_OF_KerberosString);
@@ -6603,7 +7007,7 @@ static const ber_sequence_t PrincipalName_sequence[] = {
};
static int
-dissect_kerberos_PrincipalName(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PrincipalName(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PrincipalName_sequence, hf_index, ett_kerberos_PrincipalName);
@@ -6627,7 +7031,7 @@ static const ber_sequence_t KrbCredInfo_sequence[] = {
};
static int
-dissect_kerberos_KrbCredInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KrbCredInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbCredInfo_sequence, hf_index, ett_kerberos_KrbCredInfo);
@@ -6640,7 +7044,7 @@ static const ber_sequence_t SEQUENCE_OF_KrbCredInfo_sequence_of[1] = {
};
static int
-dissect_kerberos_SEQUENCE_OF_KrbCredInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_OF_KrbCredInfo(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_OF_KrbCredInfo_sequence_of, hf_index, ett_kerberos_SEQUENCE_OF_KrbCredInfo);
@@ -6659,7 +7063,7 @@ static const ber_sequence_t EncKrbCredPart_U_sequence[] = {
};
static int
-dissect_kerberos_EncKrbCredPart_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncKrbCredPart_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncKrbCredPart_U_sequence, hf_index, ett_kerberos_EncKrbCredPart_U);
@@ -6669,7 +7073,7 @@ dissect_kerberos_EncKrbCredPart_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
-dissect_kerberos_EncKrbCredPart(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncKrbCredPart(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 29, FALSE, dissect_kerberos_EncKrbCredPart_U);
@@ -6752,16 +7156,13 @@ static const value_string kerberos_ERROR_CODE_vals[] = {
static int
-dissect_kerberos_ERROR_CODE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 122 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_ERROR_CODE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&private_data->errorcode);
-
-#line 126 "./asn1/kerberos/kerberos.cnf"
if (private_data->errorcode) {
col_add_fstr(actx->pinfo->cinfo, COL_INFO,
"KRB Error: %s",
@@ -6769,15 +7170,13 @@ dissect_kerberos_ERROR_CODE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int of
"Unknown error code %#x"));
}
-
return offset;
}
static int
-dissect_kerberos_T_e_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 135 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_e_data(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
switch (private_data->errorcode) {
@@ -6799,7 +7198,7 @@ dissect_kerberos_T_e_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
case KRB5_ET_KDC_ERR_MORE_PREAUTH_DATA_REQUIRED:
case KRB5_ET_KDC_ERR_PREAUTH_BAD_AUTHENTICATION_SET:
case KRB5_ET_KDC_ERR_UNKNOWN_CRITICAL_FAST_OPTIONS:
- offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, dissect_kerberos_SEQUENCE_OF_PA_DATA);
+ offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, dissect_kerberos_T_rEP_SEQUENCE_OF_PA_DATA);
break;
default:
offset=dissect_ber_octet_string(FALSE, actx, tree, tvb, offset, hf_kerberos_e_data, NULL);
@@ -6808,7 +7207,6 @@ dissect_kerberos_T_e_data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
-
return offset;
}
@@ -6832,7 +7230,7 @@ static const ber_sequence_t KRB_ERROR_U_sequence[] = {
};
static int
-dissect_kerberos_KRB_ERROR_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_ERROR_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KRB_ERROR_U_sequence, hf_index, ett_kerberos_KRB_ERROR_U);
@@ -6842,7 +7240,7 @@ dissect_kerberos_KRB_ERROR_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
-dissect_kerberos_KRB_ERROR(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KRB_ERROR(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_APP, 30, FALSE, dissect_kerberos_KRB_ERROR_U);
@@ -6873,7 +7271,7 @@ static const ber_choice_t Applications_choice[] = {
};
static int
-dissect_kerberos_Applications(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_Applications(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
Applications_choice, hf_index, ett_kerberos_Applications,
NULL);
@@ -6884,8 +7282,7 @@ dissect_kerberos_Applications(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_T_pA_ENC_TIMESTAMP_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 355 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_pA_ENC_TIMESTAMP_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_PA_ENC_TIMESTAMP);
#else
@@ -6895,7 +7292,6 @@ dissect_kerberos_T_pA_ENC_TIMESTAMP_cipher(gboolean implicit_tag _U_, tvbuff_t *
#endif
-
return offset;
}
@@ -6908,7 +7304,7 @@ static const ber_sequence_t PA_ENC_TIMESTAMP_sequence[] = {
};
static int
-dissect_kerberos_PA_ENC_TIMESTAMP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_ENC_TIMESTAMP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_ENC_TIMESTAMP_sequence, hf_index, ett_kerberos_PA_ENC_TIMESTAMP);
@@ -6923,7 +7319,7 @@ static const ber_sequence_t ETYPE_INFO_ENTRY_sequence[] = {
};
static int
-dissect_kerberos_ETYPE_INFO_ENTRY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_ETYPE_INFO_ENTRY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ETYPE_INFO_ENTRY_sequence, hf_index, ett_kerberos_ETYPE_INFO_ENTRY);
@@ -6936,7 +7332,7 @@ static const ber_sequence_t ETYPE_INFO_sequence_of[1] = {
};
static int
-dissect_kerberos_ETYPE_INFO(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_ETYPE_INFO(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
ETYPE_INFO_sequence_of, hf_index, ett_kerberos_ETYPE_INFO);
@@ -6952,7 +7348,7 @@ static const ber_sequence_t ETYPE_INFO2_ENTRY_sequence[] = {
};
static int
-dissect_kerberos_ETYPE_INFO2_ENTRY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_ETYPE_INFO2_ENTRY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ETYPE_INFO2_ENTRY_sequence, hf_index, ett_kerberos_ETYPE_INFO2_ENTRY);
@@ -6965,7 +7361,7 @@ static const ber_sequence_t ETYPE_INFO2_sequence_of[1] = {
};
static int
-dissect_kerberos_ETYPE_INFO2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_ETYPE_INFO2(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
ETYPE_INFO2_sequence_of, hf_index, ett_kerberos_ETYPE_INFO2);
@@ -6975,7 +7371,7 @@ dissect_kerberos_ETYPE_INFO2(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
-dissect_kerberos_AD_IF_RELEVANT(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_AD_IF_RELEVANT(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_kerberos_AuthorizationData(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
@@ -6991,7 +7387,7 @@ static const ber_sequence_t TGT_REQ_sequence[] = {
};
int
-dissect_kerberos_TGT_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_TGT_REQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
TGT_REQ_sequence, hf_index, ett_kerberos_TGT_REQ);
@@ -7007,7 +7403,7 @@ static const ber_sequence_t TGT_REP_sequence[] = {
};
int
-dissect_kerberos_TGT_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_TGT_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
TGT_REP_sequence, hf_index, ett_kerberos_TGT_REP);
@@ -7017,7 +7413,7 @@ dissect_kerberos_TGT_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offse
static int
-dissect_kerberos_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_BOOLEAN(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_boolean(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
return offset;
@@ -7030,7 +7426,7 @@ static const ber_sequence_t PA_PAC_REQUEST_sequence[] = {
};
static int
-dissect_kerberos_PA_PAC_REQUEST(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_PAC_REQUEST(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_PAC_REQUEST_sequence, hf_index, ett_kerberos_PA_PAC_REQUEST);
@@ -7040,7 +7436,7 @@ dissect_kerberos_PA_PAC_REQUEST(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
static int
-dissect_kerberos_GeneralString(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_GeneralString(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GeneralString,
actx, tree, tvb, offset, hf_index,
NULL);
@@ -7058,7 +7454,7 @@ static const ber_sequence_t PA_S4U2Self_sequence[] = {
};
static int
-dissect_kerberos_PA_S4U2Self(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_S4U2Self(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_S4U2Self_sequence, hf_index, ett_kerberos_PA_S4U2Self);
@@ -7068,19 +7464,17 @@ dissect_kerberos_PA_S4U2Self(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
static int
-dissect_kerberos_T_subject_certificate(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 559 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_subject_certificate(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset=dissect_ber_octet_string_wcb(implicit_tag, actx, tree, tvb, offset,hf_index, dissect_x509af_Certificate);
-
return offset;
}
static int
-dissect_kerberos_BIT_STRING(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_BIT_STRING(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
NULL, 0, hf_index, -1,
NULL);
@@ -7099,7 +7493,7 @@ static const ber_sequence_t S4UUserID_sequence[] = {
};
static int
-dissect_kerberos_S4UUserID(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_S4UUserID(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
S4UUserID_sequence, hf_index, ett_kerberos_S4UUserID);
@@ -7114,7 +7508,7 @@ static const ber_sequence_t PA_S4U_X509_USER_sequence[] = {
};
static int
-dissect_kerberos_PA_S4U_X509_USER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_S4U_X509_USER(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_S4U_X509_USER_sequence, hf_index, ett_kerberos_PA_S4U_X509_USER);
@@ -7131,7 +7525,7 @@ static int * const PAC_OPTIONS_FLAGS_bits[] = {
};
static int
-dissect_kerberos_PAC_OPTIONS_FLAGS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PAC_OPTIONS_FLAGS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
PAC_OPTIONS_FLAGS_bits, 4, hf_index, ett_kerberos_PAC_OPTIONS_FLAGS,
NULL);
@@ -7146,7 +7540,7 @@ static const ber_sequence_t PA_PAC_OPTIONS_sequence[] = {
};
static int
-dissect_kerberos_PA_PAC_OPTIONS(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_PAC_OPTIONS(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_PAC_OPTIONS_sequence, hf_index, ett_kerberos_PA_PAC_OPTIONS);
@@ -7161,7 +7555,7 @@ static const ber_sequence_t KERB_AD_RESTRICTION_ENTRY_U_sequence[] = {
};
static int
-dissect_kerberos_KERB_AD_RESTRICTION_ENTRY_U(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KERB_AD_RESTRICTION_ENTRY_U(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KERB_AD_RESTRICTION_ENTRY_U_sequence, hf_index, ett_kerberos_KERB_AD_RESTRICTION_ENTRY_U);
@@ -7171,7 +7565,7 @@ dissect_kerberos_KERB_AD_RESTRICTION_ENTRY_U(gboolean implicit_tag _U_, tvbuff_t
static int
-dissect_kerberos_KERB_AD_RESTRICTION_ENTRY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KERB_AD_RESTRICTION_ENTRY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_tagged_type(implicit_tag, actx, tree, tvb, offset,
hf_index, BER_CLASS_UNI, 16, FALSE, dissect_kerberos_KERB_AD_RESTRICTION_ENTRY_U);
@@ -7184,7 +7578,7 @@ static const ber_sequence_t PA_KERB_KEY_LIST_REQ_sequence_of[1] = {
};
static int
-dissect_kerberos_PA_KERB_KEY_LIST_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_KERB_KEY_LIST_REQ(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
PA_KERB_KEY_LIST_REQ_sequence_of, hf_index, ett_kerberos_PA_KERB_KEY_LIST_REQ);
@@ -7194,7 +7588,7 @@ dissect_kerberos_PA_KERB_KEY_LIST_REQ(gboolean implicit_tag _U_, tvbuff_t *tvb _
static int
-dissect_kerberos_PA_KERB_KEY_LIST_REP_Key(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_KERB_KEY_LIST_REP_Key(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_kerberos_EncryptionKey(implicit_tag, tvb, offset, actx, tree, hf_index);
return offset;
@@ -7203,8 +7597,7 @@ dissect_kerberos_PA_KERB_KEY_LIST_REP_Key(gboolean implicit_tag _U_, tvbuff_t *t
static int
-dissect_kerberos_PA_KERB_KEY_LIST_REP_item(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 513 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_PA_KERB_KEY_LIST_REP_item(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
@@ -7218,7 +7611,6 @@ dissect_kerberos_PA_KERB_KEY_LIST_REP_item(gboolean implicit_tag _U_, tvbuff_t *
private_data->save_encryption_key_fn = saved_encryption_key_fn;
-
return offset;
}
@@ -7228,7 +7620,7 @@ static const ber_sequence_t PA_KERB_KEY_LIST_REP_sequence_of[1] = {
};
static int
-dissect_kerberos_PA_KERB_KEY_LIST_REP(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_KERB_KEY_LIST_REP(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
PA_KERB_KEY_LIST_REP_sequence_of, hf_index, ett_kerberos_PA_KERB_KEY_LIST_REP);
@@ -7244,7 +7636,7 @@ static const ber_sequence_t ChangePasswdData_sequence[] = {
};
int
-dissect_kerberos_ChangePasswdData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_ChangePasswdData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
ChangePasswdData_sequence, hf_index, ett_kerberos_ChangePasswdData);
@@ -7260,7 +7652,7 @@ static const ber_sequence_t PA_AUTHENTICATION_SET_ELEM_sequence[] = {
};
static int
-dissect_kerberos_PA_AUTHENTICATION_SET_ELEM(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_AUTHENTICATION_SET_ELEM(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_AUTHENTICATION_SET_ELEM_sequence, hf_index, ett_kerberos_PA_AUTHENTICATION_SET_ELEM);
@@ -7276,23 +7668,20 @@ static const value_string kerberos_KrbFastArmorTypes_vals[] = {
static int
-dissect_kerberos_KrbFastArmorTypes(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 636 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_KrbFastArmorTypes(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
&(private_data->fast_type));
-
return offset;
}
static int
-dissect_kerberos_T_armor_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 640 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_armor_value(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
switch(private_data->fast_type){
@@ -7307,7 +7696,6 @@ dissect_kerberos_T_armor_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
}
-
return offset;
}
@@ -7319,7 +7707,7 @@ static const ber_sequence_t KrbFastArmor_sequence[] = {
};
static int
-dissect_kerberos_KrbFastArmor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KrbFastArmor(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbFastArmor_sequence, hf_index, ett_kerberos_KrbFastArmor);
@@ -7329,8 +7717,7 @@ dissect_kerberos_KrbFastArmor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
static int
-dissect_kerberos_T_encryptedKrbFastReq_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 612 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedKrbFastReq_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KrbFastReq);
#else
@@ -7338,8 +7725,6 @@ dissect_kerberos_T_encryptedKrbFastReq_cipher(gboolean implicit_tag _U_, tvbuff_
NULL);
#endif
- return offset;
-
return offset;
@@ -7354,7 +7739,7 @@ static const ber_sequence_t EncryptedKrbFastReq_sequence[] = {
};
static int
-dissect_kerberos_EncryptedKrbFastReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedKrbFastReq(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedKrbFastReq_sequence, hf_index, ett_kerberos_EncryptedKrbFastReq);
@@ -7370,7 +7755,7 @@ static const ber_sequence_t KrbFastArmoredReq_sequence[] = {
};
static int
-dissect_kerberos_KrbFastArmoredReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KrbFastArmoredReq(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbFastArmoredReq_sequence, hf_index, ett_kerberos_KrbFastArmoredReq);
@@ -7384,7 +7769,7 @@ static const ber_choice_t PA_FX_FAST_REQUEST_choice[] = {
};
static int
-dissect_kerberos_PA_FX_FAST_REQUEST(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_FX_FAST_REQUEST(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
PA_FX_FAST_REQUEST_choice, hf_index, ett_kerberos_PA_FX_FAST_REQUEST,
NULL);
@@ -7395,8 +7780,7 @@ dissect_kerberos_PA_FX_FAST_REQUEST(gboolean implicit_tag _U_, tvbuff_t *tvb _U_
static int
-dissect_kerberos_T_encryptedKrbFastResponse_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 620 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedKrbFastResponse_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_KrbFastResponse);
#else
@@ -7404,8 +7788,6 @@ dissect_kerberos_T_encryptedKrbFastResponse_cipher(gboolean implicit_tag _U_, tv
NULL);
#endif
- return offset;
-
return offset;
@@ -7420,7 +7802,7 @@ static const ber_sequence_t EncryptedKrbFastResponse_sequence[] = {
};
static int
-dissect_kerberos_EncryptedKrbFastResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedKrbFastResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedKrbFastResponse_sequence, hf_index, ett_kerberos_EncryptedKrbFastResponse);
@@ -7434,7 +7816,7 @@ static const ber_sequence_t KrbFastArmoredRep_sequence[] = {
};
static int
-dissect_kerberos_KrbFastArmoredRep(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KrbFastArmoredRep(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbFastArmoredRep_sequence, hf_index, ett_kerberos_KrbFastArmoredRep);
@@ -7448,7 +7830,7 @@ static const ber_choice_t PA_FX_FAST_REPLY_choice[] = {
};
static int
-dissect_kerberos_PA_FX_FAST_REPLY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_FX_FAST_REPLY(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_choice(actx, tree, tvb, offset,
PA_FX_FAST_REPLY_choice, hf_index, ett_kerberos_PA_FX_FAST_REPLY,
NULL);
@@ -7459,8 +7841,7 @@ dissect_kerberos_PA_FX_FAST_REPLY(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
static int
-dissect_kerberos_T_encryptedChallenge_cipher(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 628 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_encryptedChallenge_cipher(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
#ifdef HAVE_KERBEROS
offset=dissect_ber_octet_string_wcb(FALSE, actx, tree, tvb, offset, hf_index, dissect_krb5_decrypt_EncryptedChallenge);
#else
@@ -7468,8 +7849,6 @@ dissect_kerberos_T_encryptedChallenge_cipher(gboolean implicit_tag _U_, tvbuff_t
NULL);
#endif
- return offset;
-
return offset;
@@ -7484,7 +7863,7 @@ static const ber_sequence_t EncryptedChallenge_sequence[] = {
};
static int
-dissect_kerberos_EncryptedChallenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedChallenge(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedChallenge_sequence, hf_index, ett_kerberos_EncryptedChallenge);
@@ -7500,7 +7879,7 @@ static const ber_sequence_t EncryptedSpakeData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedSpakeData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedSpakeData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedSpakeData_sequence, hf_index, ett_kerberos_EncryptedSpakeData);
@@ -7516,7 +7895,7 @@ static const ber_sequence_t EncryptedSpakeResponseData_sequence[] = {
};
static int
-dissect_kerberos_EncryptedSpakeResponseData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_EncryptedSpakeResponseData(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
EncryptedSpakeResponseData_sequence, hf_index, ett_kerberos_EncryptedSpakeResponseData);
@@ -7534,7 +7913,7 @@ static const value_string kerberos_SPAKEGroup_vals[] = {
static int
-dissect_kerberos_SPAKEGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SPAKEGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -7549,7 +7928,7 @@ static const value_string kerberos_SPAKESecondFactorType_vals[] = {
static int
-dissect_kerberos_SPAKESecondFactorType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SPAKESecondFactorType(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
NULL);
@@ -7562,7 +7941,7 @@ static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup_sequence_of[1] = {
};
static int
-dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup_sequence_of, hf_index, ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKEGroup);
@@ -7576,7 +7955,7 @@ static const ber_sequence_t SPAKESupport_sequence[] = {
};
static int
-dissect_kerberos_SPAKESupport(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SPAKESupport(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SPAKESupport_sequence, hf_index, ett_kerberos_SPAKESupport);
@@ -7591,7 +7970,7 @@ static const ber_sequence_t SPAKESecondFactor_sequence[] = {
};
static int
-dissect_kerberos_SPAKESecondFactor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SPAKESecondFactor(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SPAKESecondFactor_sequence, hf_index, ett_kerberos_SPAKESecondFactor);
@@ -7604,7 +7983,7 @@ static const ber_sequence_t SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor_sequence_of
};
static int
-dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor_sequence_of, hf_index, ett_kerberos_SEQUENCE_SIZE_1_MAX_OF_SPAKESecondFactor);
@@ -7620,7 +7999,7 @@ static const ber_sequence_t SPAKEChallenge_sequence[] = {
};
static int
-dissect_kerberos_SPAKEChallenge(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SPAKEChallenge(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SPAKEChallenge_sequence, hf_index, ett_kerberos_SPAKEChallenge);
@@ -7635,7 +8014,7 @@ static const ber_sequence_t SPAKEResponse_sequence[] = {
};
static int
-dissect_kerberos_SPAKEResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_SPAKEResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
SPAKEResponse_sequence, hf_index, ett_kerberos_SPAKEResponse);
@@ -7660,29 +8039,22 @@ static const ber_choice_t PA_SPAKE_choice[] = {
};
static int
-dissect_kerberos_PA_SPAKE(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 654 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_PA_SPAKE(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t* private_data = kerberos_get_private_data(actx);
offset = dissect_ber_choice(actx, tree, tvb, offset,
PA_SPAKE_choice, hf_index, ett_kerberos_PA_SPAKE,
&(private_data->padata_type));
-
-#line 657 "./asn1/kerberos/kerberos.cnf"
if(tree){
proto_item_append_text(tree, " %s",
val_to_str(private_data->padata_type, kerberos_PA_SPAKE_vals,
"Unknown:%d"));
}
-
return offset;
}
-/*--- End of included file: packet-kerberos-fn.c ---*/
-#line 4154 "./asn1/kerberos/packet-kerberos-template.c"
-
#ifdef HAVE_KERBEROS
static const ber_sequence_t PA_ENC_TS_ENC_sequence[] = {
{ &hf_krb_patimestamp, BER_CLASS_CON, 0, 0, dissect_kerberos_KerberosTime },
@@ -7691,15 +8063,14 @@ static const ber_sequence_t PA_ENC_TS_ENC_sequence[] = {
};
static int
-dissect_kerberos_PA_ENC_TS_ENC(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_PA_ENC_TS_ENC(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
PA_ENC_TS_ENC_sequence, hf_index, ett_krb_pa_enc_ts_enc);
return offset;
}
static int
-dissect_kerberos_T_strengthen_key(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 491 "./asn1/kerberos/kerberos.cnf"
+dissect_kerberos_T_strengthen_key(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
gint save_encryption_key_parent_hf_index = private_data->save_encryption_key_parent_hf_index;
kerberos_key_save_fn saved_encryption_key_fn = private_data->save_encryption_key_fn;
@@ -7724,7 +8095,7 @@ static const ber_sequence_t KrbFastFinished_sequence[] = {
};
static int
-dissect_kerberos_KrbFastFinished(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KrbFastFinished(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbFastFinished_sequence, hf_index, ett_kerberos_KrbFastFinished);
@@ -7732,7 +8103,7 @@ dissect_kerberos_KrbFastFinished(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
}
static const ber_sequence_t KrbFastResponse_sequence[] = {
- { &hf_kerberos_padata , BER_CLASS_CON, 0, 0, dissect_kerberos_SEQUENCE_OF_PA_DATA },
+ { &hf_kerberos_rEP_SEQUENCE_OF_PA_DATA, BER_CLASS_CON, 0, 0, dissect_kerberos_T_rEP_SEQUENCE_OF_PA_DATA },
{ &hf_kerberos_strengthen_key, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL, dissect_kerberos_T_strengthen_key },
{ &hf_kerberos_finished , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL, dissect_kerberos_KrbFastFinished },
{ &hf_kerberos_nonce , BER_CLASS_CON, 3, 0, dissect_kerberos_UInt32 },
@@ -7740,7 +8111,7 @@ static const ber_sequence_t KrbFastResponse_sequence[] = {
};
static int
-dissect_kerberos_KrbFastResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KrbFastResponse(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbFastResponse_sequence, hf_index, ett_kerberos_KrbFastResponse);
@@ -7749,15 +8120,19 @@ dissect_kerberos_KrbFastResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
static const ber_sequence_t KrbFastReq_sequence[] = {
{ &hf_kerberos_fast_options, BER_CLASS_CON, 0, 0, dissect_kerberos_FastOptions },
- { &hf_kerberos_padata , BER_CLASS_CON, 1, 0, dissect_kerberos_SEQUENCE_OF_PA_DATA },
+ { &hf_kerberos_rEQ_SEQUENCE_OF_PA_DATA, BER_CLASS_CON, 1, 0, dissect_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA },
{ &hf_kerberos_req_body , BER_CLASS_CON, 2, 0, dissect_kerberos_KDC_REQ_BODY },
{ NULL, 0, 0, 0, NULL }
};
static int
-dissect_kerberos_KrbFastReq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_KrbFastReq(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+ kerberos_private_data_t *private_data = kerberos_get_private_data(actx);
+ struct _kerberos_PA_FX_FAST_REQUEST saved_stack = private_data->PA_FX_FAST_REQUEST;
+ private_data->PA_FX_FAST_REQUEST = (struct _kerberos_PA_FX_FAST_REQUEST) { .defer = FALSE, };
offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
KrbFastReq_sequence, hf_index, ett_kerberos_KrbFastReq);
+ private_data->PA_FX_FAST_REQUEST = saved_stack;
return offset;
}
@@ -7784,7 +8159,7 @@ static int * const FastOptions_bits[] = {
};
static int
-dissect_kerberos_FastOptions(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_kerberos_FastOptions(bool implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
FastOptions_bits, 17, hf_index, ett_kerberos_FastOptions,
NULL);
@@ -7979,7 +8354,7 @@ dissect_kerberos_KERB_TICKET_LOGON(tvbuff_t *tvb, int offset, asn1_ctx_t *actx,
static gint
dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- gboolean dci, gboolean do_col_protocol, gboolean have_rm,
+ bool dci, bool do_col_protocol, bool have_rm,
kerberos_callbacks *cb)
{
volatile int offset = 0;
@@ -8023,7 +8398,7 @@ dissect_kerberos_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* a go at it.
*/
gint8 tmp_class;
- gboolean tmp_pc;
+ bool tmp_pc;
gint32 tmp_tag;
get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
@@ -8370,12 +8745,20 @@ void proto_register_kerberos(void) {
{ &hf_krb_pac_upn_flags, {
"Flags", "kerberos.pac.upn.flags", FT_UINT32, BASE_HEX,
NULL, 0, "UPN flags", HFILL }},
- { &hf_krb_pac_upn_dns_offset, {
- "DNS Offset", "kerberos.pac.upn.dns_offset", FT_UINT16, BASE_DEC,
- NULL, 0, NULL, HFILL }},
- { &hf_krb_pac_upn_dns_len, {
- "DNS Len", "kerberos.pac.upn.dns_len", FT_UINT16, BASE_DEC,
- NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_flag_upn_constructed, {
+ "UPN Name Constructed",
+ "kerberos.pac.upn.flags.upn_constructed",
+ FT_BOOLEAN, 32,
+ TFS(&tfs_krb_pac_upn_flag_upn_constructed),
+ PAC_UPN_DNS_FLAG_CONSTRUCTED,
+ "Is the UPN Name constructed?", HFILL }},
+ { &hf_krb_pac_upn_flag_has_sam_name_and_sid, {
+ "SAM_NAME and SID Included",
+ "kerberos.pac.upn.flags.has_sam_name_and_sid",
+ FT_BOOLEAN, 32,
+ TFS(&tfs_krb_pac_upn_flag_has_sam_name_and_sid),
+ PAC_UPN_DNS_FLAG_HAS_SAM_NAME_AND_SID,
+ "Are SAM_NAME and SID included?", HFILL }},
{ &hf_krb_pac_upn_upn_offset, {
"UPN Offset", "kerberos.pac.upn.upn_offset", FT_UINT16, BASE_DEC,
NULL, 0, NULL, HFILL }},
@@ -8385,9 +8768,30 @@ void proto_register_kerberos(void) {
{ &hf_krb_pac_upn_upn_name, {
"UPN Name", "kerberos.pac.upn.upn_name", FT_STRING, BASE_NONE,
NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_dns_offset, {
+ "DNS Offset", "kerberos.pac.upn.dns_offset", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_dns_len, {
+ "DNS Len", "kerberos.pac.upn.dns_len", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
{ &hf_krb_pac_upn_dns_name, {
"DNS Name", "kerberos.pac.upn.dns_name", FT_STRING, BASE_NONE,
NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_samaccountname_offset, {
+ "sAMAccountName Offset", "kerberos.pac.upn.samaccountname_offset", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_samaccountname_len, {
+ "sAMAccountName Len", "kerberos.pac.upn.samaccountname_len", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_samaccountname, {
+ "sAMAccountName", "kerberos.pac.upn.samaccountname", FT_STRING, BASE_NONE,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_objectsid_offset, {
+ "objectSid Offset", "kerberos.pac.upn.objectsid_offset", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_upn_objectsid_len, {
+ "objectSid Len", "kerberos.pac.upn.objectsid_len", FT_UINT16, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
{ &hf_krb_pac_client_claims_info, {
"PAC_CLIENT_CLAIMS_INFO", "kerberos.pac_client_claims_info", FT_BYTES, BASE_NONE,
NULL, 0, "PAC_CLIENT_CLAIMS_INFO structure", HFILL }},
@@ -8400,6 +8804,35 @@ void proto_register_kerberos(void) {
{ &hf_krb_pac_ticket_checksum, {
"PAC_TICKET_CHECKSUM", "kerberos.pac_ticket_checksum", FT_BYTES, BASE_NONE,
NULL, 0, "PAC_TICKET_CHECKSUM structure", HFILL }},
+ { &hf_krb_pac_attributes_info, {
+ "PAC_ATTRIBUTES_INFO", "kerberos.pac_attributes_info", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_ATTRIBUTES_INFO structure", HFILL }},
+ { &hf_krb_pac_attributes_info_length, {
+ "Flags Valid Length", "kerberos.pac.attributes_info.length", FT_UINT32, BASE_DEC,
+ NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_attributes_info_flags, {
+ "Flags", "kerberos.pac.attributes_info.flags",
+ FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
+ { &hf_krb_pac_attributes_info_flags_pac_was_requested, {
+ "PAC Requested",
+ "kerberos.pac.attributes.flags.pac_was_requested",
+ FT_BOOLEAN, 32,
+ TFS(&tfs_krb_pac_attributes_info_pac_was_requested),
+ PAC_ATTRIBUTE_FLAG_PAC_WAS_REQUESTED,
+ "Was a PAC requested?", HFILL }},
+ { &hf_krb_pac_attributes_info_flags_pac_was_given_implicitly, {
+ "PAC given Implicitly",
+ "kerberos.pac.attributes.flags.pac_was_given_implicitly",
+ FT_BOOLEAN, 32,
+ TFS(&tfs_krb_pac_attributes_info_pac_was_given_implicitly),
+ PAC_ATTRIBUTE_FLAG_PAC_WAS_GIVEN_IMPLICITLY,
+ "Was PAC given implicitly?", HFILL }},
+ { &hf_krb_pac_requester_sid, {
+ "PAC_REQUESTER_SID", "kerberos.pac_requester_sid", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_REQUESTER_SID structure", HFILL }},
+ { &hf_krb_pac_full_checksum, {
+ "PAC_FULL_CHECKSUM", "kerberos.pac_full_checksum", FT_BYTES, BASE_NONE,
+ NULL, 0, "PAC_FULL_CHECKSUM structure", HFILL }},
{ &hf_krb_pa_supported_enctypes,
{ "SupportedEnctypes", "kerberos.supported_entypes",
FT_UINT32, BASE_HEX, NULL, 0, NULL, HFILL }},
@@ -8418,6 +8851,9 @@ void proto_register_kerberos(void) {
{ &hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96,
{ "aes256-cts-hmac-sha1-96", "kerberos.supported_entypes.aes256-cts-hmac-sha1-96",
FT_BOOLEAN, 32, TFS(&tfs_supported_not_supported), 0x00000010, NULL, HFILL }},
+ { &hf_krb_pa_supported_enctypes_aes256_cts_hmac_sha1_96_sk,
+ { "aes256-cts-hmac-sha1-96-sk", "kerberos.supported_entypes.aes256-cts-hmac-sha1-96-sk",
+ FT_BOOLEAN, 32, TFS(&tfs_supported_not_supported), 0x00000020, NULL, HFILL }},
{ &hf_krb_pa_supported_enctypes_fast_supported,
{ "fast-supported", "kerberos.supported_entypes.fast-supported",
FT_BOOLEAN, 32, TFS(&tfs_supported_not_supported), 0x00010000, NULL, HFILL }},
@@ -8436,6 +8872,9 @@ void proto_register_kerberos(void) {
{ &hf_krb_ad_ap_options_cbt,
{ "ChannelBindings", "kerberos.ad_ap_options.cbt",
FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x00004000, NULL, HFILL }},
+ { &hf_krb_ad_ap_options_unverified_target_name,
+ { "UnverifiedTargetName", "kerberos.ad_ap_options.unverified_target_name",
+ FT_BOOLEAN, 32, TFS(&tfs_set_notset), 0x00008000, NULL, HFILL }},
{ &hf_krb_ad_target_principal,
{ "Target Principal", "kerberos.ad_target_principal",
FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
@@ -8568,15 +9007,12 @@ void proto_register_kerberos(void) {
"Checksum", HFILL }},
{ &hf_krb_patimestamp,
{ "patimestamp", "kerberos.patimestamp",
- FT_STRING, BASE_NONE, NULL, 0, "KerberosTime", HFILL }},
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0, "KerberosTime", HFILL }},
{ &hf_krb_pausec,
{ "pausec", "kerberos.pausec",
FT_UINT32, BASE_DEC, NULL, 0, "Microseconds", HFILL }},
#endif /* HAVE_KERBEROS */
-
-/*--- Included file: packet-kerberos-hfarr.c ---*/
-#line 1 "./asn1/kerberos/packet-kerberos-hfarr.c"
{ &hf_kerberos_ticket,
{ "ticket", "kerberos.ticket_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -8799,19 +9235,19 @@ void proto_register_kerberos(void) {
"TransitedEncoding", HFILL }},
{ &hf_kerberos_authtime,
{ "authtime", "kerberos.authtime",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_starttime,
{ "starttime", "kerberos.starttime",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_endtime,
{ "endtime", "kerberos.endtime",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_renew_till,
{ "renew-till", "kerberos.renew_till",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_caddr,
{ "caddr", "kerberos.caddr",
@@ -8837,11 +9273,11 @@ void proto_register_kerberos(void) {
{ "msg-type", "kerberos.msg_type",
FT_INT32, BASE_DEC, VALS(kerberos_MESSAGE_TYPE_vals), 0,
"MESSAGE_TYPE", HFILL }},
- { &hf_kerberos_padata,
+ { &hf_kerberos_rEQ_SEQUENCE_OF_PA_DATA,
{ "padata", "kerberos.padata",
FT_UINT32, BASE_DEC, NULL, 0,
- "SEQUENCE_OF_PA_DATA", HFILL }},
- { &hf_kerberos_padata_item,
+ "T_rEQ_SEQUENCE_OF_PA_DATA", HFILL }},
+ { &hf_kerberos_rEQ_SEQUENCE_OF_PA_DATA_item,
{ "PA-DATA", "kerberos.PA_DATA_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
@@ -8855,15 +9291,15 @@ void proto_register_kerberos(void) {
"KDCOptions", HFILL }},
{ &hf_kerberos_from,
{ "from", "kerberos.from",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_till,
{ "till", "kerberos.till",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_rtime,
{ "rtime", "kerberos.rtime",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_nonce,
{ "nonce", "kerberos.nonce",
@@ -8893,6 +9329,14 @@ void proto_register_kerberos(void) {
{ "Ticket", "kerberos.Ticket_element",
FT_NONE, BASE_NONE, NULL, 0,
NULL, HFILL }},
+ { &hf_kerberos_rEP_SEQUENCE_OF_PA_DATA,
+ { "padata", "kerberos.padata",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "T_rEP_SEQUENCE_OF_PA_DATA", HFILL }},
+ { &hf_kerberos_rEP_SEQUENCE_OF_PA_DATA_item,
+ { "PA-DATA", "kerberos.PA_DATA_element",
+ FT_NONE, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
{ &hf_kerberos_kDC_REP_enc_part,
{ "enc-part", "kerberos.enc_part_element",
FT_NONE, BASE_NONE, NULL, 0,
@@ -8907,7 +9351,7 @@ void proto_register_kerberos(void) {
"LastReq", HFILL }},
{ &hf_kerberos_key_expiration,
{ "key-expiration", "kerberos.key_expiration",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_srealm,
{ "srealm", "kerberos.srealm",
@@ -8927,7 +9371,7 @@ void proto_register_kerberos(void) {
NULL, HFILL }},
{ &hf_kerberos_lr_value,
{ "lr-value", "kerberos.lr_value",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_ap_options,
{ "ap-options", "kerberos.ap_options",
@@ -8951,7 +9395,7 @@ void proto_register_kerberos(void) {
"Microseconds", HFILL }},
{ &hf_kerberos_ctime,
{ "ctime", "kerberos.ctime",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_authenticator_subkey,
{ "subkey", "kerberos.subkey_element",
@@ -8979,7 +9423,7 @@ void proto_register_kerberos(void) {
"T_kRB_SAFE_BODY_user_data", HFILL }},
{ &hf_kerberos_timestamp,
{ "timestamp", "kerberos.timestamp",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_usec,
{ "usec", "kerberos.usec",
@@ -9035,7 +9479,7 @@ void proto_register_kerberos(void) {
"PrincipalName", HFILL }},
{ &hf_kerberos_stime,
{ "stime", "kerberos.stime",
- FT_STRING, BASE_NONE, NULL, 0,
+ FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0,
"KerberosTime", HFILL }},
{ &hf_kerberos_susec,
{ "susec", "kerberos.susec",
@@ -9489,9 +9933,6 @@ void proto_register_kerberos(void) {
{ "resource-based-constrained-delegation", "kerberos.PAC.OPTIONS.FLAGS.resource.based.constrained.delegation",
FT_BOOLEAN, 8, NULL, 0x10,
NULL, HFILL }},
-
-/*--- End of included file: packet-kerberos-hfarr.c ---*/
-#line 5047 "./asn1/kerberos/packet-kerberos-template.c"
};
/* List of subtrees */
@@ -9505,11 +9946,16 @@ void proto_register_kerberos(void) {
&ett_krb_pac_credential_info,
&ett_krb_pac_s4u_delegation_info,
&ett_krb_pac_upn_dns_info,
+ &ett_krb_pac_upn_dns_info_flags,
&ett_krb_pac_device_info,
&ett_krb_pac_server_checksum,
&ett_krb_pac_privsvr_checksum,
&ett_krb_pac_client_info_type,
&ett_krb_pac_ticket_checksum,
+ &ett_krb_pac_attributes_info,
+ &ett_krb_pac_attributes_info_flags,
+ &ett_krb_pac_requester_sid,
+ &ett_krb_pac_full_checksum,
&ett_krb_pa_supported_enctypes,
&ett_krb_ad_ap_options,
&ett_kerberos_KERB_TICKET_LOGON,
@@ -9520,9 +9966,6 @@ void proto_register_kerberos(void) {
&ett_kerberos_KrbFastReq,
&ett_kerberos_FastOptions,
#endif
-
-/*--- Included file: packet-kerberos-ettarr.c ---*/
-#line 1 "./asn1/kerberos/packet-kerberos-ettarr.c"
&ett_kerberos_Applications,
&ett_kerberos_PrincipalName,
&ett_kerberos_SEQUENCE_OF_KerberosString,
@@ -9548,11 +9991,12 @@ void proto_register_kerberos(void) {
&ett_kerberos_EncTicketPart_U,
&ett_kerberos_TransitedEncoding,
&ett_kerberos_KDC_REQ,
- &ett_kerberos_SEQUENCE_OF_PA_DATA,
+ &ett_kerberos_T_rEQ_SEQUENCE_OF_PA_DATA,
&ett_kerberos_KDC_REQ_BODY,
&ett_kerberos_SEQUENCE_OF_ENCTYPE,
&ett_kerberos_SEQUENCE_OF_Ticket,
&ett_kerberos_KDC_REP,
+ &ett_kerberos_T_rEP_SEQUENCE_OF_PA_DATA,
&ett_kerberos_EncKDCRepPart,
&ett_kerberos_LastReq,
&ett_kerberos_LastReq_item,
@@ -9608,9 +10052,6 @@ void proto_register_kerberos(void) {
&ett_kerberos_SPAKESecondFactor,
&ett_kerberos_SPAKEResponse,
&ett_kerberos_PA_SPAKE,
-
-/*--- End of included file: packet-kerberos-ettarr.c ---*/
-#line 5076 "./asn1/kerberos/packet-kerberos-template.c"
};
static ei_register_info ei[] = {
@@ -9630,6 +10071,10 @@ void proto_register_kerberos(void) {
expert_krb = expert_register_protocol(proto_kerberos);
expert_register_field_array(expert_krb, ei, array_length(ei));
+ /* Register dissectors */
+ kerberos_handle_udp = register_dissector("kerberos.udp", dissect_kerberos_udp, proto_kerberos);
+ kerberos_handle_tcp = register_dissector("kerberos.tcp", dissect_kerberos_tcp, proto_kerberos);
+
/* Register preferences */
krb_module = prefs_register_protocol(proto_kerberos, kerberos_prefs_apply_cb);
prefs_register_bool_preference(krb_module, "desegment",
@@ -9714,16 +10159,8 @@ static dcerpc_auth_subdissector_fns gss_kerb_auth_seal_fns = {
void
proto_reg_handoff_kerberos(void)
{
- dissector_handle_t kerberos_handle_tcp;
-
krb4_handle = find_dissector_add_dependency("krb4", proto_kerberos);
- kerberos_handle_udp = create_dissector_handle(dissect_kerberos_udp,
- proto_kerberos);
-
- kerberos_handle_tcp = create_dissector_handle(dissect_kerberos_tcp,
- proto_kerberos);
-
dissector_add_uint_with_preference("udp.port", UDP_PORT_KERBEROS, kerberos_handle_udp);
dissector_add_uint_with_preference("tcp.port", TCP_PORT_KERBEROS, kerberos_handle_tcp);