Greenbone Vulnerability Management Libraries 22.22.0
openvasd.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2024 Greenbone AG
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later
4 */
5
10
11#ifndef _GVM_OPENVASD_H
12#define _GVM_OPENVASD_H
13
14#include "../base/nvti.h"
15#include "../util/jsonpull.h"
16
17#include <glib.h>
18#include <stdio.h>
19#include <time.h>
20
23{
24 unsigned long id;
25 gchar *type;
26 gchar *ip_address;
27 gchar *hostname;
28 gchar *oid;
29 gchar *port;
30 gchar *message;
36};
37
47
60
75
80
94
96{
97 long code;
98 gchar *body;
99 gchar *header;
100};
101
110
111typedef struct
112{
113 int start;
114 int end;
115 const gchar *titles;
117
119
121
123
125
127
129
131
133
134// Functions to build/free request data
137
140 const void *);
141
143
145
146// Requests
148
150
153
155
157
160
162openvasd_result_new (unsigned long, gchar *, gchar *, gchar *, gchar *, gchar *,
163 gchar *, gchar *, gchar *, gchar *, gchar *, gchar *,
164 gchar *);
165
167
170
173
174int
175openvasd_parsed_results (openvasd_connector_t, unsigned long, unsigned long,
176 GSList **);
177
179
181
183
185
187
189
192int
195 gchar **err);
196
197/* Scanner preferences */
198
200
202
203int
205
206void
208
209char *
211
212char *
214
215char *
217
218int
220
221char *
223
224char *
226
227/* Target builder */
229
231
233
235openvasd_target_new (const gchar *, const gchar *, const gchar *, const gchar *,
236 int, int);
237
238void
240
241void
243 gboolean, gboolean, gboolean);
244
245void
247
249openvasd_credential_new (const gchar *, const gchar *, const gchar *);
250
251void
253 const gchar *);
254void
256
257void
259
261openvasd_vt_single_new (const gchar *);
262
263void
265
266void
268 const gchar *);
269
270char *
271openvasd_build_scan_config_json (openvasd_target_t *, GHashTable *, GSList *);
272
273/* VT stream */
275
277
279
281
283
284#endif
Protos and data structures for NVT Information data sets.
void openvasd_credential_set_auth_data(openvasd_credential_t *, const gchar *, const gchar *)
Get authentication data from an openvasd credential.
Definition openvasd.c:1810
openvasd_resp_t openvasd_get_scan_preferences(openvasd_connector_t)
Definition openvasd.c:1304
openvasd_resp_t openvasd_get_version(openvasd_connector_t)
Request HEAD.
Definition openvasd.c:342
OPENVASD_RESULT_MEMBER_INT
Definition openvasd.h:77
@ ID
Definition openvasd.h:78
char * openvasd_param_desc(openvasd_param_t *)
Get the parameter description.
Definition openvasd.c:1395
openvasd_scan_status_t openvasd_parsed_scan_status(openvasd_connector_t)
Return a struct with the general scan status.
Definition openvasd.c:1099
enum OPENVASD_RESULT_MEMBER_STRING openvasd_result_member_string_t
Definition openvasd.h:122
openvasd_resp_t openvasd_get_health_ready(openvasd_connector_t)
Definition openvasd.c:1185
size_t openvasd_vt_stream_len(openvasd_connector_t)
Definition openvasd.c:450
openvasd_resp_t openvasd_get_health_alive(openvasd_connector_t)
Definition openvasd.c:1165
struct openvasd_credential openvasd_credential_t
Definition openvasd.h:232
OPENVASD_ERROR
Openvasd Errors.
Definition openvasd.h:40
@ OPENVASD_NOT_INITIALIZED
Definition openvasd.h:42
@ OPENVASD_INVALID_OPT
Definition openvasd.h:41
@ OPENVASD_INVALID_VALUE
Definition openvasd.h:43
@ OPENVASD_OK
Definition openvasd.h:45
void openvasd_target_add_credential(openvasd_target_t *, openvasd_credential_t *)
Add a credential to an openvasd target.
Definition openvasd.c:1934
openvasd_resp_t openvasd_get_vts(openvasd_connector_t)
Get VT's metadata.
Definition openvasd.c:505
void openvasd_target_free(openvasd_target_t *)
Free an openvasd target, including all added credentials.
Definition openvasd.c:1885
openvasd_resp_t openvasd_get_vt_stream_init(openvasd_connector_t)
Initialized an curl multiperform handler which allows fetch feed metadata chunk by chunk.
Definition openvasd.c:365
openvasd_resp_t openvasd_start_scan(openvasd_connector_t, gchar *)
Definition openvasd.c:531
int openvasd_parsed_results(openvasd_connector_t, unsigned long, unsigned long, GSList **)
Definition openvasd.c:877
openvasd_resp_t openvasd_get_scan_status(openvasd_connector_t)
Definition openvasd.c:895
void openvasd_target_set_finished_hosts(openvasd_target_t *, const gchar *)
Set the finished hosts of an openvasd target.
Definition openvasd.c:1872
int openvasd_parsed_scans_preferences(openvasd_connector_t, GSList **)
Definition openvasd.c:1446
openvasd_credential_t * openvasd_credential_new(const gchar *, const gchar *, const gchar *)
Allocate and initialize a new openvasd credential.
Definition openvasd.c:1768
int openvasd_get_scan_progress(openvasd_connector_t)
Definition openvasd.c:1035
openvasd_vt_single_t * openvasd_vt_single_new(const gchar *)
Create a new single openvasd VT.
Definition openvasd.c:1951
openvasd_connector_t openvasd_connector_new(void)
Initialize an openvasd connector.
Definition openvasd.c:109
int openvasd_get_result_member_int(openvasd_result_t, openvasd_result_member_int_t)
Definition openvasd.c:761
openvasd_resp_t openvasd_get_performance(openvasd_connector_t, openvasd_get_performance_opts_t)
Definition openvasd.c:1226
openvasd_resp_t openvasd_get_health_started(openvasd_connector_t)
Definition openvasd.c:1206
char * openvasd_param_default(openvasd_param_t *)
Get the parameter default.
Definition openvasd.c:1423
struct openvasd_vt_single openvasd_vt_single_t
Definition openvasd.h:230
int openvasd_parsed_performance(openvasd_connector_t, openvasd_get_performance_opts_t, gchar **, gchar **err)
Definition openvasd.c:1265
openvasd_resp_t openvasd_stop_scan(openvasd_connector_t)
Definition openvasd.c:613
openvasd_error_t openvasd_connector_free(openvasd_connector_t)
Build a openvasd connector.
Definition openvasd.c:188
void openvasd_reset_vt_stream(openvasd_connector_t)
Definition openvasd.c:438
openvasd_resp_t openvasd_get_scan_results(openvasd_connector_t, long, long)
Definition openvasd.c:648
openvasd_resp_t openvasd_delete_scan(openvasd_connector_t)
Definition openvasd.c:1125
char * openvasd_get_result_member_str(openvasd_result_t, openvasd_result_member_string_t)
Definition openvasd.c:725
void openvasd_vt_single_free(openvasd_vt_single_t *)
Free a single openvasd VT, including all preference values.
Definition openvasd.c:1969
openvasd_target_t * openvasd_target_new(const gchar *, const gchar *, const gchar *, const gchar *, int, int)
Create a new openvasd target.
Definition openvasd.c:1843
int openvasd_param_mandatory(openvasd_param_t *)
If the parameter is mandatory.
Definition openvasd.c:1437
void openvasd_response_cleanup(openvasd_resp_t)
Free an openvasd response struct.
Definition openvasd.c:213
void openvasd_target_add_alive_test_methods(openvasd_target_t *, gboolean, gboolean, gboolean, gboolean, gboolean)
Add alive test methods to openvasd target.
Definition openvasd.c:1912
struct openvasd_connector * openvasd_connector_t
Definition openvasd.h:130
struct openvasd_target openvasd_target_t
Definition openvasd.h:228
OPENVASD_CONNECTOR_OPTS
Openvasd options for the connector builder.
Definition openvasd.h:50
@ OPENVASD_API_KEY
Definition openvasd.h:54
@ OPENVASD_CA_CERT
Definition openvasd.h:51
@ OPENVASD_KEY
Definition openvasd.h:53
@ OPENVASD_SCAN_ID
Definition openvasd.h:57
@ OPENVASD_PROTOCOL
Definition openvasd.h:55
@ OPENVASD_CERT
Definition openvasd.h:52
@ OPENVASD_PORT
Definition openvasd.h:58
@ OPENVASD_HOST
Definition openvasd.h:56
struct openvasd_param openvasd_param_t
Definition openvasd.h:199
openvasd_status_t
Openvasd scan status.
Definition openvasd.h:85
@ OPENVASD_SCAN_STATUS_SUCCEEDED
Definition openvasd.h:92
@ OPENVASD_SCAN_STATUS_RUNNING
Definition openvasd.h:90
@ OPENVASD_SCAN_STATUS_STOPPED
Definition openvasd.h:91
@ OPENVASD_SCAN_STATUS_STORED
Definition openvasd.h:88
@ OPENVASD_SCAN_STATUS_REQUESTED
Definition openvasd.h:89
@ OPENVASD_SCAN_STATUS_ERROR
Definition openvasd.h:86
@ OPENVASD_SCAN_STATUS_FAILED
Definition openvasd.h:87
struct openvasd_result * openvasd_result_t
Definition openvasd.h:128
char * openvasd_vt_stream_str(openvasd_connector_t)
Definition openvasd.c:444
void openvasd_result_free(openvasd_result_t)
Definition openvasd.c:777
enum OPENVASD_CONNECTOR_OPTS openvasd_conn_opt_t
Definition openvasd.h:124
char * openvasd_param_type(openvasd_param_t *)
Get the parameter type.
Definition openvasd.c:1409
openvasd_result_t openvasd_result_new(unsigned long, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *)
Definition openvasd.c:692
char * openvasd_param_id(openvasd_param_t *)
Get the parameter id.
Definition openvasd.c:1367
char * openvasd_build_scan_config_json(openvasd_target_t *, GHashTable *, GSList *)
Build a json object with data necessary to start a scan.
Definition openvasd.c:1633
void openvasd_param_free(openvasd_param_t *)
Free an openvasd parameter.
Definition openvasd.c:1350
openvasd_error_t openvasd_connector_builder(openvasd_connector_t, openvasd_conn_opt_t, const void *)
Build a openvasd connector.
Definition openvasd.c:132
enum OPENVASD_RESULT_MEMBER_INT openvasd_result_member_int_t
Definition openvasd.h:120
void openvasd_vt_single_add_value(openvasd_vt_single_t *, const gchar *, const gchar *)
Add a preference value to an openvasd VT.
Definition openvasd.c:1990
void openvasd_credential_free(openvasd_credential_t *)
Free an openvasd credential.
Definition openvasd.c:1790
char * openvasd_param_name(openvasd_param_t *)
Get the parameter default.
Definition openvasd.c:1381
int openvasd_get_vt_stream(openvasd_connector_t)
Get a new feed metadata chunk.
Definition openvasd.c:467
struct openvasd_scan_status * openvasd_scan_status_t
Definition openvasd.h:132
struct openvasd_response * openvasd_resp_t
Definition openvasd.h:118
enum OPENVASD_ERROR openvasd_error_t
Definition openvasd.h:126
OPENVASD_RESULT_MEMBER_STRING
Definition openvasd.h:62
@ DETAIL_NAME
Definition openvasd.h:69
@ DETAIL_VALUE
Definition openvasd.h:70
@ DETAIL_SOURCE_DESCRIPTION
Definition openvasd.h:73
@ DETAIL_SOURCE_NAME
Definition openvasd.h:71
@ PORT
Definition openvasd.h:67
@ DETAIL_SOURCE_TYPE
Definition openvasd.h:72
@ HOSTNAME
Definition openvasd.h:65
@ MESSAGE
Definition openvasd.h:68
@ TYPE
Definition openvasd.h:63
@ IP_ADDRESS
Definition openvasd.h:64
@ OID
Definition openvasd.h:66
Struct holding the data for connecting with openvasd.
Definition openvasd.c:38
Struct credential information for openvasd.
Definition openvasd.c:67
Definition openvasd.h:112
const gchar * titles
Definition openvasd.h:115
int end
Definition openvasd.h:114
int start
Definition openvasd.h:113
Struct holding options for openvasd parameters.
Definition openvasd.c:54
Definition openvasd.h:96
gchar * header
Definition openvasd.h:99
gchar * body
Definition openvasd.h:98
long code
Definition openvasd.h:97
Struct to hold an scan result.
Definition openvasd.h:23
gchar * ip_address
Definition openvasd.h:26
gchar * oid
Definition openvasd.h:28
gchar * detail_source_name
Definition openvasd.h:34
gchar * message
Definition openvasd.h:30
gchar * type
Definition openvasd.h:25
gchar * detail_source_description
Definition openvasd.h:35
gchar * port
Definition openvasd.h:29
gchar * hostname
Definition openvasd.h:27
gchar * detail_name
Definition openvasd.h:31
unsigned long id
Definition openvasd.h:24
gchar * detail_value
Definition openvasd.h:32
gchar * detail_source_type
Definition openvasd.h:33
Definition openvasd.h:103
int progress
Definition openvasd.h:106
time_t start_time
Definition openvasd.h:104
long response_code
Definition openvasd.h:108
time_t end_time
Definition openvasd.h:105
openvasd_status_t status
Definition openvasd.h:107
Struct holding target information.
Definition openvasd.c:78
Struct holding vt information.
Definition openvasd.c:98