diff options
Diffstat (limited to 'epan/dissectors/packet-kerberos.c')
-rw-r--r-- | epan/dissectors/packet-kerberos.c | 2151 |
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); |