diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 20:34:10 +0000 |
commit | e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch) | |
tree | 68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/packet-gssapi.h | |
parent | Initial commit. (diff) | |
download | wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip |
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/packet-gssapi.h')
-rw-r--r-- | epan/dissectors/packet-gssapi.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/epan/dissectors/packet-gssapi.h b/epan/dissectors/packet-gssapi.h new file mode 100644 index 00000000..65163e0d --- /dev/null +++ b/epan/dissectors/packet-gssapi.h @@ -0,0 +1,73 @@ +/* packet-gssapi.h + * Dissector for GSS-API tokens as described in rfc2078, section 3.1 + * Copyright 2002, Tim Potter <tpot@samba.org> + * + * Wireshark - Network traffic analyzer + * By Gerald Combs <gerald@wireshark.org> + * Copyright 1998 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef __PACKET_GSSAPI_H +#define __PACKET_GSSAPI_H + +/* Structures needed outside */ + +typedef struct _gssapi_oid_value { + protocol_t *proto; + int ett; + dissector_handle_t handle; + dissector_handle_t wrap_handle; + const gchar *comment; /* For the comment */ +} gssapi_oid_value; + +#define DECRYPT_GSSAPI_NORMAL 1 +#define DECRYPT_GSSAPI_DCE 2 + +/**< Extra data for handling of decryption of GSSAPI wrapped tvbuffs. + Caller sets decrypt_gssapi_tvb if this service is requested. + If gssapi_encrypted_tvb is NULL, then the rest of the tvb data following + the gssapi blob itself is decrypted othervise the gssapi_encrypted_tvb + tvb will be decrypted (DCERPC has the data before the gssapi blob) + If, on return, gssapi_data_encrypted is FALSE, the wrapped tvbuff + was signed (i.e., an encrypted signature was present, to check + whether the data was modified by a man in the middle) but not sealed + (i.e., the data itself wasn't encrypted). +*/ +typedef struct _gssapi_encrypt_info +{ + guint16 decrypt_gssapi_tvb; + tvbuff_t *gssapi_wrap_tvb; + tvbuff_t *gssapi_header_tvb; + tvbuff_t *gssapi_encrypted_tvb; + tvbuff_t *gssapi_trailer_tvb; + tvbuff_t *gssapi_decrypted_tvb; + gboolean gssapi_data_encrypted; +} gssapi_encrypt_info_t; + +/* Function prototypes */ + +void +gssapi_init_oid(const char *oid, int proto, int ett, dissector_handle_t handle, + dissector_handle_t wrap_handle, const gchar *comment); + +gssapi_oid_value * +gssapi_lookup_oid_str(const gchar *oid_key); + +typedef struct _dcerpc_info dcerpc_info; +typedef struct _dcerpc_auth_info dcerpc_auth_info; + +int wrap_dissect_gssapi_verf(tvbuff_t *tvb, int offset, + packet_info *pinfo, + proto_tree *tree, dcerpc_info *di, guint8 *drep); + +tvbuff_t * +wrap_dissect_gssapi_payload(tvbuff_t *header_tvb _U_, + tvbuff_t *payload_tvb, + tvbuff_t *trailer_tvb _U_, + tvbuff_t *auth_tvb, + packet_info *pinfo, + dcerpc_auth_info *auth_info _U_); + +#endif /* __PACKET_GSSAPI_H */ |