Greenbone Vulnerability Management Libraries 22.30.0
openvasd.h File Reference

API for Openvas Daemon communication. More...

#include "../base/nvti.h"
#include "../http_scanner/http_scanner.h"
#include "../util/jsonpull.h"
#include <glib.h>
#include <stdio.h>
#include <time.h>

Go to the source code of this file.

Data Structures

struct  openvasd_get_performance_opts_t

Typedefs

typedef struct openvasd_target openvasd_target_t
typedef struct openvasd_vt_single openvasd_vt_single_t
typedef struct openvasd_credential openvasd_credential_t

Functions

http_scanner_resp_t openvasd_get_vts (http_scanner_connector_t)
 Get VT's metadata.
http_scanner_resp_t openvasd_get_performance (http_scanner_connector_t, openvasd_get_performance_opts_t)
 Get performance data.
int openvasd_parsed_performance (http_scanner_connector_t, openvasd_get_performance_opts_t, gchar **, gchar **err)
 Parse performance data.
openvasd_target_topenvasd_target_new (const gchar *, const gchar *, const gchar *, const gchar *, int, int)
 Create a new openvasd target.
void openvasd_target_set_finished_hosts (openvasd_target_t *, const gchar *)
 Set the finished hosts of an openvasd target.
void openvasd_target_add_alive_test_methods (openvasd_target_t *, gboolean, gboolean, gboolean, gboolean, gboolean)
 Add alive test methods to openvasd target.
void openvasd_target_free (openvasd_target_t *)
 Free an openvasd target, including all added credentials.
openvasd_credential_topenvasd_credential_new (const gchar *, const gchar *, const gchar *)
 Allocate and initialize a new openvasd credential.
void openvasd_credential_set_auth_data (openvasd_credential_t *, const gchar *, const gchar *)
 Get authentication data from an openvasd credential.
void openvasd_credential_free (openvasd_credential_t *)
 Free an openvasd credential.
void openvasd_target_add_credential (openvasd_target_t *, openvasd_credential_t *)
 Add a credential to an openvasd target.
openvasd_vt_single_topenvasd_vt_single_new (const gchar *)
 Create a new single openvasd VT.
void openvasd_vt_single_free (openvasd_vt_single_t *)
 Free a single openvasd VT, including all preference values.
void openvasd_vt_single_add_value (openvasd_vt_single_t *, const gchar *, const gchar *)
 Add a preference value to an openvasd VT.
char * openvasd_build_scan_config_json (openvasd_target_t *, GHashTable *, GSList *)
 Build a json object with data necessary to start a scan.
http_scanner_resp_t openvasd_get_vt_stream_init (http_scanner_connector_t)
 Fetch feed metadata chunk by chunk.
int openvasd_get_vt_stream (http_scanner_connector_t)
 Get a new feed metadata chunk.

Detailed Description

API for Openvas Daemon communication.

Typedef Documentation

◆ openvasd_credential_t

◆ openvasd_target_t

◆ openvasd_vt_single_t

Function Documentation

◆ openvasd_build_scan_config_json()

char * openvasd_build_scan_config_json ( openvasd_target_t * target,
GHashTable * scan_preferences,
GSList * vts )

Build a json object with data necessary to start a scan.

JSON result consists of scan_id, message type, host ip, hostname, port, together with proto, OID, result message and uri.

Parameters
targettarget
scan_preferencesScan preferences to be added to the scan config
vtsVTS collection to be added to the scan config.
Returns
JSON string on success. Must be freed by caller. NULL on error.

◆ openvasd_credential_free()

void openvasd_credential_free ( openvasd_credential_t * credential)

Free an openvasd credential.

Parameters
credentialThe credential to free.

◆ openvasd_credential_new()

openvasd_credential_t * openvasd_credential_new ( const gchar * type,
const gchar * service,
const gchar * port )

Allocate and initialize a new openvasd credential.

Parameters
typeThe credential type.
serviceThe service the credential is for.
portThe port.
Returns
New openvasd credential.

◆ openvasd_credential_set_auth_data()

void openvasd_credential_set_auth_data ( openvasd_credential_t * credential,
const gchar * name,
const gchar * value )

Get authentication data from an openvasd credential.

Parameters
credentialThe credential to get the data from.
nameThe name of the data item to get.
valueThe authentication data or NULL to unset.

