3
* Description: Implements OpenVAS Transfer Protocol 1.0.
6
* Jan-Oliver Wagner <jan-oliver.wagner@intevation.de>
9
* Copyright (C) 2008 Intevation GmbH
11
* This program is free software; you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License version 2 or later,
13
* as published by the Free Software Foundation
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
20
* You should have received a copy of the GNU General Public License
21
* along with this program; if not, write to the Free Software
22
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
40
/* Find the enum identifier for the client request which is given
43
client_request_t otp_1_0_get_client_request(str)
46
if (!strcmp(str, "ATTACHED_FILE")) return(CREQ_ATTACHED_FILE);
47
if (!strcmp(str, "CERTIFICATES")) return(CREQ_CERTIFICATES);
48
if (!strcmp(str, "LONG_ATTACK")) return(CREQ_LONG_ATTACK);
49
if (!strcmp(str, "OPENVAS_VERSION")) return(CREQ_OPENVAS_VERSION);
50
if (!strcmp(str, "PLUGIN_INFO")) return(CREQ_PLUGIN_INFO);
51
if (!strcmp(str, "PREFERENCES")) return(CREQ_PREFERENCES);
52
if (!strcmp(str, "RULES")) return(CREQ_RULES);
53
if (!strcmp(str, "SESSIONS_LIST")) return(CREQ_SESSIONS_LIST);
54
if (!strcmp(str, "SESSION_DELETE")) return(CREQ_SESSION_DELETE);
55
if (!strcmp(str, "SESSION_RESTORE")) return(CREQ_SESSION_RESTORE);
56
if (!strcmp(str, "STOP_ATTACK")) return(CREQ_STOP_ATTACK);
57
if (!strcmp(str, "STOP_WHOLE_TEST")) return(CREQ_STOP_WHOLE_TEST);
62
/* Send server response OPENVAS_VERSION
64
void otp_1_0_server_openvas_version(globals)
65
struct arglist * globals;
68
"SERVER <|> OPENVAS_VERSION <|> %s <|> SERVER\n",
74
* Send server response to certificate request by client.
76
void otp_1_0_server_send_certificates(struct arglist* globals)
78
auth_printf(globals, "SERVER <|> CERTIFICATES\n");
80
GSList* certificates = nasl_get_all_certificates();
81
GSList* cert_list_elem = g_slist_nth(certificates, 0);
83
// Iterate over certificates
84
while(cert_list_elem != NULL)
86
openvas_certificate* cert = cert_list_elem->data;
88
// Replace newlines by semicolons
89
char* pos = cert->full_public_key;
92
if(pos[0] == '\n') pos[0] = ';';
96
char* trustlevel = (cert->trusted == TRUE)? "trusted" : "notrust";
97
cert_list_elem = g_slist_next(cert_list_elem);
98
auth_printf(globals, "%s <|> %s <|> %s <|> %d <|> %s\n", cert->fpr,
99
cert->ownername, trustlevel,
100
(int)strlen(cert->full_public_key),
101
cert->full_public_key);
102
// Release each element
103
openvas_certificate_free(cert);
107
g_slist_free(certificates);
109
auth_printf(globals, "<|> SERVER\n");