/usr/include/wireshark/epan/oids.h is in libwireshark-dev 1.6.7-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 | /* oids.h
* Object IDentifier Support
*
* $Id: oids.h 33990 2010-08-29 10:47:38Z etxrab $
*
* (c) 2007, Luis E. Garcia Ontanon <luis@ontanon.org>
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __OIDS_H__
#define __OIDS_H__
#include <epan/ftypes/ftypes.h>
/**
*@file
*/
#define BER_TAG_ANY -1
struct _oid_bit_t {
guint offset;
int hfid;
};
typedef struct _oid_bits_info_t {
guint num;
gint ett;
struct _oid_bit_t* data;
} oid_bits_info_t;
typedef enum _oid_key_type_t {
OID_KEY_TYPE_WRONG,
OID_KEY_TYPE_INTEGER,
OID_KEY_TYPE_OID,
OID_KEY_TYPE_STRING,
OID_KEY_TYPE_BYTES,
OID_KEY_TYPE_NSAP,
OID_KEY_TYPE_IPADDR,
OID_KEY_TYPE_IMPLIED_OID,
OID_KEY_TYPE_IMPLIED_STRING,
OID_KEY_TYPE_IMPLIED_BYTES,
OID_KEY_TYPE_ETHER
} oid_key_type_t;
typedef struct _oid_value_type_t {
enum ftenum ft_type;
int display;
gint8 ber_class;
gint32 ber_tag;
int min_len;
int max_len;
oid_key_type_t keytype;
int keysize;
} oid_value_type_t;
typedef enum _oid_kind_t {
OID_KIND_UNKNOWN = 0,
OID_KIND_NODE,
OID_KIND_SCALAR,
OID_KIND_TABLE,
OID_KIND_ROW,
OID_KIND_COLUMN,
OID_KIND_NOTIFICATION,
OID_KIND_GROUP,
OID_KIND_COMPLIANCE,
OID_KIND_CAPABILITIES
} oid_kind_t;
typedef struct _oid_key_t {
char* name;
guint32 num_subids;
oid_key_type_t key_type;
int hfid;
enum ftenum ft_type;
int display;
struct _oid_key_t* next;
} oid_key_t;
typedef struct _oid_info_t {
guint32 subid;
char* name;
oid_kind_t kind;
void* children; /**< an emem_tree_t* */
const oid_value_type_t* value_type;
int value_hfid;
oid_key_t* key;
oid_bits_info_t* bits;
struct _oid_info_t* parent;
} oid_info_t;
/** init funcion called from epan.h */
extern void oids_init(void);
/** init funcion called from epan.h */
extern void oids_cleanup(void);
/*
* The objects returned by all these functions are all allocated with a
* packet lifetime and does not have have to be freed.
* However, take into account that when the packet dissection
* completes, these buffers will be automatically reclaimed/freed.
* If you need the buffer to remain for a longer scope than packet lifetime
* you must copy the content to an se_alloc() buffer.
*/
/*
* These functions convert through the various formats:
* string: is like "0.1.3.4.5.30" (not resolved)
* encoded: is BER encoded (as per X.690 section 8.19)
* subids: is an array of guint32s
*/
/* return length of encoded buffer */
guint oid_subid2encoded(guint len, guint32* subids, guint8** encoded_p);
guint oid_string2encoded(const gchar *oid_str, guint8** encoded_p);
/* return length of subid array */
guint oid_encoded2subid(const guint8 *oid, gint len, guint32** subids_p);
guint oid_string2subid(const gchar *oid_str, guint32** subids_p);
extern const gchar* oid_encoded2string(const guint8* encoded, guint len);
extern const gchar* oid_subid2string(guint32 *subids, guint len);
/* these return a formated string as human readable as posible */
extern const gchar *oid_resolved(guint len, guint32 *subids);
extern const gchar *oid_resolved_from_encoded(const guint8 *oid, gint len);
extern const gchar *oid_resolved_from_string(const gchar *oid_str);
/* these yield two formated strings one resolved and one numeric */
extern void oid_both(guint oid_len, guint32 *subids, char** resolved_p, char** numeric_p);
extern void oid_both_from_encoded(const guint8 *oid, gint oid_len, char** resolved_p, char** numeric_p);
extern void oid_both_from_string(const gchar *oid_str, char** resolved_p, char** numeric_p);
/*
* These return the info for the best match.
* *matched_p will be set to the number of nodes used by the returned oid
* *left_p will be set to the number of remaining unresolved subids
*/
extern oid_info_t* oid_get(guint oid_len, guint32 *subids, guint* matched_p, guint* left_p);
extern oid_info_t* oid_get_from_encoded(const guint8 *oid, gint oid_len, guint32 **subids, guint* matched, guint* left);
extern oid_info_t* oid_get_from_string(const gchar *oid_str, guint32 **subids, guint* matched, guint* left);
/* these are used to add oids to the collection */
extern void oid_add(const char* name, guint oid_len, guint32 *subids);
extern void oid_add_from_encoded(const char* name, const guint8 *oid, gint oid_len);
extern void oid_add_from_string(const char* name, const gchar *oid_str);
/**
* Fetch the default MIB/PIB path
*
* @return A string containing the default MIB/PIB path. It must be
* g_free()d by the caller.
*/
extern gchar *oid_get_default_mib_path(void);
/* macros for legacy oid functions */
#define oid_resolv_cleanup() ((void)0)
#define subid_t guint32
#ifdef DEBUG_OIDS
extern char* oid_test_a2b(guint32 num_subids, guint32* subids);
extern void add_oid_debug_subtree(oid_info_t* oid_info, proto_tree *tree);
#else
#define add_oid_debug_subtree(a,b) ((void)0)
#endif
#endif
|