/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 */
|