OpenVAS Libraries  9.0.1
openvas_server.h
Go to the documentation of this file.
1 
34 #ifndef _OPENVAS_LIBRARIES_SERVER_H
35 #define _OPENVAS_LIBRARIES_SERVER_H
36 
37 #ifdef __cplusplus
38 extern "C"
39 {
40 #if 0
41 }
42 #endif
43 #endif
44 
45 #include <glib.h>
46 #include <stdarg.h>
47 #include <gnutls/gnutls.h>
48 #include <gnutls/x509.h>
49 #ifdef _WIN32
50 #include <winsock2.h>
51 #else
52 #include <netinet/ip.h>
53 #endif
54 
58 typedef struct
59 {
60  int tls;
61  int socket;
62  gnutls_session_t session;
63  gnutls_certificate_credentials_t credentials;
64  gchar *username;
65  gchar *password;
66  gchar *host_string;
67  gchar *port_string;
68  gint port;
69  gboolean use_certs;
70  gchar *ca_cert;
71  gchar *pub_key;
72  gchar *priv_key;
74 
76 
78 
79 int openvas_server_verify (gnutls_session_t);
80 
81 int openvas_server_open (gnutls_session_t *, const char *, int);
82 
83 int openvas_server_open_verify (gnutls_session_t *, const char *, int,
84  const char *, const char *, const char *,
85  int);
86 
87 int openvas_server_open_with_cert (gnutls_session_t *, const char *, int,
88  const char *, const char *, const char *);
89 
90 int openvas_server_close (int, gnutls_session_t);
91 
92 int openvas_server_connect (int, struct sockaddr_in *, gnutls_session_t *);
93 
94 int openvas_server_attach (int, gnutls_session_t *);
95 
96 int openvas_server_sendf (gnutls_session_t *, const char *, ...)
97  __attribute__ ((format (printf, 2, 3)));
98 
99 int openvas_server_vsendf (gnutls_session_t *, const char *, va_list);
100 
101 int openvas_server_sendf_xml (gnutls_session_t *, const char *, ...);
102 int openvas_server_sendf_xml_quiet (gnutls_session_t *, const char *, ...);
103 
104 int openvas_connection_sendf_xml (openvas_connection_t *, const char *, ...);
105 int openvas_connection_sendf_xml_quiet (openvas_connection_t *, const char *,
106  ...);
107 
108 int openvas_connection_sendf (openvas_connection_t *, const char *, ...);
109 
110 int openvas_server_new (unsigned int, gchar *, gchar *, gchar *,
111  gnutls_session_t *, gnutls_certificate_credentials_t *);
112 
113 int openvas_server_new_mem (unsigned int, const char *, const char *,
114  const char *, gnutls_session_t *,
115  gnutls_certificate_credentials_t *);
116 
117 int openvas_server_free (int, gnutls_session_t,
118  gnutls_certificate_credentials_t);
119 
120 int openvas_server_session_free (gnutls_session_t,
121  gnutls_certificate_credentials_t);
122 
123 int
124 load_gnutls_file (const char *, gnutls_datum_t *);
125 
126 void
127 unload_gnutls_file(gnutls_datum_t *);
128 
129 int
130 set_gnutls_dhparams (gnutls_certificate_credentials_t, const char *);
131 
132 #if 0
133 {
134 #endif
135 #ifdef __cplusplus
136 }
137 #endif
138 
139 #endif /* not _OPENVAS_LIBRARIES_SERVER_H */
int set_gnutls_dhparams(gnutls_certificate_credentials_t, const char *)
Set a gnutls session&#39;s Diffie-Hellman parameters.
Definition: openvas_server.c:1321
int openvas_server_new(unsigned int, gchar *, gchar *, gchar *, gnutls_session_t *, gnutls_certificate_credentials_t *)
Make a session for connecting to a server.
Definition: openvas_server.c:1234
int load_gnutls_file(const char *, gnutls_datum_t *)
Loads a file&#39;s data into gnutls_datum_t struct.
Definition: openvas_server.c:211
int openvas_server_verify(gnutls_session_t)
Verify certificate.
Definition: openvas_server.c:160
int openvas_server_open_with_cert(gnutls_session_t *, const char *, int, const char *, const char *, const char *)
Connect to the server using a given host, port and cert.
Definition: openvas_server.c:483
void unload_gnutls_file(gnutls_datum_t *)
Unloads a gnutls_datum_t struct&#39;s data.
Definition: openvas_server.c:241
gnutls_session_t session
Session.
Definition: openvas_server.h:62
gnutls_certificate_credentials_t credentials
Credentials.
Definition: openvas_server.h:63
gchar * port_string
Server port string.
Definition: openvas_server.h:67
int openvas_connection_sendf(openvas_connection_t *, const char *,...)
Format and send a string to the server.
Definition: openvas_server.c:934
int openvas_server_new_mem(unsigned int, const char *, const char *, const char *, gnutls_session_t *, gnutls_certificate_credentials_t *)
Make a session for connecting to a server, with certificates stored in memory.
Definition: openvas_server.c:1259
int openvas_server_session_free(gnutls_session_t, gnutls_certificate_credentials_t)
int openvas_server_sendf_xml(gnutls_session_t *, const char *,...)
Format and send an XML string to the server.
Definition: openvas_server.c:1000
Connection.
Definition: openvas_server.h:58
int openvas_server_free(int, gnutls_session_t, gnutls_certificate_credentials_t)
Cleanup a server session.
Definition: openvas_server.c:1355
int openvas_connection_sendf_xml_quiet(openvas_connection_t *, const char *,...)
Format and send an XML string to the server.
Definition: openvas_server.c:1081
int openvas_server_connect(int, struct sockaddr_in *, gnutls_session_t *)
Connect to a server.
Definition: openvas_server.c:543
int int openvas_server_vsendf(gnutls_session_t *, const char *, va_list)
Send a string to the server.
Definition: openvas_server.c:851
gchar * host_string
Server host string.
Definition: openvas_server.h:66
int tls
Whether uses TCP-TLS (vs UNIX socket).
Definition: openvas_server.h:60
int openvas_server_sendf_xml_quiet(gnutls_session_t *, const char *,...)
Format and send an XML string to the server.
Definition: openvas_server.c:1053
gchar * username
Username with which to connect.
Definition: openvas_server.h:64
gchar * ca_cert
CA certificate.
Definition: openvas_server.h:70
int openvas_server_close(int, gnutls_session_t)
Close a server connection and its socket.
Definition: openvas_server.c:515
int openvas_server_attach(int, gnutls_session_t *)
Attach a socket to a session, and shake hands with the peer.
Definition: openvas_server.c:644
gint port
Port of server.
Definition: openvas_server.h:68
int openvas_server_open(gnutls_session_t *, const char *, int)
Connect to the server using a given host and port.
Definition: openvas_server.c:501
gchar * pub_key
The public key.
Definition: openvas_server.h:71
void openvas_connection_free(openvas_connection_t *)
Free connection.
Definition: openvas_server.c:139
int openvas_connection_sendf_xml(openvas_connection_t *, const char *,...)
Format and send an XML string to the server.
Definition: openvas_server.c:1025
gchar * password
Password for user with which to connect.
Definition: openvas_server.h:65
int openvas_server_sendf(gnutls_session_t *, const char *,...) __attribute__((format(printf
gboolean use_certs
Whether to use certs.
Definition: openvas_server.h:69
int socket
Socket.
Definition: openvas_server.h:61
gchar * priv_key
The private key.
Definition: openvas_server.h:72
int openvas_server_open_verify(gnutls_session_t *, const char *, int, const char *, const char *, const char *, int)
Connect to the server using a given host, port and cert.
Definition: openvas_server.c:331
void openvas_connection_close(openvas_connection_t *)
Close a server connection and its socket.
Definition: openvas_server.c:528