OpenVAS Libraries
6.0+beta5
|
#include <sys/select.h>
#include <netinet/in.h>
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
#include "arglists.h"
Go to the source code of this file.
Typedefs | |
typedef struct ovas_scanner_context_s * | ovas_scanner_context_t |
Functions | |
int | open_sock_tcp (struct arglist *, unsigned int, int) |
int | open_sock_udp (struct arglist *, unsigned int) |
int | open_sock_option (struct arglist *, unsigned int, int, int, int) |
int | recv_line (int, char *, size_t) |
Reads a text from the socket stream into the argument buffer, always. More... | |
int | nrecv (int, void *, int, int) |
int | socket_close (int) |
int | get_sock_infos (int sock, int *r_transport, void **r_tls_session) |
int | open_stream_connection (struct arglist *, unsigned int, int, int) |
int | open_stream_connection_ext (struct arglist *, unsigned int, int, int, const char *) |
int | open_stream_connection_unknown_encaps (struct arglist *, unsigned int, int, int *) |
int | open_stream_connection_unknown_encaps5 (struct arglist *, unsigned int, int, int *, int *) |
int | open_stream_auto_encaps_ext (struct arglist *args, unsigned int port, int timeout, int force) |
int | open_stream_auto_encaps (struct arglist *, unsigned int, int) |
int | write_stream_connection (int, void *buf, int n) |
int | read_stream_connection (int, void *, int) |
int | read_stream_connection_min (int, void *, int, int) |
int | nsend (int, void *, int, int) |
int | close_stream_connection (int) |
const char * | get_encaps_name (int) |
const char * | get_encaps_through (int) |
int | open_sock_tcp_hn (const char *, unsigned int) |
int | open_sock_opt_hn (const char *, unsigned int, int, int, int) |
void | auth_printf (struct arglist *, char *,...) |
Writes data to the global socket of the thread. More... | |
void | auth_send (struct arglist *, char *) |
char * | auth_gets (struct arglist *, char *, size_t) |
Reads data from the global socket of the thread. More... | |
int | openvas_SSL_init () |
Initializes SSL support. More... | |
int | stream_set_buffer (int, int) |
int | stream_get_buffer_sz (int) |
int | stream_get_err (int) |
void * | stream_get_ssl (int) |
ovas_scanner_context_t | ovas_scanner_context_new (int encaps, const char *certfile, const char *keyfile, const char *passwd, const char *cacertfile, int force_pubkey_auth) |
Creates a new ovas_scanner_context_t. More... | |
void | ovas_scanner_context_free (ovas_scanner_context_t) |
Frees the ovas_scanner_context_t instance ctx. More... | |
int | ovas_scanner_context_attach (ovas_scanner_context_t ctx, int soc) |
Sets up SSL/TLS on the socket soc and returns a openvas file. More... | |
int | openvas_register_connection (int s, void *ssl, gnutls_certificate_credentials_t certcred) |
int | openvas_deregister_connection (int) |
int | openvas_get_socket_from_connection (int) |
gnutls_session_t * | ovas_get_tlssession_from_connection (int) |
int | stream_zero (fd_set *) |
int | stream_set (int, fd_set *) |
int | stream_isset (int, fd_set *) |
struct in_addr | socket_get_next_source_addr () |
struct in6_addr | socket_get_next_source_v4_addr () |
struct in6_addr | socket_get_next_source_v6_addr () |
int | set_socket_source_addr (int, int, int) |
void | socket_source_init (struct in6_addr *, int family) |
int | os_send (int, void *, int, int) |
int | os_recv (int, void *, int, int) |
int | internal_send (int, char *, int) |
int | internal_recv (int, char **, int *, int *) |
int | fd_is_stream (int) |
int | stream_pending (int) |
int | stream_set_timeout (int, int) |
int | stream_set_options (int, int, int) |
void | convipv4toipv4mappedaddr (struct in_addr, struct in6_addr *) |
typedef struct ovas_scanner_context_s* ovas_scanner_context_t |
char* auth_gets | ( | struct arglist * | , |
char * | , | ||
size_t | |||
) |
Reads data from the global socket of the thread.
void auth_printf | ( | struct arglist * | , |
char * | , | ||
... | |||
) |
Writes data to the global socket of the thread.
void auth_send | ( | struct arglist * | , |
char * | |||
) |
int close_stream_connection | ( | int | ) |
void convipv4toipv4mappedaddr | ( | struct in_addr | , |
struct in6_addr * | |||
) |
int fd_is_stream | ( | int | ) |
const char* get_encaps_name | ( | int | ) |
const char* get_encaps_through | ( | int | ) |
int get_sock_infos | ( | int | sock, |
int * | r_transport, | ||
void ** | r_tls_session | ||
) |
int internal_recv | ( | int | soc, |
char ** | data, | ||
int * | data_sz, | ||
int * | msg_type | ||
) |
internal_send() / internal_recv() :
When processes are passing messages to each other, the format is <length><msg>, with <length> being a long integer. The functions internal_send() and internal_recv() encapsulate and decapsulate the messages themselves.
int internal_send | ( | int | soc, |
char * | data, | ||
int | msg_type | ||
) |
internal_send() / internal_recv() :
When processes are passing messages to each other, the format is <length><msg>, with <length> being a long integer. The functions internal_send() and internal_recv() encapsulate and decapsulate the messages themselves.
int nrecv | ( | int | , |
void * | , | ||
int | , | ||
int | |||
) |
int nsend | ( | int | , |
void * | , | ||
int | , | ||
int | |||
) |
int open_sock_opt_hn | ( | const char * | , |
unsigned | int, | ||
int | , | ||
int | , | ||
int | |||
) |
int open_sock_option | ( | struct arglist * | , |
unsigned | int, | ||
int | , | ||
int | , | ||
int | |||
) |
int open_sock_tcp | ( | struct arglist * | , |
unsigned | int, | ||
int | |||
) |
int open_sock_tcp_hn | ( | const char * | , |
unsigned | int | ||
) |
int open_sock_udp | ( | struct arglist * | , |
unsigned | int | ||
) |
int open_stream_auto_encaps | ( | struct arglist * | , |
unsigned | int, | ||
int | |||
) |
int open_stream_auto_encaps_ext | ( | struct arglist * | args, |
unsigned int | port, | ||
int | timeout, | ||
int | force | ||
) |
int open_stream_connection | ( | struct arglist * | , |
unsigned | int, | ||
int | , | ||
int | |||
) |
int open_stream_connection_ext | ( | struct arglist * | , |
unsigned | int, | ||
int | , | ||
int | , | ||
const char * | |||
) |
int open_stream_connection_unknown_encaps | ( | struct arglist * | , |
unsigned | int, | ||
int | , | ||
int * | |||
) |
int open_stream_connection_unknown_encaps5 | ( | struct arglist * | args, |
unsigned int | port, | ||
int | timeout, | ||
int * | p, | ||
int * | delta_t | ||
) |
delta_t | time in micro-seconds |
int openvas_deregister_connection | ( | int | ) |
int openvas_get_socket_from_connection | ( | int | ) |
int openvas_register_connection | ( | int | soc, |
void * | ssl, | ||
gnutls_certificate_credentials_t | certcred | ||
) |
soc | Socket to use. |
int openvas_SSL_init | ( | ) |
Initializes SSL support.
int os_recv | ( | int | , |
void * | , | ||
int | , | ||
int | |||
) |
int os_send | ( | int | , |
void * | , | ||
int | , | ||
int | |||
) |
gnutls_session_t* ovas_get_tlssession_from_connection | ( | int | ) |
int ovas_scanner_context_attach | ( | ovas_scanner_context_t | ctx, |
int | soc | ||
) |
Sets up SSL/TLS on the socket soc and returns a openvas file.
descriptor.
The parameters for the SSL/TLS layer are taken from ctx. Afterwards, the credentials of ctx are also referenced by the SSL/TLS objects associated with the openvas file descriptor. This means that the context ctx must not be freed until the openvas file descriptor is closed.
If the context's force_pubkey_auth member is true (!= 0), the client must provide a certificate. If force_pubkey_auth is false, the client certificate is optional. In any case, if the client provides a certificate, the certificate is verified. If the verification fails, ovas_scanner_context_attach returns -1.
void ovas_scanner_context_free | ( | ovas_scanner_context_t | ctx | ) |
Frees the ovas_scanner_context_t instance ctx.
If ctx is NULL, nothing is done.
ctx | ovas_scanner_context_t to free. |
ovas_scanner_context_t ovas_scanner_context_new | ( | int | encaps, |
const char * | certfile, | ||
const char * | keyfile, | ||
const char * | passwd, | ||
const char * | cafile, | ||
int | force_pubkey_auth | ||
) |
Creates a new ovas_scanner_context_t.
The parameter encaps should be one of the OPENVAS_ENCAPS_* constants. If any of the SSL encapsulations are used, the parameters certfile, keyfile, and cafile should be the filenames of the scanner certificate and corresponding key and the CA certificate. The optional passwd parameter is used as the password to decrypt the keyfile if it is encrypted.
The force_pubkey_auth parameter is a boolean controlling public key authentication of the client. If force_pubkey_auth is true, the client must authenticate itself with a certificate. Otherwise the client will be asked for a certificate but doesn't have to present one.
int read_stream_connection | ( | int | , |
void * | , | ||
int | |||
) |
int read_stream_connection_min | ( | int | , |
void * | , | ||
int | , | ||
int | |||
) |
int recv_line | ( | int | soc, |
char * | buf, | ||
size_t | bufsiz | ||
) |
Reads a text from the socket stream into the argument buffer, always.
appending a '\0' byte.
buf | Buffer to read into. |
int set_socket_source_addr | ( | int | , |
int | , | ||
int | |||
) |
int socket_close | ( | int | ) |
|
read |
|
read |
|
read |
void socket_source_init | ( | struct in6_addr * | , |
int | family | ||
) |
int stream_get_buffer_sz | ( | int | ) |
int stream_get_err | ( | int | ) |
void* stream_get_ssl | ( | int | fd | ) |
TLS: This function is only used in one place, openvas-plugins/plugins/ssl_ciphers/ssl_ciphers.c:145 (function plugin_run). The code there prints information about the certificates and the server's ciphers if sslv2 is used. Some of the functionality should perhaps be moved to openvas-libraries.
int stream_isset | ( | int | , |
fd_set * | |||
) |
int stream_pending | ( | int | ) |
int stream_set | ( | int | , |
fd_set * | |||
) |
int stream_set_buffer | ( | int | , |
int | |||
) |
int stream_set_options | ( | int | , |
int | , | ||
int | |||
) |
int stream_set_timeout | ( | int | , |
int | |||
) |
int stream_zero | ( | fd_set * | ) |
int write_stream_connection | ( | int | , |
void * | buf, | ||
int | n | ||
) |