Greenbone Vulnerability Management Libraries  22.4.1
nvti.h
Go to the documentation of this file.
1 /* Copyright (C) 2009-2022 Greenbone Networks GmbH
2  *
3  * SPDX-License-Identifier: GPL-2.0-or-later
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
27 #ifndef _NVTI_H
28 #define _NVTI_H
29 
30 #include <glib.h>
31 
32 #define NVTPREF_TIMEOUT_ID 0
33 
34 typedef struct nvtpref nvtpref_t;
35 
36 nvtpref_t *
37 nvtpref_new (int, gchar *, gchar *, gchar *);
38 
39 void
41 
42 gchar *
43 nvtpref_name (const nvtpref_t *);
44 
45 gchar *
46 nvtpref_type (const nvtpref_t *);
47 
48 gchar *
49 nvtpref_default (const nvtpref_t *);
50 
51 int
53 
57 typedef struct vtref vtref_t;
58 
62 typedef struct vtseverity vtseverity_t;
63 
67 typedef struct nvti nvti_t;
68 
69 vtref_t *
70 vtref_new (const gchar *, const gchar *, const gchar *);
71 void
73 const gchar *
74 vtref_type (const vtref_t *);
75 const gchar *
76 vtref_id (const vtref_t *);
77 const gchar *
78 vtref_text (const vtref_t *);
79 
81 vtseverity_new (const gchar *, const gchar *, int, double, const gchar *);
82 void
84 const gchar *
86 const gchar *
88 const gchar *
90 int
92 double
94 
95 int
97 guint
98 nvti_vtref_len (const nvti_t *);
99 vtref_t *
100 nvti_vtref (const nvti_t *, guint);
101 
102 int
104 guint
105 nvti_vtseverities_len (const nvti_t *);
106 vtseverity_t *
107 nvti_vtseverity (const nvti_t *, guint);
108 double
109 nvti_severity_score (const nvti_t *);
110 gchar *
112 
113 nvti_t *
114 nvti_new (void);
115 void
116 nvti_free (nvti_t *);
117 
118 gchar *
119 nvti_oid (const nvti_t *);
120 gchar *
121 nvti_name (const nvti_t *);
122 gchar *
123 nvti_summary (const nvti_t *);
124 gchar *
125 nvti_affected (const nvti_t *);
126 gchar *
127 nvti_impact (const nvti_t *);
128 time_t
129 nvti_creation_time (const nvti_t *);
130 time_t
132 gchar *
133 nvti_insight (const nvti_t *);
134 gchar *
135 nvti_refs (const nvti_t *, const gchar *, const char *, guint);
136 gchar *
137 nvti_solution (const nvti_t *);
138 gchar *
139 nvti_solution_type (const nvti_t *);
140 gchar *
141 nvti_solution_method (const nvti_t *);
142 gchar *
143 nvti_tag (const nvti_t *);
144 gchar *
145 nvti_get_tag (const nvti_t *, const gchar *);
146 gchar *
147 nvti_cvss_base (const nvti_t *);
148 gchar *
149 nvti_dependencies (const nvti_t *);
150 gchar *
151 nvti_required_keys (const nvti_t *);
152 gchar *
153 nvti_mandatory_keys (const nvti_t *);
154 gchar *
155 nvti_excluded_keys (const nvti_t *);
156 gchar *
157 nvti_required_ports (const nvti_t *);
158 gchar *
160 gchar *
161 nvti_detection (const nvti_t *);
162 gchar *
163 nvti_qod_type (const nvti_t *);
164 gchar *
165 nvti_qod (const nvti_t *);
166 gint
168 gint
169 nvti_category (const nvti_t *);
170 gchar *
171 nvti_family (const nvti_t *);
172 guint
173 nvti_pref_len (const nvti_t *);
174 const nvtpref_t *
175 nvti_pref (const nvti_t *, guint);
176 
177 int
178 nvti_set_oid (nvti_t *, const gchar *);
179 int
180 nvti_set_name (nvti_t *, const gchar *);
181 int
182 nvti_set_summary (nvti_t *, const gchar *);
183 int
184 nvti_set_insight (nvti_t *, const gchar *);
185 int
186 nvti_set_affected (nvti_t *, const gchar *);
187 int
188 nvti_set_impact (nvti_t *, const gchar *);
189 int
190 nvti_set_creation_time (nvti_t *, const time_t);
191 int
192 nvti_set_modification_time (nvti_t *, const time_t);
193 int
194 nvti_set_solution (nvti_t *, const gchar *);
195 int
196 nvti_set_solution_type (nvti_t *, const gchar *);
197 int
198 nvti_set_solution_method (nvti_t *, const gchar *);
199 int
200 nvti_add_tag (nvti_t *, const gchar *, const gchar *);
201 int
202 nvti_set_tag (nvti_t *, const gchar *);
203 int
204 nvti_set_cvss_base (nvti_t *, const gchar *);
205 int
206 nvti_set_dependencies (nvti_t *, const gchar *);
207 int
208 nvti_set_required_keys (nvti_t *, const gchar *);
209 int
210 nvti_set_mandatory_keys (nvti_t *, const gchar *);
211 int
212 nvti_set_excluded_keys (nvti_t *, const gchar *);
213 int
214 nvti_set_required_ports (nvti_t *, const gchar *);
215 int
216 nvti_set_required_udp_ports (nvti_t *, const gchar *);
217 int
218 nvti_set_detection (nvti_t *, const gchar *);
219 int
220 nvti_set_qod_type (nvti_t *, const gchar *);
221 int
222 nvti_set_qod (nvti_t *, const gchar *);
223 int
224 nvti_set_timeout (nvti_t *, const gint);
225 int
226 nvti_set_category (nvti_t *, const gint);
227 int
228 nvti_set_family (nvti_t *, const gchar *);
229 
230 int
231 nvti_add_refs (nvti_t *, const gchar *, const gchar *, const gchar *);
232 int
233 nvti_add_required_keys (nvti_t *, const gchar *);
234 int
235 nvti_add_mandatory_keys (nvti_t *, const gchar *);
236 int
237 nvti_add_excluded_keys (nvti_t *, const gchar *);
238 int
239 nvti_add_required_ports (nvti_t *, const gchar *);
240 int
241 nvti_add_required_udp_ports (nvti_t *, const gchar *);
242 int
244 
245 /* Collections of NVT Infos. */
246 
250 typedef GHashTable nvtis_t;
251 
252 nvtis_t *
253 nvtis_new (void);
254 
255 void
256 nvtis_free (nvtis_t *);
257 
258 void
259 nvtis_add (nvtis_t *, nvti_t *);
260 
261 nvti_t *
262 nvtis_lookup (nvtis_t *, const char *);
263 
264 #endif /* not _NVTI_H */
int nvti_set_qod(nvti_t *, const gchar *)
Set the QoD of a NVT.
Definition: nvti.c:1793
void nvtpref_free(nvtpref_t *)
Free memory of a nvtpref structure.
Definition: nvti.c:536
gchar * nvti_summary(const nvti_t *)
Get the summary.
Definition: nvti.c:692
void nvtis_add(nvtis_t *, nvti_t *)
Add an NVT Info to a collection of NVT Infos.
Definition: nvti.c:2126
gchar * nvti_tag(const nvti_t *)
Get the tags.
Definition: nvti.c:1019
nvtpref_t * nvtpref_new(int, gchar *, gchar *, gchar *)
Create a new nvtpref structure filled with the given values.
Definition: nvti.c:515
gchar * nvti_required_keys(const nvti_t *)
Get the required keys list.
Definition: nvti.c:1099
gchar * nvti_solution(const nvti_t *)
Get the solution.
Definition: nvti.c:977
int nvti_set_modification_time(nvti_t *, const time_t)
Set the modification time of a NVT.
Definition: nvti.c:1406
int nvti_set_dependencies(nvti_t *, const gchar *)
Set the dependencies of a NVT.
Definition: nvti.c:1605
gchar * nvti_qod_type(const nvti_t *)
Get the QoD type.
Definition: nvti.c:1183
guint nvti_pref_len(const nvti_t *)
Get the number of preferences of the NVT.
Definition: nvti.c:1224
gchar * nvti_refs(const nvti_t *, const gchar *, const char *, guint)
gchar * nvti_oid(const nvti_t *)
Get the OID string.
Definition: nvti.c:664
const nvtpref_t * nvti_pref(const nvti_t *, guint)
Get the n'th preferences of the NVT.
Definition: nvti.c:1239
vtref_t * vtref_new(const gchar *, const gchar *, const gchar *)
Create a new vtref structure filled with the given values.
Definition: nvti.c:92
guint nvti_vtref_len(const nvti_t *)
Get the number of references of the NVT.
Definition: nvti.c:775
gchar * nvti_qod(const nvti_t *)
Get the QoD.
Definition: nvti.c:1197
void nvtis_free(nvtis_t *)
Free a collection of NVT Infos.
Definition: nvti.c:2113
int nvti_set_solution_method(nvti_t *, const gchar *)
Set the solution method of a NVT.
Definition: nvti.c:1467
gint nvti_timeout(const nvti_t *)
double nvti_severity_score(const nvti_t *)
Get the maximum severity score.
Definition: nvti.c:921
gchar * nvtpref_default(const nvtpref_t *)
Get the Default of a NVT Preference.
Definition: nvti.c:598
time_t nvti_modification_time(const nvti_t *)
Get the modification time.
Definition: nvti.c:762
double vtseverity_score(const vtseverity_t *)
Get the score of a severity.
Definition: nvti.c:295
int nvti_add_pref(nvti_t *, nvtpref_t *)
Add a preference to the NVT Info.
Definition: nvti.c:2073
time_t nvti_creation_time(const nvti_t *)
Get the creation time.
Definition: nvti.c:748
nvtis_t * nvtis_new(void)
Make a collection of NVT Infos.
Definition: nvti.c:2101
int nvti_set_family(nvti_t *, const gchar *)
Set the family of a NVT.
Definition: nvti.c:1816
gchar * nvti_required_udp_ports(const nvti_t *)
Get the required udp ports list.
Definition: nvti.c:1155
int nvti_set_insight(nvti_t *, const gchar *)
Set the insight text of a NVT.
Definition: nvti.c:1327
int nvti_set_cvss_base(nvti_t *, const gchar *)
Set the CVSS base of an NVT.
Definition: nvti.c:1581
gchar * nvti_affected(const nvti_t *)
Get the text about affected systems.
Definition: nvti.c:720
const gchar * vtseverity_value(const vtseverity_t *)
Get the value of a severity.
Definition: nvti.c:267
int nvti_set_creation_time(nvti_t *, const time_t)
Set the creation time of a NVT.
Definition: nvti.c:1387
nvti_t * nvtis_lookup(nvtis_t *, const char *)
Add an NVT Info to a collection of NVT Infos.
Definition: nvti.c:2143
int nvti_set_required_udp_ports(nvti_t *, const gchar *)
Set the required udp ports of a NVT.
Definition: nvti.c:1725
int nvti_add_vtseverity(nvti_t *, vtseverity_t *)
Add a severity to the VT Info.
Definition: nvti.c:477
int nvti_set_detection(nvti_t *, const gchar *)
Set the detection text of a NVT.
Definition: nvti.c:1748
int nvti_set_tag(nvti_t *, const gchar *)
Set the tags of a NVT.
Definition: nvti.c:1558
gchar * nvti_required_ports(const nvti_t *)
Get the required ports list.
Definition: nvti.c:1141
int nvti_add_mandatory_keys(nvti_t *, const gchar *)
Add a mandatory key of a NVT.
Definition: nvti.c:1945
const gchar * vtseverity_origin(const vtseverity_t *)
Get the origin of a severity.
Definition: nvti.c:253
int nvti_add_excluded_keys(nvti_t *, const gchar *)
Add a excluded key of a NVT.
Definition: nvti.c:1977
int nvti_set_qod_type(nvti_t *, const gchar *)
Set the QoD type of a NVT.
Definition: nvti.c:1769
gchar * nvti_solution_type(const nvti_t *)
Get the solution type.
Definition: nvti.c:991
int nvti_add_tag(nvti_t *, const gchar *, const gchar *)
Add a tag to the NVT tags. The tag names "severity_date", "last_modification" and "creation_date" are...
Definition: nvti.c:1494
gchar * nvti_excluded_keys(const nvti_t *)
Get the excluded keys list.
Definition: nvti.c:1127
int nvti_add_required_udp_ports(nvti_t *, const gchar *)
Add a required udp port of a NVT.
Definition: nvti.c:2041
int nvti_set_required_keys(nvti_t *, const gchar *)
Set the required keys of a NVT.
Definition: nvti.c:1629
GHashTable nvtis_t
A collection of information records corresponding to NVTs.
Definition: nvti.h:250
gchar * nvti_family(const nvti_t *)
Get the family name.
Definition: nvti.c:1211
int nvti_add_refs(nvti_t *, const gchar *, const gchar *, const gchar *)
Add many new vtref from a comma-separated list.
Definition: nvti.c:1861
int nvti_add_required_keys(nvti_t *, const gchar *)
Add a required key of a NVT.
Definition: nvti.c:1913
int nvti_set_impact(nvti_t *, const gchar *)
Set the impact text of a NVT.
Definition: nvti.c:1367
gchar * nvti_name(const nvti_t *)
Get the name.
Definition: nvti.c:678
int nvti_set_summary(nvti_t *, const gchar *)
Set the summary of a NVT.
Definition: nvti.c:1307
const gchar * vtref_id(const vtref_t *)
Get the id of a reference.
Definition: nvti.c:146
int nvti_set_timeout(nvti_t *, const gint)
const gchar * vtref_type(const vtref_t *)
Get the type of a reference.
Definition: nvti.c:132
gchar * nvtpref_name(const nvtpref_t *)
Get the Name of a NVT Preference.
Definition: nvti.c:570
int nvtpref_id(const nvtpref_t *)
Get the ID of a NVT Preference.
Definition: nvti.c:556
int nvti_set_required_ports(nvti_t *, const gchar *)
Set the required ports of a NVT.
Definition: nvti.c:1701
int nvti_set_solution_type(nvti_t *, const gchar *)
Set the solution type of a NVT.
Definition: nvti.c:1446
vtseverity_t * nvti_vtseverity(const nvti_t *, guint)
Get the n'th reference of the NVT.
Definition: nvti.c:908
int nvti_add_required_ports(nvti_t *, const gchar *)
Add a required port of a NVT.
Definition: nvti.c:2009
int nvti_set_category(nvti_t *, const gint)
Set the category type of a NVT Info.
Definition: nvti.c:1836
int nvti_set_mandatory_keys(nvti_t *, const gchar *)
Set the mandatory keys of a NVT.
Definition: nvti.c:1653
int nvti_set_affected(nvti_t *, const gchar *)
Set the affected text of a NVT.
Definition: nvti.c:1347
gchar * nvti_severity_vector_from_tag(const nvti_t *)
Get the severity score.
Definition: nvti.c:953
void vtseverity_free(vtseverity_t *)
Free memory of a vtseverity structure.
Definition: nvti.c:219
gchar * nvti_cvss_base(const nvti_t *)
Get the CVSS base.
Definition: nvti.c:1071
int vtseverity_date(const vtseverity_t *)
Get the date of a severity.
Definition: nvti.c:281
const gchar * vtseverity_type(const vtseverity_t *)
Get the type of a severity.
Definition: nvti.c:239
int nvti_set_name(nvti_t *, const gchar *)
Set the name of a NVT.
Definition: nvti.c:1287
gchar * nvti_impact(const nvti_t *)
Get the text about impact.
Definition: nvti.c:734
int nvti_add_vtref(nvti_t *, vtref_t *)
Add a reference to the VT Info.
Definition: nvti.c:458
int nvti_set_solution(nvti_t *, const gchar *)
Set the solution of a NVT.
Definition: nvti.c:1425
guint nvti_vtseverities_len(const nvti_t *)
Get the number of severities of the NVT.
Definition: nvti.c:893
vtseverity_t * vtseverity_new(const gchar *, const gchar *, int, double, const gchar *)
Create a new vtseverity structure filled with the given values.
Definition: nvti.c:196
gchar * nvti_detection(const nvti_t *)
Get the text about detection.
Definition: nvti.c:1169
void nvti_free(nvti_t *)
Free memory of a nvti structure.
Definition: nvti.c:623
gchar * nvti_mandatory_keys(const nvti_t *)
Get the mandatory keys list.
Definition: nvti.c:1113
void vtref_free(vtref_t *)
Free memory of a vtref structure.
Definition: nvti.c:112
vtref_t * nvti_vtref(const nvti_t *, guint)
Get the n'th reference of the NVT.
Definition: nvti.c:790
gchar * nvti_solution_method(const nvti_t *)
Get the solution method.
Definition: nvti.c:1005
gint nvti_category(const nvti_t *)
Get the category for this NVT.
Definition: nvti.c:1252
gchar * nvtpref_type(const nvtpref_t *)
Get the Type of a NVT Preference.
Definition: nvti.c:584
const gchar * vtref_text(const vtref_t *)
Get the text of a reference.
Definition: nvti.c:160
gchar * nvti_get_tag(const nvti_t *, const gchar *)
Get a tag value by a tag name.
Definition: nvti.c:1035
int nvti_set_oid(nvti_t *, const gchar *)
Set the OID of a NVT Info.
Definition: nvti.c:1267
int nvti_set_excluded_keys(nvti_t *, const gchar *)
Set the excluded keys of a NVT.
Definition: nvti.c:1677
gchar * nvti_dependencies(const nvti_t *)
Get the dependencies list.
Definition: nvti.c:1085
nvti_t * nvti_new(void)
Create a new (empty) nvti structure.
Definition: nvti.c:612
gchar * nvti_insight(const nvti_t *)
Get the text about insight.
Definition: nvti.c:706
The structure of a information record that corresponds to a NVT.
Definition: nvti.c:408
The structure for a preference of a NVT.
Definition: nvti.c:492
The structure for a cross reference of a VT.
Definition: nvti.c:72
The structure for a severity of a VT.
Definition: nvti.c:173