Greenbone Vulnerability Management Libraries 22.41.0
Data Structures | Typedefs | Functions
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.