Greenbone Vulnerability Management Libraries 22.18.1
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 int port;
30 gchar *protocol;
31 gchar *message;
37};
38
48
61
76
82
96
98{
99 long code;
100 gchar *body;
101 gchar *header;
102};
103
112
114
116
118
120
122
124
126
128
129// Functions to build/free request data
132
135 const void *);
136
138
140
141// Requests
143
145
148
150
152
155
157openvasd_result_new (unsigned long, gchar *, gchar *, gchar *, gchar *, int,
158 gchar *, gchar *, gchar *, gchar *, gchar *, gchar *,
159 gchar *);
160
162
165
168
169int
170openvasd_parsed_results (openvasd_connector_t, unsigned long, unsigned long,
171 GSList **);
172
174
176
178
180
182
184
185/* Scanner preferences */
186
188
190
191int
193
194void
196
197char *
199
200char *
202
203char *
205
206int
208
209char *
211
212char *
214
215/* Target builder */
217
219
221
223openvasd_target_new (const gchar *, const gchar *, const gchar *, const gchar *,
224 int, int);
225
226void
228
229void
231 gboolean, gboolean, gboolean);
232
233void
235
237openvasd_credential_new (const gchar *, const gchar *, const gchar *);
238
239void
241 const gchar *);
242void
244
245void
247
249openvasd_vt_single_new (const gchar *);
250
251void
253
254void
256 const gchar *);
257
258char *
259openvasd_build_scan_config_json (openvasd_target_t *, GHashTable *, GSList *);
260
261/* VT stream */
263
265
267
269
271
272nvti_t *
274
275#endif
struct nvti nvti_t
The structure of a information record that corresponds to a NVT.
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:2117
openvasd_resp_t openvasd_get_scan_preferences(openvasd_connector_t)
Definition openvasd.c:1595
openvasd_resp_t openvasd_get_version(openvasd_connector_t)
Request HEAD.
Definition openvasd.c:599
OPENVASD_RESULT_MEMBER_INT
Definition openvasd.h:78
@ ID
Definition openvasd.h:79
@ PORT
Definition openvasd.h:80
char * openvasd_param_desc(openvasd_param_t *)
Get the parameter description.
Definition openvasd.c:1701
openvasd_scan_status_t openvasd_parsed_scan_status(openvasd_connector_t)
Return a struct with the general scan status.
Definition openvasd.c:1411
enum OPENVASD_RESULT_MEMBER_STRING openvasd_result_member_string_t
Definition openvasd.h:117
openvasd_resp_t openvasd_get_health_ready(openvasd_connector_t)
Definition openvasd.c:1526
size_t openvasd_vt_stream_len(openvasd_connector_t)
Definition openvasd.c:688
openvasd_resp_t openvasd_get_health_alive(openvasd_connector_t)
Definition openvasd.c:1491
struct openvasd_credential openvasd_credential_t
Definition openvasd.h:220
OPENVASD_ERROR
Openvasd Errors.
Definition openvasd.h:41
@ OPENVASD_NOT_INITIALIZED
Definition openvasd.h:43
@ OPENVASD_INVALID_OPT
Definition openvasd.h:42
@ OPENVASD_INVALID_VALUE
Definition openvasd.h:44
@ OPENVASD_OK
Definition openvasd.h:46
void openvasd_target_add_credential(openvasd_target_t *, openvasd_credential_t *)
Add a credential to an Openvasd target.
Definition openvasd.c:2241
openvasd_resp_t openvasd_get_vts(openvasd_connector_t)
Get VT's metadata.
Definition openvasd.c:736
void openvasd_target_free(openvasd_target_t *)
Free an Openvasd target, including all added credentials.
Definition openvasd.c:2192
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:641
openvasd_resp_t openvasd_start_scan(openvasd_connector_t, gchar *)
Definition openvasd.c:777
int openvasd_parsed_results(openvasd_connector_t, unsigned long, unsigned long, GSList **)
Definition openvasd.c:1171
openvasd_resp_t openvasd_get_scan_status(openvasd_connector_t)
Definition openvasd.c:1189
void openvasd_target_set_finished_hosts(openvasd_target_t *, const gchar *)
Set the finished hosts of an Openvasd target.
Definition openvasd.c:2179
int openvasd_parsed_scans_preferences(openvasd_connector_t, GSList **)
Definition openvasd.c:1752
openvasd_credential_t * openvasd_credential_new(const gchar *, const gchar *, const gchar *)
Allocate and initialize a new Openvasd credential.
Definition openvasd.c:2075
int openvasd_get_scan_progress(openvasd_connector_t)
Definition openvasd.c:1347
openvasd_vt_single_t * openvasd_vt_single_new(const gchar *)
Create a new single Openvasd VT.
Definition openvasd.c:2258
openvasd_connector_t openvasd_connector_new(void)
Initialize an openvasd connector.
Definition openvasd.c:231
int openvasd_get_result_member_int(openvasd_result_t, openvasd_result_member_int_t)
Definition openvasd.c:1054
openvasd_resp_t openvasd_get_health_started(openvasd_connector_t)
Definition openvasd.c:1560
char * openvasd_param_default(openvasd_param_t *)
Get the parameter default.
Definition openvasd.c:1729
struct openvasd_vt_single openvasd_vt_single_t
Definition openvasd.h:218
openvasd_resp_t openvasd_stop_scan(openvasd_connector_t)
Definition openvasd.c:884
openvasd_error_t openvasd_connector_free(openvasd_connector_t)
Build a openvasd connector.
Definition openvasd.c:307
void openvasd_reset_vt_stream(openvasd_connector_t)
Definition openvasd.c:676
openvasd_resp_t openvasd_get_scan_results(openvasd_connector_t, long, long)
Definition openvasd.c:933
openvasd_resp_t openvasd_delete_scan(openvasd_connector_t)
Definition openvasd.c:1437
char * openvasd_get_result_member_str(openvasd_result_t, openvasd_result_member_string_t)
Definition openvasd.c:1018
void openvasd_vt_single_free(openvasd_vt_single_t *)
Free a single Openvasd VT, including all preference values.
Definition openvasd.c:2276
openvasd_target_t * openvasd_target_new(const gchar *, const gchar *, const gchar *, const gchar *, int, int)
Create a new Openvasd target.
Definition openvasd.c:2150
int openvasd_param_mandatory(openvasd_param_t *)
If the parameter is mandatory.
Definition openvasd.c:1743
void openvasd_response_cleanup(openvasd_resp_t)
Free an openvasd response struct.
Definition openvasd.c:332
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:2219
struct openvasd_connector * openvasd_connector_t
Definition openvasd.h:125
struct openvasd_target openvasd_target_t
Definition openvasd.h:216
OPENVASD_CONNECTOR_OPTS
Openvasd options for the connector builder.
Definition openvasd.h:51
@ OPENVASD_API_KEY
Definition openvasd.h:55
@ OPENVASD_SERVER
Definition openvasd.h:56
@ OPENVASD_CA_CERT
Definition openvasd.h:52
@ OPENVASD_KEY
Definition openvasd.h:54
@ OPENVASD_SCAN_ID
Definition openvasd.h:58
@ OPENVASD_CERT
Definition openvasd.h:53
@ OPENVASD_PORT
Definition openvasd.h:59
@ OPENVASD_HOST
Definition openvasd.h:57
struct openvasd_param openvasd_param_t
Definition openvasd.h:187
openvasd_status_t
Openvasd scan status.
Definition openvasd.h:87
@ OPENVASD_SCAN_STATUS_SUCCEEDED
Definition openvasd.h:94
@ OPENVASD_SCAN_STATUS_RUNNING
Definition openvasd.h:92
@ OPENVASD_SCAN_STATUS_STOPPED
Definition openvasd.h:93
@ OPENVASD_SCAN_STATUS_STORED
Definition openvasd.h:90
@ OPENVASD_SCAN_STATUS_REQUESTED
Definition openvasd.h:91
@ OPENVASD_SCAN_STATUS_ERROR
Definition openvasd.h:88
@ OPENVASD_SCAN_STATUS_FAILED
Definition openvasd.h:89
struct openvasd_result * openvasd_result_t
Definition openvasd.h:123
char * openvasd_vt_stream_str(openvasd_connector_t)
Definition openvasd.c:682
void openvasd_result_free(openvasd_result_t)
Definition openvasd.c:1072
enum OPENVASD_CONNECTOR_OPTS openvasd_conn_opt_t
Definition openvasd.h:119
char * openvasd_param_type(openvasd_param_t *)
Get the parameter type.
Definition openvasd.c:1715
char * openvasd_param_id(openvasd_param_t *)
Get the parameter id.
Definition openvasd.c:1673
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:1940
void openvasd_param_free(openvasd_param_t *)
Free an Openvasd parameter.
Definition openvasd.c:1656
openvasd_error_t openvasd_connector_builder(openvasd_connector_t, openvasd_conn_opt_t, const void *)
Build a openvasd connector.
Definition openvasd.c:254
enum OPENVASD_RESULT_MEMBER_INT openvasd_result_member_int_t
Definition openvasd.h:115
nvti_t * openvasd_parse_vt(gvm_json_pull_parser_t *, gvm_json_pull_event_t *)
Parse a VT element given in json format.
Definition vtparser.c:246
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:2297
void openvasd_credential_free(openvasd_credential_t *)
Free an Openvasd credential.
Definition openvasd.c:2097
char * openvasd_param_name(openvasd_param_t *)
Get the parameter default.
Definition openvasd.c:1687
int openvasd_get_vt_stream(openvasd_connector_t)
Get a new feed metadata chunk.
Definition openvasd.c:705
struct openvasd_scan_status * openvasd_scan_status_t
Definition openvasd.h:127
struct openvasd_response * openvasd_resp_t
Definition openvasd.h:113
openvasd_result_t openvasd_result_new(unsigned long, gchar *, gchar *, gchar *, gchar *, int, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *, gchar *)
Definition openvasd.c:992
enum OPENVASD_ERROR openvasd_error_t
Definition openvasd.h:121
OPENVASD_RESULT_MEMBER_STRING
Definition openvasd.h:63
@ DETAIL_NAME
Definition openvasd.h:70
@ DETAIL_VALUE
Definition openvasd.h:71
@ DETAIL_SOURCE_DESCRIPTION
Definition openvasd.h:74
@ PROTOCOL
Definition openvasd.h:68
@ DETAIL_SOURCE_NAME
Definition openvasd.h:72
@ DETAIL_SOURCE_TYPE
Definition openvasd.h:73
@ HOSTNAME
Definition openvasd.h:66
@ MESSAGE
Definition openvasd.h:69
@ TYPE
Definition openvasd.h:64
@ IP_ADDRESS
Definition openvasd.h:65
@ OID
Definition openvasd.h:67
Event generated by the JSON pull parser.
Definition jsonpull.h:59
A json pull parser.
Definition jsonpull.h:86
Struct holding the data for connecting with Openvasd.
Definition openvasd.c:61
Struct credential information for Openvasd.
Definition openvasd.c:90
Struct holding options for Openvasd parameters.
Definition openvasd.c:77
Definition openvasd.h:98
gchar * header
Definition openvasd.h:101
gchar * body
Definition openvasd.h:100
long code
Definition openvasd.h:99
Struct to hold an scan result.
Definition openvasd.h:23
int port
Definition openvasd.h:29
gchar * ip_address
Definition openvasd.h:26
gchar * oid
Definition openvasd.h:28
gchar * protocol
Definition openvasd.h:30
gchar * detail_source_name
Definition openvasd.h:35
gchar * message
Definition openvasd.h:31
gchar * type
Definition openvasd.h:25
gchar * detail_source_description
Definition openvasd.h:36
gchar * hostname
Definition openvasd.h:27
gchar * detail_name
Definition openvasd.h:32
unsigned long id
Definition openvasd.h:24
gchar * detail_value
Definition openvasd.h:33
gchar * detail_source_type
Definition openvasd.h:34
Definition openvasd.h:105
int progress
Definition openvasd.h:108
time_t start_time
Definition openvasd.h:106
long response_code
Definition openvasd.h:110
time_t end_time
Definition openvasd.h:107
openvasd_status_t status
Definition openvasd.h:109
Struct holding target information.
Definition openvasd.c:101
Struct holding vt information.
Definition openvasd.c:121