This file is indexed.

/usr/include/openvas/base/nvti.h is in libopenvas-dev 9.0.1-4.

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
/* openvas-libraries/base
 * $Id$
 * Description: API (structs and protos) for NVT Info datasets
 *
 * Authors:
 * Jan-Oliver Wagner <jan-oliver.wagner@greenbone.net>
 * Matthew Mundell <matthew.mundell@greenbone.net>
 *
 * Copyright:
 * Copyright (C) 2009, 2011 Greenbone Networks GmbH
 *
 * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 */

/**
 * @file nvti.h
 * @brief Protos and data structures for NVT Information data sets.
 *
 * This file contains the protos for \ref nvti.c
 */

#ifndef _NVTI_H
#define _NVTI_H

#include <glib.h>

/**
 * @brief The structure for a preference of a NVT.
 *
 * The elements of this structure should never be accessed directly.
 * Only the functions corresponding to this module should be used.
 */
typedef struct nvtpref
{
  gchar *type;                  ///< Preference type
  gchar *name;                  ///< Name of the preference
  gchar *dflt;                  ///< Default value of the preference
} nvtpref_t;

nvtpref_t *nvtpref_new (gchar *, gchar *, gchar *);
void nvtpref_free (nvtpref_t *);
gchar *nvtpref_name (const nvtpref_t *);
gchar *nvtpref_type (const nvtpref_t *);
gchar *nvtpref_default (const nvtpref_t *);

/**
 * @brief The structure of a information record that corresponds to a NVT.
 *
 * The elements of this structure should never be accessed directly.
 * Only the functions corresponding to this module should be used.
 */
typedef struct nvti
{
  gchar *oid;                /**< @brief Object ID */
  gchar *version;            /**< @brief Version of the NVT */
  gchar *name;               /**< @brief The name */
  gchar *copyright;          /**< @brief Copyright for the NVT */

  gchar *cve;               /**< @brief List of CVEs, this NVT corresponds to */
  gchar *bid;               /**< @brief List of Bugtraq IDs, this NVT
                                        corresponds to */
  gchar *xref;              /**< @brief List of Cross-references, this NVT
                                        corresponds to */
  gchar *tag;               /**< @brief List of tags attached to this NVT */
  gchar *cvss_base;         /**< @brief CVSS base score for this NVT. */

  gchar *dependencies;      /**< @brief List of dependencies of this NVT */
  gchar *required_keys;     /**< @brief List of required KB keys of this NVT */
  gchar *mandatory_keys;    /**< @brief List of mandatory KB keys of this NVT */
  gchar *excluded_keys;     /**< @brief List of excluded KB keys of this NVT */
  gchar *required_ports;    /**< @brief List of required ports of this NVT */
  gchar *required_udp_ports;/**< @brief List of required UDP ports of this NVT*/

  GSList *prefs;            /**< @brief Collection of NVT preferences */

  // The following are not settled yet.
  gint timeout;             /**< @brief Default timeout time for this NVT */
  gint category;            /**< @brief The category, this NVT belongs to */
  gchar *family;            /**< @brief Family the NVT belongs to */
} nvti_t;

nvti_t *nvti_new (void);
void nvti_free (nvti_t *);

gchar *nvti_oid (const nvti_t *);
gchar *nvti_version (const nvti_t *);
gchar *nvti_name (const nvti_t *);
gchar *nvti_copyright (const nvti_t *);
gchar *nvti_cve (const nvti_t *);
gchar *nvti_bid (const nvti_t *);
gchar *nvti_xref (const nvti_t *);
gchar *nvti_tag (const nvti_t *);
gchar *nvti_cvss_base (const nvti_t *);
gchar *nvti_dependencies (const nvti_t *);
gchar *nvti_required_keys (const nvti_t *);
gchar *nvti_mandatory_keys (const nvti_t *);
gchar *nvti_excluded_keys (const nvti_t *);
gchar *nvti_required_ports (const nvti_t *);
gchar *nvti_required_udp_ports (const nvti_t *);
gint nvti_timeout (const nvti_t *);
gint nvti_category (const nvti_t *);
gchar *nvti_family (const nvti_t *);
guint nvti_pref_len (const nvti_t *);
const nvtpref_t *nvti_pref (const nvti_t *, guint);

int nvti_set_oid (nvti_t *, const gchar *);
int nvti_set_version (nvti_t *, const gchar *);
int nvti_set_name (nvti_t *, const gchar *);
int nvti_set_copyright (nvti_t *, const gchar *);
int nvti_set_cve (nvti_t *, const gchar *);
int nvti_set_bid (nvti_t *, const gchar *);
int nvti_set_xref (nvti_t *, const gchar *);
int nvti_set_tag (nvti_t *, const gchar *);
int nvti_set_cvss_base (nvti_t *, const gchar *);
int nvti_set_dependencies (nvti_t *, const gchar *);
int nvti_set_required_keys (nvti_t *, const gchar *);
int nvti_set_mandatory_keys (nvti_t *, const gchar *);
int nvti_set_excluded_keys (nvti_t *, const gchar *);
int nvti_set_required_ports (nvti_t *, const gchar *);
int nvti_set_required_udp_ports (nvti_t *, const gchar *);
int nvti_set_timeout (nvti_t *, const gint);
int nvti_set_category (nvti_t *, const gint);
int nvti_set_family (nvti_t *, const gchar *);

int nvti_add_cve (nvti_t *, const gchar *);
int nvti_add_bid (nvti_t *, const gchar *);
int nvti_add_required_keys (nvti_t *, const gchar *);
int nvti_add_mandatory_keys (nvti_t *, const gchar *);
int nvti_add_excluded_keys (nvti_t *, const gchar *);
int nvti_add_required_ports (nvti_t *, const gchar *);
int nvti_add_required_udp_ports (nvti_t *, const gchar *);
int nvti_add_pref (nvti_t *, nvtpref_t *);

nvti_t *nvti_from_keyfile (const gchar *);
int nvti_to_keyfile (const nvti_t *, const char *, const char *);

/* Collections of NVT Infos. */

/**
 * @brief A collection of information records corresponding to NVTs.
 */
typedef GHashTable nvtis_t;

nvtis_t *
nvtis_new (void);

void
nvtis_free (nvtis_t *);

void
nvtis_add (nvtis_t *, nvti_t *);

nvti_t *
nvtis_lookup (nvtis_t *, const char *);

#endif /* not _NVTI_H */