◆ openvasd_get_performance()

http_scanner_resp_t openvasd_get_performance ( http_scanner_connector_t conn,
openvasd_get_performance_opts_t opts )

Get performance data.

Parameters
connConnector struct with the data necessary for the connection.
optsOptions for the performance request.
Returns
Response Struct containing the performance data.

◆ openvasd_get_vt_stream()

int openvasd_get_vt_stream ( http_scanner_connector_t conn)

Get a new feed metadata chunk.

This function must be call until the return value is 0, meaning there is no more data to fetch.

Parameters
connConnector struct with the data necessary for the connection
Returns
greather than 0 if the handler is still getting data. 0 if the transmision finished. -1 on error

◆ openvasd_get_vt_stream_init()

http_scanner_resp_t openvasd_get_vt_stream_init ( http_scanner_connector_t conn)

Fetch feed metadata chunk by chunk.

Parameters
connConnector struct with the data necessary for the connection
Returns
The response.

◆ openvasd_get_vts()

http_scanner_resp_t openvasd_get_vts ( http_scanner_connector_t conn)

Get VT's metadata.

Parameters
connConnector struct with the data necessary for the connection
Returns
Response Struct containing the feed metadata in json format in the body.

◆ openvasd_parsed_performance()

int openvasd_parsed_performance ( http_scanner_connector_t conn,
openvasd_get_performance_opts_t opts,
gchar ** graph,
gchar ** err )

Parse performance data.

Parameters
connConnector struct with the data necessary for the connection.
optsOptions for the performance request.
graphPointer to store the graph data.
errPointer to store error message if any.
Returns
0 on success, -1 on error.

◆ openvasd_target_add_alive_test_methods()

void openvasd_target_add_alive_test_methods ( openvasd_target_t * target,
gboolean icmp,
gboolean tcp_syn,
gboolean tcp_ack,
gboolean arp,
gboolean consider_alive )

Add alive test methods to openvasd target.

Parameters
targetThe openvasd target to add the methods to.
icmpUse ICMP ping.
tcp_synUse TCP-SYN ping.
tcp_ackUse TCP-ACK ping.
arpUse ARP ping.
consider_aliveConsider host to be alive.

◆ openvasd_target_add_credential()

void openvasd_target_add_credential ( openvasd_target_t * target,
openvasd_credential_t * credential )

Add a credential to an openvasd target.

Parameters
targetThe openvasd target to add the credential to.
credentialThe credential to add. Will be freed with target.

◆ openvasd_target_free()

void openvasd_target_free ( openvasd_target_t * target)

Free an openvasd target, including all added credentials.

Parameters
targetThe openvasd target to free.

◆ openvasd_target_new()

openvasd_target_t * openvasd_target_new ( const gchar * scanid,
const gchar * hosts,
const gchar * ports,
const gchar * exclude_hosts,
int reverse_lookup_unify,
int reverse_lookup_only )

Create a new openvasd target.

Parameters
scanidScan ID.
hostsThe hostnames of the target.
portsThe ports of the target.
exclude_hostsThe excluded hosts of the target.
reverse_lookup_unifyLookup flag.
reverse_lookup_onlyLookup flag.
Returns
The newly allocated openvasd_target_t.

◆ openvasd_target_set_finished_hosts()

void openvasd_target_set_finished_hosts ( openvasd_target_t * target,
const gchar * finished_hosts )

Set the finished hosts of an openvasd target.

Parameters
targetThe openvasd target to modify.
finished_hostsThe hostnames to consider finished.

◆ openvasd_vt_single_add_value()

void openvasd_vt_single_add_value ( openvasd_vt_single_t * vt_single,
const gchar * name,
const gchar * value )

Add a preference value to an openvasd VT.

This creates a copy of the name and value.

Parameters
vt_singleThe VT to add the preference to.
nameThe name / identifier of the preference.
valueThe value of the preference.

◆ openvasd_vt_single_free()

void openvasd_vt_single_free ( openvasd_vt_single_t * vt_single)

Free a single openvasd VT, including all preference values.

Parameters
vt_singleThe openvasd VT to free.

◆ openvasd_vt_single_new()

openvasd_vt_single_t * openvasd_vt_single_new ( const gchar * vt_id)

Create a new single openvasd VT.

Parameters
vt_idThe id of the VT.
Returns
The newly allocated single VT.