Greenbone Vulnerability Manager 22.5.2
manage.h
1/* Copyright (C) 2009-2022 Greenbone AG
2 *
3 * SPDX-License-Identifier: AGPL-3.0-or-later
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19/*
20 * @file manage.h
21 * @brief Headers for Greenbone Vulnerability Manager: the Manage library.
22 */
23
24#ifndef _GVMD_MANAGE_H
25#define _GVMD_MANAGE_H
26
27#include "iterator.h"
28#include "manage_configs.h"
29#include "manage_get.h"
30#include "utils.h"
31
32#include <stdio.h>
33#include <glib.h>
34#include <gnutls/gnutls.h>
35
36#include <gvm/base/array.h>
37#include <gvm/base/credentials.h>
38#include <gvm/base/nvti.h>
39#include <gvm/base/networking.h>
40#include <gvm/util/serverutils.h>
41#include <gvm/util/authutils.h>
42#include <gvm/osp/osp.h>
43
47typedef struct {
48 gchar *name;
49 gchar *host;
50 gchar *port;
51 gchar *user;
53
57#define OID_PING_HOST "1.3.6.1.4.1.25623.1.0.100315"
58
62#define OID_SSH_AUTH "1.3.6.1.4.1.25623.1.0.103591"
63
67#define OID_SMB_AUTH "1.3.6.1.4.1.25623.1.0.90023"
68
72#define OID_ESXI_AUTH "1.3.6.1.4.1.25623.1.0.105058"
73
77#define OID_SNMP_AUTH "1.3.6.1.4.1.25623.1.0.105076"
78
82#define OID_SERVICES "1.3.6.1.4.1.25623.1.0.10330"
83
87#define OID_LOGINS "1.3.6.1.4.1.25623.1.0.10870"
88
92#define OID_GLOBAL_SETTINGS "1.3.6.1.4.1.25623.1.0.12288"
93
97#define ALL_LOG_LEVELS (G_LOG_LEVEL_MASK \
98 | G_LOG_FLAG_FATAL \
99 | G_LOG_FLAG_RECURSION)
100
104#ifndef g_info
105#define g_info(...) g_log (G_LOG_DOMAIN, \
106 G_LOG_LEVEL_INFO, \
107 __VA_ARGS__)
108#endif /* g_info not defined */
109
113typedef struct
114{
115 gchar *name;
116 gchar *value;
118
122typedef int (*manage_connection_forker_t) (gvm_connection_t * conn,
123 const gchar* uuid);
124
125int
126init_manage (GSList*, const db_conn_info_t *, int, int, int, int,
127 manage_connection_forker_t, int);
128
129int
130init_manage_helper (GSList *, const db_conn_info_t *, int);
131
132void
133init_manage_process (const db_conn_info_t*);
134
135void
136cleanup_manage_process (gboolean);
137
138void
139manage_cleanup_process_error (int);
140
141void
142manage_reset_currents ();
143
144
145/* Commands. */
146
150typedef struct
151{
152 gchar *name;
153 gchar *summary;
154} command_t;
155
159extern command_t gmp_commands[];
160
161
162/* Certificate and key management. */
163
164gchar*
165truncate_certificate (const gchar*);
166
167gchar*
168truncate_private_key (const gchar*);
169
170int
171get_certificate_info (const gchar *,
172 gssize,
173 time_t *,
174 time_t *,
175 gchar **,
176 gchar **,
177 gchar **,
178 gchar **,
179 gchar **,
180 gnutls_x509_crt_fmt_t *);
181
182gchar *
183certificate_iso_time (time_t);
184
185const gchar *
186certificate_time_status (time_t, time_t);
187
188void
189parse_ssldetails (const char *, time_t *, time_t *, gchar **, gchar **);
190
191const char*
192tls_certificate_format_str (gnutls_x509_crt_fmt_t certificate_format);
193
194
195/* Credentials. */
196
197extern credentials_t current_credentials;
198
199int
200authenticate (credentials_t*);
201
202void
203logout_user ();
204
205/* Database. */
206
207int
208manage_db_supported_version ();
209
210int
211manage_db_version ();
212
213int
214manage_scap_db_supported_version ();
215
216int
217manage_scap_db_version ();
218
219int
220manage_cert_db_supported_version ();
221
222int
223manage_cert_db_version ();
224
225void
226set_db_version (int version);
227
228int
229manage_migrate (GSList*, const db_conn_info_t*);
230
231int
232manage_encrypt_all_credentials (GSList *, const db_conn_info_t *);
233
234int
235manage_decrypt_all_credentials (GSList *, const db_conn_info_t *);
236
237void
238manage_session_set_timezone (const char *);
239
240void
241manage_transaction_start ();
242
243void
244manage_transaction_stop (gboolean);
245
246
247/* Task structures. */
248
255typedef enum
256{
257 TASK_STATUS_DELETE_REQUESTED = 0,
258 TASK_STATUS_DONE = 1,
259 TASK_STATUS_NEW = 2,
260 TASK_STATUS_REQUESTED = 3,
261 TASK_STATUS_RUNNING = 4,
262 TASK_STATUS_STOP_REQUESTED = 10,
263 TASK_STATUS_STOP_WAITING = 11,
264 TASK_STATUS_STOPPED = 12,
265 TASK_STATUS_INTERRUPTED = 13,
266 TASK_STATUS_DELETE_ULTIMATE_REQUESTED = 14,
267 /* 15 was removed (TASK_STATUS_STOP_REQUESTED_GIVEUP). */
268 TASK_STATUS_DELETE_WAITING = 16,
269 TASK_STATUS_DELETE_ULTIMATE_WAITING = 17,
270 TASK_STATUS_QUEUED = 18
271} task_status_t;
272
276#define AUTO_DELETE_KEEP_MIN 2
277
281#define AUTO_DELETE_KEEP_MAX 1200
282
283
290typedef enum
291{
292 ALIVE_TEST_TCP_ACK_SERVICE = 1,
293 ALIVE_TEST_ICMP = 2,
294 ALIVE_TEST_ARP = 4,
295 ALIVE_TEST_CONSIDER_ALIVE = 8,
296 ALIVE_TEST_TCP_SYN_SERVICE = 16
297} alive_test_t;
298
305typedef enum scanner_type
306{
307 SCANNER_TYPE_NONE = 0,
308 /* 1 was removed (SCANNER_TYPE_OSP). */
309 SCANNER_TYPE_OPENVAS = 2,
310 SCANNER_TYPE_CVE = 3,
311 /* 4 was removed (SCANNER_TYPE_GMP). */
312 SCANNER_TYPE_OSP_SENSOR = 5,
313 SCANNER_TYPE_MAX = 6,
314} scanner_type_t;
315
316int
317scanner_type_valid (scanner_type_t);
318
319typedef resource_t credential_t;
320typedef resource_t alert_t;
321typedef resource_t filter_t;
322typedef resource_t group_t;
323typedef resource_t host_t;
324typedef resource_t tag_t;
325typedef resource_t target_t;
326typedef resource_t task_t;
327typedef resource_t ticket_t;
328typedef resource_t tls_certificate_t;
329typedef resource_t result_t;
330typedef resource_t report_t;
331typedef resource_t report_host_t;
332typedef resource_t report_format_t;
333typedef resource_t report_format_param_t;
334typedef resource_t role_t;
335typedef resource_t note_t;
336typedef resource_t nvt_t;
337typedef resource_t override_t;
338typedef resource_t permission_t;
339typedef resource_t port_list_t;
340typedef resource_t port_range_t;
341typedef resource_t schedule_t;
342typedef resource_t scanner_t;
343typedef resource_t setting_t;
344typedef resource_t user_t;
345
346
347/* GMP GET support.
348 *
349 * The standalone parts of the GET support are in manage_get.h. */
350
352get_iterator_resource (iterator_t*);
353
354user_t
355get_iterator_owner (iterator_t*);
356
357
358/* Resources. */
359
360int
361manage_resource_name (const char *, const char *, char **);
362
363int
364manage_trash_resource_name (const char *, const char *, char **);
365
366int
367resource_count (const char *, const get_data_t *);
368
369int
370resource_id_exists (const char *, const char *);
371
372int
373trash_id_exists (const char *, const char *);
374
375gboolean
376find_resource (const char*, const char*, resource_t*);
377
378gboolean
379find_resource_no_acl (const char*, const char*, resource_t*);
380
381const char *
382type_name_plural (const char*);
383
384const char *
385type_name (const char*);
386
387int
388type_is_scap (const char*);
389
390int
391delete_resource (const char *, const char *, int);
392
393
394/* Events and Alerts. */
395
399typedef struct {
405
406void
408
409void
411
415#define ALERT_MESSAGE_INCLUDE \
416 "Task '$n': $e\n" \
417 "\n" \
418 "After the event $e,\n" \
419 "the following condition was met: $c\n" \
420 "\n" \
421 "This email escalation is configured to apply report format '$r'.\n" \
422 "Full details and other report formats are available on the scan engine.\n" \
423 "\n" \
424 "$t" \
425 "\n" \
426 "$i" \
427 "\n" \
428 "\n" \
429 "Note:\n" \
430 "This email was sent to you as a configured security scan escalation.\n" \
431 "Please contact your local system administrator if you think you\n" \
432 "should not have received it.\n"
433
437#define SECINFO_ALERT_MESSAGE_INCLUDE \
438 "Task '$n': $e\n" \
439 "\n" \
440 "After the event $e,\n" \
441 "the following condition was met: $c\n" \
442 "\n" \
443 "This email escalation is configured to apply report format '$r'.\n" \
444 "Full details and other report formats are available on the scan engine.\n" \
445 "\n" \
446 "$t" \
447 "\n" \
448 "$i" \
449 "\n" \
450 "\n" \
451 "Note:\n" \
452 "This email was sent to you as a configured security scan escalation.\n" \
453 "Please contact your local system administrator if you think you\n" \
454 "should not have received it.\n"
455
459#define ALERT_MESSAGE_ATTACH \
460 "Task '$n': $e\n" \
461 "\n" \
462 "After the event $e,\n" \
463 "the following condition was met: $c\n" \
464 "\n" \
465 "This email escalation is configured to attach report format '$r'.\n" \
466 "Full details and other report formats are available on the scan engine.\n" \
467 "\n" \
468 "$t" \
469 "\n" \
470 "Note:\n" \
471 "This email was sent to you as a configured security scan escalation.\n" \
472 "Please contact your local system administrator if you think you\n" \
473 "should not have received it.\n"
474
478#define SECINFO_ALERT_MESSAGE_ATTACH \
479 "Task '$n': $e\n" \
480 "\n" \
481 "After the event $e,\n" \
482 "the following condition was met: $c\n" \
483 "\n" \
484 "This email escalation is configured to attach report format '$r'.\n" \
485 "Full details and other report formats are available on the scan engine.\n" \
486 "\n" \
487 "$t" \
488 "\n" \
489 "Note:\n" \
490 "This email was sent to you as a configured security scan escalation.\n" \
491 "Please contact your local system administrator if you think you\n" \
492 "should not have received it.\n"
493
497#define ALERT_VFIRE_CALL_DESCRIPTION \
498 "GVM Task '$n': $e\n" \
499 "\n" \
500 "After the event $e,\n" \
501 "the following condition was met: $c\n" \
502 "\n" \
503 "This ticket includes reports in the following format(s):\n" \
504 "$r.\n" \
505 "Full details and other report formats are available on the scan engine.\n" \
506 "\n" \
507 "$t" \
508 "\n" \
509 "Note:\n" \
510 "This ticket was created automatically as a security scan escalation.\n" \
511 "Please contact your local system administrator if you think it\n" \
512 "was created or assigned erroneously.\n"
513
517typedef enum
518{
519 EVENT_ERROR,
520 EVENT_TASK_RUN_STATUS_CHANGED,
521 EVENT_NEW_SECINFO,
522 EVENT_UPDATED_SECINFO,
523 EVENT_TICKET_RECEIVED,
524 EVENT_ASSIGNED_TICKET_CHANGED,
525 EVENT_OWNED_TICKET_CHANGED
526} event_t;
527
531typedef enum
532{
533 ALERT_METHOD_ERROR,
534 ALERT_METHOD_EMAIL,
535 ALERT_METHOD_HTTP_GET,
536 ALERT_METHOD_SOURCEFIRE,
537 ALERT_METHOD_START_TASK,
538 ALERT_METHOD_SYSLOG,
539 ALERT_METHOD_VERINICE,
540 ALERT_METHOD_SEND,
541 ALERT_METHOD_SCP,
542 ALERT_METHOD_SNMP,
543 ALERT_METHOD_SMB,
544 ALERT_METHOD_TIPPINGPOINT,
545 ALERT_METHOD_VFIRE,
546} alert_method_t;
547
551typedef enum
552{
553 ALERT_CONDITION_ERROR,
554 ALERT_CONDITION_ALWAYS,
555 ALERT_CONDITION_SEVERITY_AT_LEAST,
556 ALERT_CONDITION_SEVERITY_CHANGED,
557 ALERT_CONDITION_FILTER_COUNT_AT_LEAST,
558 ALERT_CONDITION_FILTER_COUNT_CHANGED
559} alert_condition_t;
560
561int
562manage_check_alerts (GSList *, const db_conn_info_t *);
563
564int
565create_alert (const char*, const char*, const char*, const char*, event_t,
566 GPtrArray*, alert_condition_t, GPtrArray*, alert_method_t,
567 GPtrArray*, alert_t*);
568
569int
570copy_alert (const char*, const char*, const char*, alert_t*);
571
572int
573modify_alert (const char*, const char*, const char*, const char*,
574 const char*, event_t, GPtrArray*, alert_condition_t, GPtrArray*,
575 alert_method_t, GPtrArray*);
576
577int
578delete_alert (const char *, int);
579
580char *
581alert_uuid (alert_t);
582
583gboolean
584find_alert_with_permission (const char *, alert_t *, const char *);
585
586int
587manage_alert (const char *, const char *, event_t, const void*, gchar **);
588
589int
590manage_test_alert (const char *, gchar **);
591
592int
593alert_in_use (alert_t);
594
595int
596trash_alert_in_use (alert_t);
597
598int
599alert_writable (alert_t);
600
601int
602trash_alert_writable (alert_t);
603
604int
605alert_count (const get_data_t *);
606
607int
608init_alert_iterator (iterator_t*, const get_data_t*);
609
610int
611alert_iterator_event (iterator_t*);
612
613int
614alert_iterator_condition (iterator_t*);
615
616int
617alert_iterator_method (iterator_t*);
618
619char *
620alert_iterator_filter_uuid (iterator_t*);
621
622char *
623alert_iterator_filter_name (iterator_t*);
624
625int
626alert_iterator_filter_trash (iterator_t*);
627
628int
629alert_iterator_filter_readable (iterator_t*);
630
631int
632alert_iterator_active (iterator_t*);
633
634const char*
635alert_condition_name (alert_condition_t);
636
637gchar*
638alert_condition_description (alert_condition_t, alert_t);
639
640const char*
641event_name (event_t);
642
643gchar*
644event_description (event_t, const void *, const char *);
645
646alert_method_t
647alert_method (alert_t alert);
648
649const char*
650alert_method_name (alert_method_t);
651
652alert_condition_t
653alert_condition_from_name (const char*);
654
655event_t
656event_from_name (const char*);
657
658alert_method_t
659alert_method_from_name (const char*);
660
661void
662init_alert_data_iterator (iterator_t *, alert_t, int, const char *);
663
664const char*
665alert_data_iterator_name (iterator_t*);
666
667const char*
668alert_data_iterator_data (iterator_t*);
669
670void
671init_alert_task_iterator (iterator_t*, alert_t, int);
672
673const char*
674alert_task_iterator_name (iterator_t*);
675
676const char*
677alert_task_iterator_uuid (iterator_t*);
678
679int
680alert_task_iterator_readable (iterator_t*);
681
682void
683init_task_alert_iterator (iterator_t*, task_t);
684
685const char*
686task_alert_iterator_uuid (iterator_t*);
687
688const char*
689task_alert_iterator_name (iterator_t*);
690
691
692/* Task global variables and preprocessor variables. */
693
697extern task_t current_scanner_task;
698
699extern report_t global_current_report;
700
701
702/* Task code specific to the representation of tasks. */
703
704unsigned int
705task_count (const get_data_t *);
706
707int
708init_task_iterator (iterator_t*, const get_data_t *);
709
710task_status_t
711task_iterator_run_status (iterator_t*);
712
713const char *
714task_iterator_run_status_name (iterator_t*);
715
716int
717task_iterator_total_reports (iterator_t*);
718
719int
720task_iterator_finished_reports (iterator_t *);
721
722const char *
723task_iterator_first_report (iterator_t*);
724
725const char *
726task_iterator_last_report (iterator_t *);
727
728report_t
729task_iterator_current_report (iterator_t *);
730
731const char *
732task_iterator_hosts_ordering (iterator_t *);
733
734scanner_t
735task_iterator_scanner (iterator_t *);
736
737const char *
738task_iterator_usage_type (iterator_t *);
739
740int
741task_uuid (task_t, char **);
742
743int
744task_in_trash (task_t);
745
746int
747task_in_trash_id (const gchar *);
748
749int
750task_in_use (task_t);
751
752int
753trash_task_in_use (task_t);
754
755int
756task_writable (task_t);
757
758int
759task_alterable (task_t);
760
761int
762trash_task_writable (task_t);
763
764int
765task_average_scan_duration (task_t);
766
767char*
768task_owner_name (task_t);
769
770char*
771task_name (task_t);
772
773char*
774task_comment (task_t);
775
776char*
777task_hosts_ordering (task_t);
778
779scanner_t
780task_scanner (task_t);
781
782int
783task_scanner_in_trash (task_t);
784
785config_t
786task_config (task_t);
787
788char*
789task_config_uuid (task_t);
790
791char*
792task_config_name (task_t);
793
794int
795task_config_in_trash (task_t);
796
797void
798set_task_config (task_t, config_t);
799
800target_t
801task_target (task_t);
802
803int
804task_target_in_trash (task_t);
805
806void
807set_task_target (task_t, target_t);
808
809void
810set_task_hosts_ordering (task_t, const char *);
811
812void
813set_task_scanner (task_t, scanner_t);
814
815void
816set_task_usage_type (task_t, const char *);
817
818char*
819task_description (task_t);
820
821void
822set_task_description (task_t, char*, gsize);
823
824task_status_t
825task_run_status (task_t);
826
827void
828set_task_run_status (task_t, task_status_t);
829
830int
831task_result_count (task_t, int);
832
833report_t
834task_running_report (task_t);
835
836int
837task_upload_progress (task_t);
838
839void
840set_task_start_time_epoch (task_t, int);
841
842void
843set_task_start_time_ctime (task_t, char*);
844
845void
846set_task_end_time (task_t task, char* time);
847
848void
849set_task_end_time_epoch (task_t, time_t);
850
851void
852add_task_alert (task_t, alert_t);
853
854void
855set_task_alterable (task_t, int);
856
857int
858set_task_groups (task_t, array_t*, gchar**);
859
860int
861set_task_schedule (task_t, schedule_t, int);
862
863int
864set_task_schedule_periods (const gchar *, int);
865
866int
867set_task_schedule_periods_id (task_t, int);
868
869unsigned int
870task_report_count (task_t);
871
872int
873task_last_report (task_t, report_t*);
874
875const char *
876task_iterator_trend_counts (iterator_t *, int, int, int, double, int, int, int,
877 double);
878
879int
880task_schedule_periods (task_t);
881
882int
883task_schedule_periods_uuid (const gchar *);
884
885schedule_t
886task_schedule (task_t);
887
888schedule_t
889task_schedule_uuid (const gchar *);
890
891int
892task_schedule_in_trash (task_t);
893
894time_t
895task_schedule_next_time_uuid (const gchar *);
896
897int
898task_schedule_next_time (task_t);
899
900int
901task_debugs_size (task_t);
902
903int
904task_holes_size (task_t);
905
906int
907task_infos_size (task_t);
908
909int
910task_logs_size (task_t);
911
912int
913task_warnings_size (task_t);
914
915int
916task_false_positive_size (task_t);
917
918task_t
919make_task (char*, char*, int, int);
920
921void
922make_task_complete (task_t);
923
924int
925copy_task (const char*, const char*, const char *, int, task_t*);
926
927void
928set_task_name (task_t, const char *);
929
930gboolean
931find_task_with_permission (const char*, task_t*, const char *);
932
933gboolean
934find_trash_task_with_permission (const char*, task_t*, const char *);
935
936void
937reset_task (task_t);
938
939int
940set_task_parameter (task_t, const char*, char*);
941
942char*
943task_observers (task_t);
944
945int
946set_task_observers (task_t, const gchar *);
947
948int
949request_delete_task_uuid (const char *, int);
950
951int
952request_delete_task (task_t*);
953
954int
955delete_task (task_t, int);
956
957void
958append_to_task_comment (task_t, const char*, int);
959
960void
961add_task_description_line (task_t, const char*, size_t);
962
963void
964set_scan_ports (report_t, const char*, unsigned int, unsigned int);
965
966void
967append_task_open_port (task_t task, const char *, const char*);
968
969int
970manage_task_update_file (const gchar *, const char *, const void *);
971
972int
973manage_task_remove_file (const gchar *, const char *);
974
975int
976modify_task (const gchar *, const gchar *, const gchar *, const gchar *,
977 const gchar *, const gchar *, const gchar *, array_t *,
978 const gchar *, array_t *, const gchar *, const gchar *,
979 array_t *, const gchar *, gchar **, gchar **);
980
981void
982init_config_file_iterator (iterator_t*, const char*, const char*);
983
984const char*
985config_file_iterator_content (iterator_t*);
986
987int
988config_file_iterator_length (iterator_t*);
989
990void
991init_config_task_iterator (iterator_t*, config_t, int);
992
993const char*
994config_task_iterator_name (iterator_t*);
995
996const char*
997config_task_iterator_uuid (iterator_t*);
998
999int
1000config_task_iterator_readable (iterator_t*);
1001
1002
1003/* General severity related facilities. */
1004
1005int
1006severity_in_level (double, const char *);
1007
1008const char*
1009severity_to_level (double, int);
1010
1011const char*
1012severity_to_type (double);
1013
1017typedef struct
1018{
1019 int* counts;
1020 int total;
1021 double max;
1023
1024double
1026
1027void
1029
1030void
1032
1033void
1035
1036void
1038
1039void
1041 int*, int*, int*, int*, int*, int*);
1042
1043
1044/* General task facilities. */
1045
1046const char*
1047run_status_name (task_status_t);
1048
1049int
1050start_task (const char *, char**);
1051
1052int
1053stop_task (const char *);
1054
1055int
1056resume_task (const char *, char **);
1057
1058int
1059move_task (const char*, const char*);
1060
1061
1062/* Access control. */
1063
1064int
1065user_may (const char *);
1066
1067extern int
1068user_can_everything (const char *);
1069
1070extern int
1071user_can_super_everyone (const char *);
1072
1073extern int
1074user_has_super (const char *, user_t);
1075
1076
1077/* Results. */
1078
1082#define LSC_FAMILY_LIST \
1083 "'AIX Local Security Checks'," \
1084 " 'Amazon Linux Local Security Checks'," \
1085 " 'CentOS Local Security Checks'," \
1086 " 'Citrix Xenserver Local Security Checks'," \
1087 " 'Debian Local Security Checks'," \
1088 " 'F5 Local Security Checks'," \
1089 " 'Fedora Local Security Checks'," \
1090 " 'FortiOS Local Security Checks'," \
1091 " 'FreeBSD Local Security Checks'," \
1092 " 'Gentoo Local Security Checks'," \
1093 " 'HP-UX Local Security Checks'," \
1094 " 'Huawei EulerOS Local Security Checks'," \
1095 " 'JunOS Local Security Checks'," \
1096 " 'Mac OS X Local Security Checks'," \
1097 " 'Mageia Linux Local Security Checks'," \
1098 " 'Mandrake Local Security Checks'," \
1099 " 'Oracle Linux Local Security Checks'," \
1100 " 'Palo Alto PAN-OS Local Security Checks'," \
1101 " 'Red Hat Local Security Checks'," \
1102 " 'Slackware Local Security Checks'," \
1103 " 'Solaris Local Security Checks'," \
1104 " 'SuSE Local Security Checks'," \
1105 " 'VMware Local Security Checks'," \
1106 " 'Ubuntu Local Security Checks'," \
1107 " 'Windows : Microsoft Bulletins'"
1108
1112#define FAMILIES_WHOLE_ONLY \
1113 { "CentOS Local Security Checks", \
1114 "Debian Local Security Checks", \
1115 "Fedora Local Security Checks", \
1116 "Huawei EulerOS Local Security Checks", \
1117 "Oracle Linux Local Security Checks", \
1118 "Red Hat Local Security Checks", \
1119 "SuSE Local Security Checks", \
1120 "Ubuntu Local Security Checks", \
1121 NULL }
1122
1123gboolean
1124find_result_with_permission (const char*, result_t*, const char *);
1125
1126int
1127result_uuid (result_t, char **);
1128
1129int
1130result_detection_reference (result_t, report_t, const char *, const char *,
1131 const char *, char **, char **, char **, char **,
1132 char **);
1133
1134/* Reports. */
1135
1137#define OVAS_MANAGE_REPORT_ID_LENGTH UUID_LEN_STR
1138
1142#define APPLY_OVERRIDES_DEFAULT 0
1143
1147#define QOD_DEFAULT 75
1148
1152#define MIN_QOD_DEFAULT 70
1153
1154void
1155reports_clear_count_cache_for_override (override_t, int);
1156
1157void
1158init_report_counts_build_iterator (iterator_t *, report_t, int, int,
1159 const char*);
1160
1161double
1162report_severity (report_t, int, int);
1163
1164int
1165report_host_count (report_t);
1166
1167int
1168report_result_host_count (report_t, int);
1169
1170char *
1171report_finished_hosts_str (report_t);
1172
1173gboolean
1174find_report_with_permission (const char *, report_t *, const char *);
1175
1176report_t
1177make_report (task_t, const char *, task_status_t);
1178
1179int
1180qod_from_type (const char *);
1181
1182result_t
1183make_result (task_t, const char*, const char*, const char*, const char*,
1184 const char*, const char*, const char*);
1185
1186result_t
1187make_osp_result (task_t, const char*, const char*, const char*, const char*,
1188 const char *, const char *, const char *, int, const char*,
1189 const char *);
1190
1191result_t
1192make_cve_result (task_t, const char*, const char*, double, const char*);
1193
1197typedef struct
1198{
1200 char *host;
1201 char *hostname;
1202 char *nvt_oid;
1204 char *port;
1205 char *qod;
1206 char *qod_type;
1207 char *severity;
1208 char *threat;
1210
1214typedef struct
1215{
1216 char *ip;
1217 char *name;
1221 char *value;
1223
1224
1228typedef struct
1229{
1230 char *product;
1233 char *location;
1235
1236void
1237host_detail_free (host_detail_t *);
1238
1239void
1240insert_report_host_detail (report_t, const char *, const char *, const char *,
1241 const char *, const char *, const char *,
1242 const char *);
1243
1244int
1245manage_report_host_detail (report_t, const char *, const char *);
1246
1247void
1248hosts_set_identifiers (report_t);
1249
1250void
1251hosts_set_max_severity (report_t, int*, int*);
1252
1253void
1254hosts_set_details (report_t report);
1255
1256void
1257clear_duration_schedules (task_t);
1258
1259void
1260update_duration_schedule_periods (task_t);
1261
1262int
1263create_report (array_t*, const char *, const char *, const char *, const char *,
1264 array_t*, array_t*, array_t*, char **);
1265
1266void
1267report_add_result (report_t, result_t);
1268
1269void
1270report_add_results_array (report_t, GArray *);
1271
1272char*
1273report_uuid (report_t);
1274
1275int
1276task_last_resumable_report (task_t, report_t *);
1277
1278gchar*
1279task_second_last_report_id (task_t);
1280
1281gchar*
1282report_path_task_uuid (gchar*);
1283
1284gboolean
1285report_task (report_t, task_t*);
1286
1287void
1288report_compliance_by_uuid (const char *, int *, int *, int *);
1289
1290int
1291report_scan_result_count (report_t, const char*, const char*, int, const char*,
1292 const char*, int, int, int*);
1293
1294int
1295report_counts (const char*, int*, int*, int*, int*, int*, double*,
1296 int, int);
1297
1298int
1299report_counts_id (report_t, int*, int*, int*, int*, int*, double*,
1300 const get_data_t*, const char*);
1301
1302int
1303report_counts_id_no_filt (report_t, int*, int*, int*, int*, int*, int*,
1304 double*, const get_data_t*, const char*);
1305
1307report_results_get_data (int, int, int, int);
1308
1309int
1310scan_start_time_epoch (report_t);
1311
1312char*
1313scan_start_time_uuid (const char *);
1314
1315char*
1316scan_end_time_uuid (const char *);
1317
1318void
1319set_scan_start_time_ctime (report_t, const char*);
1320
1321void
1322set_scan_start_time_epoch (report_t, time_t);
1323
1324void
1325set_scan_end_time (report_t, const char*);
1326
1327void
1328set_scan_end_time_ctime (report_t, const char*);
1329
1330void
1331set_scan_end_time_epoch (report_t, time_t);
1332
1333void
1334set_scan_host_start_time_ctime (report_t, const char*, const char*);
1335
1336int
1337scan_host_end_time (report_t, const char*);
1338
1339void
1340set_scan_host_end_time (report_t, const char*, const char*);
1341
1342void
1343set_scan_host_end_time_ctime (report_t, const char*, const char*);
1344
1345int
1346report_timestamp (const char*, gchar**);
1347
1348int
1349delete_report (const char *, int);
1350
1351int
1352report_count (const get_data_t *);
1353
1354int
1355init_report_iterator (iterator_t*, const get_data_t *);
1356
1357void
1358init_report_iterator_task (iterator_t*, task_t);
1359
1360void
1361init_report_errors_iterator (iterator_t*, report_t);
1362
1363const char*
1364report_iterator_uuid (iterator_t*);
1365
1366int
1367result_count (const get_data_t *, report_t, const char*);
1368
1369int
1370init_result_get_iterator (iterator_t*, const get_data_t *, report_t,
1371 const char*, const gchar *);
1372
1373gboolean
1374next_report (iterator_t*, report_t*);
1375
1376result_t
1377result_iterator_result (iterator_t*);
1378
1379const char*
1380result_iterator_host (iterator_t*);
1381
1382const char*
1383result_iterator_port (iterator_t*);
1384
1385const char*
1386result_iterator_nvt_oid (iterator_t*);
1387
1388const char*
1389result_iterator_nvt_name (iterator_t *);
1390
1391const char*
1392result_iterator_nvt_summary (iterator_t *);
1393
1394const char*
1395result_iterator_nvt_insight (iterator_t *);
1396
1397const char*
1398result_iterator_nvt_affected (iterator_t *);
1399
1400const char*
1401result_iterator_nvt_impact (iterator_t *);
1402
1403const char*
1404result_iterator_nvt_solution (iterator_t *);
1405
1406const char*
1407result_iterator_nvt_solution_type (iterator_t *);
1408
1409const char*
1410result_iterator_nvt_solution_method (iterator_t *);
1411
1412const char*
1413result_iterator_nvt_detection (iterator_t *);
1414
1415const char*
1416result_iterator_nvt_family (iterator_t *);
1417
1418const char*
1419result_iterator_nvt_cvss_base (iterator_t *);
1420
1421const char*
1422result_iterator_nvt_tag (iterator_t *);
1423
1424const char*
1425result_iterator_descr (iterator_t*);
1426
1427task_t
1428result_iterator_task (iterator_t*);
1429
1430report_t
1431result_iterator_report (iterator_t*);
1432
1433const char*
1434result_iterator_scan_nvt_version (iterator_t*);
1435
1436const char*
1437result_iterator_original_severity (iterator_t*);
1438
1439const char*
1440result_iterator_severity (iterator_t *);
1441
1442double
1443result_iterator_severity_double (iterator_t *);
1444
1445const char*
1446result_iterator_original_level (iterator_t*);
1447
1448const char*
1449result_iterator_level (iterator_t*);
1450
1451const char*
1452result_iterator_solution_type (iterator_t*);
1453
1454const char*
1455result_iterator_qod (iterator_t*);
1456
1457const char*
1458result_iterator_qod_type (iterator_t*);
1459
1460const char*
1461result_iterator_hostname (iterator_t*);
1462
1463const char*
1464result_iterator_date (iterator_t*);
1465
1466const char*
1467result_iterator_path (iterator_t*);
1468
1469const char*
1470result_iterator_asset_host_id (iterator_t*);
1471
1472int
1473result_iterator_may_have_notes (iterator_t*);
1474
1475int
1476result_iterator_may_have_overrides (iterator_t*);
1477
1478int
1479result_iterator_may_have_tickets (iterator_t*);
1480
1481gchar **
1482result_iterator_cert_bunds (iterator_t*);
1483
1484gchar **
1485result_iterator_dfn_certs (iterator_t*);
1486
1487int
1488cleanup_result_nvts ();
1489
1490void
1491init_report_host_iterator (iterator_t*, report_t, const char *, report_host_t);
1492
1493const char*
1494host_iterator_host (iterator_t*);
1495
1496const char*
1497host_iterator_start_time (iterator_t*);
1498
1499const char*
1500host_iterator_end_time (iterator_t*);
1501
1502int
1503host_iterator_current_port (iterator_t*);
1504
1505int
1506host_iterator_max_port (iterator_t*);
1507
1508int
1509collate_message_type (void* data, int, const void*, int, const void*);
1510
1511void
1512trim_partial_report (report_t);
1513
1514int
1515report_progress (report_t);
1516
1517gchar *
1518manage_report (report_t, report_t, const get_data_t *, report_format_t,
1519 int, int, gsize *, gchar **, gchar **, gchar **, gchar **,
1520 gchar **);
1521
1522int
1523manage_send_report (report_t, report_t, report_format_t, const get_data_t *,
1524 int, int, int, int, int, int,
1525 gboolean (*) (const char *,
1526 int (*) (const char*, void*),
1527 void*),
1528 int (*) (const char *, void*), void *, const char *,
1529 const gchar *);
1530
1531
1532
1533/* Reports. */
1534
1535void
1536init_app_locations_iterator (iterator_t*, report_host_t, const gchar *);
1537
1538const char *
1539app_locations_iterator_location (iterator_t *);
1540
1541void
1542init_host_prognosis_iterator (iterator_t*, report_host_t);
1543
1544double
1545prognosis_iterator_cvss_double (iterator_t*);
1546
1547const char*
1548prognosis_iterator_cpe (iterator_t*);
1549
1550const char*
1551prognosis_iterator_cve (iterator_t*);
1552
1553const char*
1554prognosis_iterator_description (iterator_t*);
1555
1556
1557/* Targets. */
1558
1564#define MANAGE_ABSOLUTE_MAX_IPS_PER_TARGET 70000
1565
1569#define MANAGE_MAX_HOSTS 4095
1570
1574#define MANAGE_USER_MAX_HOSTS 16777216
1575
1576int
1577manage_max_hosts ();
1578
1579void
1580manage_filter_controls (const gchar *, int *, int *, gchar **, int *);
1581
1582void
1583manage_report_filter_controls (const gchar *, int *, int *, gchar **, int *,
1584 int *, gchar **, gchar **, gchar **, gchar **,
1585 int *, int *, int *, int *, gchar **);
1586
1587gchar *
1588manage_clean_filter (const gchar *);
1589
1590gchar *
1591manage_clean_filter_remove (const gchar *, const gchar *);
1592
1593int
1594manage_count_hosts (const char *, const char *);
1595
1596gboolean
1597find_target_with_permission (const char *, target_t *, const char *);
1598
1599int
1600create_target (const char*, const char*, const char*, const char*, const char*,
1601 const char *, const char*, credential_t, credential_t,
1602 const char *, credential_t, credential_t, credential_t,
1603 const char *, const char *, const char *, const char *,
1604 target_t*);
1605
1606int
1607copy_target (const char*, const char*, const char *, target_t*);
1608
1609int
1610modify_target (const char*, const char*, const char*, const char*, const char*,
1611 const char*, const char*, const char*, const char*, const char*,
1612 const char*, const char*, const char*, const char*, const char*,
1613 const char*);
1614
1615int
1616delete_target (const char*, int);
1617
1618int
1619target_count (const get_data_t *);
1620
1621void
1622init_user_target_iterator (iterator_t*, target_t);
1623
1624void
1625init_target_iterator_one (iterator_t*, target_t);
1626
1627int
1628init_target_iterator (iterator_t*, const get_data_t *);
1629
1630const char*
1631target_iterator_hosts (iterator_t*);
1632
1633const char*
1634target_iterator_exclude_hosts (iterator_t*);
1635
1636const char*
1637target_iterator_reverse_lookup_only (iterator_t*);
1638
1639const char*
1640target_iterator_reverse_lookup_unify (iterator_t*);
1641
1642const char*
1643target_iterator_comment (iterator_t*);
1644
1645int
1646target_iterator_ssh_credential (iterator_t*);
1647
1648const char*
1649target_iterator_ssh_port (iterator_t*);
1650
1651int
1652target_iterator_smb_credential (iterator_t*);
1653
1654int
1655target_iterator_esxi_credential (iterator_t*);
1656
1657int
1658target_iterator_snmp_credential (iterator_t*);
1659
1660int
1661target_iterator_ssh_elevate_credential (iterator_t*);
1662
1663int
1664target_iterator_ssh_trash (iterator_t*);
1665
1666int
1667target_iterator_smb_trash (iterator_t*);
1668
1669int
1670target_iterator_esxi_trash (iterator_t*);
1671
1672int
1673target_iterator_snmp_trash (iterator_t*);
1674
1675int
1676target_iterator_ssh_elevate_trash (iterator_t*);
1677
1678const char*
1679target_iterator_allow_simultaneous_ips (iterator_t*);
1680
1681const char*
1682target_iterator_port_list_uuid (iterator_t*);
1683
1684const char*
1685target_iterator_port_list_name (iterator_t*);
1686
1687int
1688target_iterator_port_list_trash (iterator_t*);
1689
1690const char*
1691target_iterator_alive_tests (iterator_t*);
1692
1693char*
1694target_uuid (target_t);
1695
1696char*
1697trash_target_uuid (target_t);
1698
1699char*
1700target_name (target_t);
1701
1702char*
1703trash_target_name (target_t);
1704
1705int
1706trash_target_readable (target_t);
1707
1708char*
1709target_hosts (target_t);
1710
1711char*
1712target_exclude_hosts (target_t);
1713
1714char*
1715target_reverse_lookup_only (target_t);
1716
1717char*
1718target_reverse_lookup_unify (target_t);
1719
1720char*
1721target_allow_simultaneous_ips (target_t);
1722
1723char*
1724target_port_range (target_t);
1725
1726char*
1727target_ssh_port (target_t);
1728
1729int
1730target_in_use (target_t);
1731
1732int
1733trash_target_in_use (target_t);
1734
1735int
1736target_writable (target_t);
1737
1738int
1739trash_target_writable (target_t);
1740
1741char*
1742target_ssh_credential_name (const char *);
1743
1744void
1745init_target_task_iterator (iterator_t*, target_t);
1746
1747const char*
1748target_task_iterator_name (iterator_t*);
1749
1750const char*
1751target_task_iterator_uuid (iterator_t*);
1752
1753int
1754target_task_iterator_readable (iterator_t*);
1755
1756credential_t
1757target_credential (target_t, const char*);
1758
1759int
1760target_login_port (target_t, const char*);
1761
1762
1763/* Configs.
1764 *
1765 * These are here because they need definitions that are still in manage.h. */
1766
1767int
1768create_task_check_scanner_type (scanner_t);
1769
1770int
1771modify_task_check_config_scanner (task_t, const char *, const char *);
1772
1773
1774/* NVT's. */
1775
1776char *
1777manage_nvt_name (nvt_t);
1778
1779char *
1780nvt_name (const char *);
1781
1782char*
1783nvts_feed_version ();
1784
1785time_t
1786nvts_feed_version_epoch ();
1787
1788void
1789set_nvts_feed_version (const char*);
1790
1791gboolean
1792find_nvt (const char*, nvt_t*);
1793
1794int
1795init_nvt_info_iterator (iterator_t*, get_data_t*, const char*);
1796
1797int
1798nvt_info_count (const get_data_t *);
1799
1800int
1801nvt_info_count_after (const get_data_t *, time_t, gboolean);
1802
1803void
1804init_nvt_iterator (iterator_t*, nvt_t, config_t, const char*, const char*, int,
1805 const char*);
1806
1807void
1808init_cve_nvt_iterator (iterator_t*, const char *, int, const char*);
1809
1810const char*
1811nvt_iterator_oid (iterator_t*);
1812
1813const char*
1814nvt_iterator_version (iterator_t*);
1815
1816const char*
1817nvt_iterator_name (iterator_t*);
1818
1819const char*
1820nvt_iterator_summary (iterator_t*);
1821
1822const char*
1823nvt_iterator_insight (iterator_t*);
1824
1825const char*
1826nvt_iterator_affected (iterator_t*);
1827
1828const char*
1829nvt_iterator_impact (iterator_t*);
1830
1831const char*
1832nvt_iterator_description (iterator_t*);
1833
1834const char*
1835nvt_iterator_tag (iterator_t*);
1836
1837int
1838nvt_iterator_category (iterator_t*);
1839
1840const char*
1841nvt_iterator_family (iterator_t*);
1842
1843const char*
1844nvt_iterator_cvss_base (iterator_t*);
1845
1846const char*
1847nvt_iterator_detection (iterator_t*);
1848
1849const char*
1850nvt_iterator_qod (iterator_t*);
1851
1852const char*
1853nvt_iterator_qod_type ( iterator_t *iterator );
1854
1855const char*
1856nvt_iterator_solution (iterator_t*);
1857
1858const char*
1859nvt_iterator_solution_type (iterator_t*);
1860
1861const char*
1862nvt_iterator_solution_method (iterator_t*);
1863
1864char*
1865nvt_default_timeout (const char *);
1866
1867int
1868family_nvt_count (const char *);
1869
1870
1871/* NVT selectors. */
1872
1876#define NVT_SELECTOR_TYPE_ALL 0
1877
1881#define NVT_SELECTOR_TYPE_FAMILY 1
1882
1886#define NVT_SELECTOR_TYPE_NVT 2
1887
1891#define NVT_SELECTOR_TYPE_ANY 999
1892
1893void
1894init_family_iterator (iterator_t*, int, const char*, int);
1895
1896const char*
1897family_iterator_name (iterator_t*);
1898
1899int
1900nvt_selector_family_growing (const char *, const char *, int);
1901
1902int
1903nvt_selector_family_count (const char*, int);
1904
1905int
1906nvt_selector_nvt_count (const char *, const char *, int);
1907
1908void
1909init_nvt_selector_iterator (iterator_t*, const char*, config_t, int);
1910
1911const char*
1912nvt_selector_iterator_nvt (iterator_t*);
1913
1914const char*
1915nvt_selector_iterator_name (iterator_t*);
1916
1917int
1918nvt_selector_iterator_include (iterator_t*);
1919
1920int
1921nvt_selector_iterator_type (iterator_t*);
1922
1923
1924/* NVT preferences. */
1925
1926void
1927manage_nvt_preference_add (const char*, const char*, const char*, const char*,
1928 const char*, const char*, int);
1929
1930void
1931manage_nvt_preferences_enable ();
1932
1933void
1934init_nvt_preference_iterator (iterator_t*, const char*);
1935
1936const char*
1937nvt_preference_iterator_name (iterator_t*);
1938
1939const char*
1940nvt_preference_iterator_value (iterator_t*);
1941
1942char*
1943nvt_preference_iterator_config_value (iterator_t*, config_t);
1944
1945char*
1946nvt_preference_iterator_real_name (iterator_t*);
1947
1948char*
1949nvt_preference_iterator_type (iterator_t*);
1950
1951char*
1952nvt_preference_iterator_oid (iterator_t*);
1953
1954char*
1955nvt_preference_iterator_id (iterator_t*);
1956
1957int
1958nvt_preference_count (const char *);
1959
1960void
1961xml_append_nvt_refs (GString *, const char *, int *);
1962
1963gchar*
1964get_nvt_xml (iterator_t*, int, int, int, const char*, config_t, int, int);
1965
1966char*
1967task_preference_value (task_t, const char *);
1968
1969int
1970set_task_preferences (task_t, array_t *);
1971
1972void
1973init_task_group_iterator (iterator_t *, task_t);
1974
1975const char*
1976task_group_iterator_name (iterator_t*);
1977
1978const char*
1979task_group_iterator_uuid (iterator_t*);
1980
1981void
1982init_task_role_iterator (iterator_t *, task_t);
1983
1984const char*
1985task_role_iterator_name (iterator_t*);
1986
1987const char*
1988task_role_iterator_uuid (iterator_t*);
1989
1990/* NVT severities */
1991void
1992init_nvt_severity_iterator (iterator_t *, const char *);
1993
1994const char *
1995nvt_severity_iterator_type (iterator_t *);
1996
1997const char *
1998nvt_severity_iterator_origin (iterator_t *);
1999
2000const char *
2001nvt_severity_iterator_date (iterator_t *);
2002
2003double
2004nvt_severity_iterator_score (iterator_t *);
2005
2006const char *
2007nvt_severity_iterator_value (iterator_t *);
2008
2009
2010/* Credentials. */
2011
2015typedef enum
2016{
2017 CREDENTIAL_FORMAT_NONE = 0,
2018 CREDENTIAL_FORMAT_KEY = 1,
2019 CREDENTIAL_FORMAT_RPM = 2,
2020 CREDENTIAL_FORMAT_DEB = 3,
2021 CREDENTIAL_FORMAT_EXE = 4,
2022 CREDENTIAL_FORMAT_PEM = 5,
2023 CREDENTIAL_FORMAT_ERROR = -1
2024} credential_format_t;
2025
2026int
2027check_private_key (const char *, const char *);
2028
2029gboolean
2030find_credential_with_permission (const char*, credential_t*, const char*);
2031
2032int
2033create_credential (const char*, const char*, const char*, const char*,
2034 const char*, const char*, const char*, const char*,
2035 const char*, const char*, const char*, const char*,
2036 const char*, credential_t*);
2037
2038int
2039copy_credential (const char*, const char*, const char*,
2040 credential_t*);
2041
2042int
2043modify_credential (const char*, const char*, const char*, const char*,
2044 const char*, const char*, const char*, const char*,
2045 const char*, const char*, const char*, const char*,
2046 const char*);
2047
2048int
2049delete_credential (const char *, int);
2050
2051int
2052credential_count (const get_data_t *);
2053
2054void
2055set_credential_privacy_algorithm (credential_t, const char *);
2056
2057void
2058set_credential_public_key (credential_t, const char *);
2059
2060void
2061init_credential_iterator_one (iterator_t*, credential_t);
2062
2063int
2064init_credential_iterator (iterator_t*, const get_data_t *);
2065
2066const char*
2067credential_iterator_login (iterator_t*);
2068
2069const char*
2070credential_iterator_auth_algorithm (iterator_t*);
2071
2072const char*
2073credential_iterator_privacy_algorithm (iterator_t*);
2074
2075const char*
2076credential_iterator_password (iterator_t*);
2077
2078const char*
2079credential_iterator_community (iterator_t*);
2080
2081const char*
2082credential_iterator_privacy_password (iterator_t*);
2083
2084const char*
2085credential_iterator_public_key (iterator_t*);
2086
2087const char*
2088credential_iterator_private_key (iterator_t*);
2089
2090const char*
2091credential_iterator_type (iterator_t*);
2092
2093int
2094credential_iterator_allow_insecure (iterator_t*);
2095
2096const char*
2097credential_full_type (const char*);
2098
2099char*
2100credential_iterator_rpm (iterator_t*);
2101
2102char*
2103credential_iterator_deb (iterator_t*);
2104
2105char*
2106credential_iterator_exe (iterator_t*);
2107
2108const char*
2109credential_iterator_certificate (iterator_t*);
2110
2111gboolean
2112credential_iterator_format_available (iterator_t*, credential_format_t);
2113
2114gchar *
2115credential_iterator_formats_xml (iterator_t* iterator);
2116
2117char*
2118credential_uuid (credential_t);
2119
2120char*
2121trash_credential_uuid (credential_t);
2122
2123char*
2124credential_name (credential_t);
2125
2126char*
2127trash_credential_name (credential_t);
2128
2129char*
2130credential_type (credential_t);
2131
2132void
2133init_credential_target_iterator (iterator_t*, credential_t, int);
2134
2135const char*
2136credential_target_iterator_uuid (iterator_t*);
2137
2138const char*
2139credential_target_iterator_name (iterator_t*);
2140
2141int
2142credential_target_iterator_readable (iterator_t*);
2143
2144void
2145init_credential_scanner_iterator (iterator_t*, credential_t, int);
2146
2147const char*
2148credential_scanner_iterator_uuid (iterator_t*);
2149
2150const char*
2151credential_scanner_iterator_name (iterator_t*);
2152
2153int
2154credential_scanner_iterator_readable (iterator_t*);
2155
2156int
2157trash_credential_in_use (credential_t);
2158
2159int
2160credential_in_use (credential_t);
2161
2162int
2163trash_credential_writable (credential_t);
2164
2165int
2166credential_writable (credential_t);
2167
2168int
2169trash_credential_readable (credential_t);
2170
2171gchar*
2172credential_value (credential_t, const char*);
2173
2174gchar*
2175credential_encrypted_value (credential_t, const char*);
2176
2177
2178
2179/* Assets. */
2180
2181char *
2182result_host_asset_id (const char *, result_t);
2183
2184char*
2185host_uuid (resource_t);
2186
2187host_t
2188host_notice (const char *, const char *, const char *, const char *,
2189 const char *, int, int);
2190
2191void
2192init_host_identifier_iterator (iterator_t*, host_t, int, const char*);
2193
2194const char*
2195host_identifier_iterator_value (iterator_t *);
2196
2197const char*
2198host_identifier_iterator_source_type (iterator_t *);
2199
2200const char*
2201host_identifier_iterator_source_id (iterator_t *);
2202
2203const char*
2204host_identifier_iterator_source_data (iterator_t *);
2205
2206int
2207host_identifier_iterator_source_orphan (iterator_t *);
2208
2209const char*
2210host_identifier_iterator_os_id (iterator_t *);
2211
2212const char*
2213host_identifier_iterator_os_title (iterator_t *);
2214
2215int
2216init_asset_host_iterator (iterator_t *, const get_data_t *);
2217
2218int
2219asset_iterator_writable (iterator_t *);
2220
2221int
2222asset_iterator_in_use (iterator_t *);
2223
2224const char*
2225asset_host_iterator_severity (iterator_t *);
2226
2227int
2228asset_host_count (const get_data_t *);
2229
2230int
2231init_asset_os_iterator (iterator_t *, const get_data_t *);
2232
2233const char*
2234asset_os_iterator_title (iterator_t *);
2235
2236int
2237asset_os_iterator_installs (iterator_t *);
2238
2239const char*
2240asset_os_iterator_latest_severity (iterator_t *);
2241
2242const char*
2243asset_os_iterator_highest_severity (iterator_t *);
2244
2245const char*
2246asset_os_iterator_average_severity (iterator_t *);
2247
2248int
2249asset_os_iterator_all_installs (iterator_t *);
2250
2251int
2252asset_os_count (const get_data_t *);
2253
2254int
2255total_asset_count (const get_data_t *);
2256
2257void
2258init_os_host_iterator (iterator_t *, resource_t);
2259
2260const char*
2261os_host_iterator_severity (iterator_t *);
2262
2263void
2264init_host_detail_iterator (iterator_t *, resource_t);
2265
2266const char*
2267host_detail_iterator_name (iterator_t *);
2268
2269const char*
2270host_detail_iterator_value (iterator_t *);
2271
2272const char*
2273host_detail_iterator_source_type (iterator_t *);
2274
2275const char*
2276host_detail_iterator_source_id (iterator_t *);
2277
2278int
2279modify_asset (const char *, const char *);
2280
2281int
2282delete_asset (const char *, const char *, int);
2283
2284int
2285create_asset_report (const char *, const char *);
2286
2287int
2288create_asset_host (const char *, const char *, resource_t* );
2289
2290int
2291add_assets_from_host_in_report (report_t report, const char *host);
2292
2293
2294/* Notes. */
2295
2296gboolean
2297find_note_with_permission (const char*, note_t*, const char *);
2298
2299int
2300create_note (const char*, const char*, const char*, const char*, const char*,
2301 const char*, const char*, task_t, result_t, note_t*);
2302
2303int
2304copy_note (const char*, note_t*);
2305
2306int
2307delete_note (const char *, int);
2308
2309int
2310note_uuid (note_t, char **);
2311
2312int
2313modify_note (const gchar *, const char *, const char *, const char *,
2314 const char *, const char *, const char *, const char *,
2315 const gchar *, const gchar *);
2316
2317int
2318note_count (const get_data_t *, nvt_t, result_t, task_t);
2319
2320int
2321init_note_iterator (iterator_t*, const get_data_t*, nvt_t, result_t, task_t);
2322
2323const char*
2324note_iterator_nvt_oid (iterator_t*);
2325
2326time_t
2327note_iterator_creation_time (iterator_t*);
2328
2329time_t
2330note_iterator_modification_time (iterator_t*);
2331
2332const char*
2333note_iterator_text (iterator_t*);
2334
2335const char*
2336note_iterator_hosts (iterator_t*);
2337
2338const char*
2339note_iterator_port (iterator_t*);
2340
2341const char*
2342note_iterator_threat (iterator_t*);
2343
2344task_t
2345note_iterator_task (iterator_t*);
2346
2347result_t
2348note_iterator_result (iterator_t*);
2349
2350time_t
2351note_iterator_end_time (iterator_t*);
2352
2353int
2354note_iterator_active (iterator_t*);
2355
2356const char*
2357note_iterator_nvt_name (iterator_t *);
2358
2359const char *
2360note_iterator_nvt_type (iterator_t *);
2361
2362const char*
2363note_iterator_severity (iterator_t *);
2364
2365
2366/* Overrides. */
2367
2368gboolean
2369find_override_with_permission (const char*, override_t*, const char *);
2370
2371int
2372create_override (const char*, const char*, const char*, const char*,
2373 const char*, const char*, const char*, const char*,
2374 const char*, task_t, result_t, override_t*);
2375
2376int
2377override_uuid (override_t, char **);
2378
2379int
2380copy_override (const char*, override_t*);
2381
2382int
2383delete_override (const char *, int);
2384
2385int
2386modify_override (const gchar *, const char *, const char *, const char *,
2387 const char *, const char *, const char *, const char *,
2388 const char *, const char *, const gchar *, const gchar *);
2389
2390int
2391override_count (const get_data_t *, nvt_t, result_t, task_t);
2392
2393int
2394init_override_iterator (iterator_t*, const get_data_t*, nvt_t, result_t,
2395 task_t);
2396
2397const char*
2398override_iterator_nvt_oid (iterator_t*);
2399
2400time_t
2401override_iterator_creation_time (iterator_t*);
2402
2403time_t
2404override_iterator_modification_time (iterator_t*);
2405
2406const char*
2407override_iterator_text (iterator_t*);
2408
2409const char*
2410override_iterator_hosts (iterator_t*);
2411
2412const char*
2413override_iterator_port (iterator_t*);
2414
2415const char*
2416override_iterator_threat (iterator_t*);
2417
2418const char*
2419override_iterator_new_threat (iterator_t*);
2420
2421task_t
2422override_iterator_task (iterator_t*);
2423
2424result_t
2425override_iterator_result (iterator_t*);
2426
2427time_t
2428override_iterator_end_time (iterator_t*);
2429
2430int
2431override_iterator_active (iterator_t*);
2432
2433const char*
2434override_iterator_nvt_name (iterator_t *);
2435
2436const char *
2437override_iterator_nvt_type (iterator_t *);
2438
2439const char*
2440override_iterator_severity (iterator_t *);
2441
2442const char*
2443override_iterator_new_severity (iterator_t *);
2444
2445
2446/* System reports. */
2447
2451typedef struct
2452{
2453 gchar **start;
2454 gchar **current;
2456
2457int
2459 const char*);
2460
2461void
2463
2464gboolean
2466
2467const char*
2469
2470const char*
2472
2473int
2474manage_system_report (const char *, const char *, const char *, const char *,
2475 const char *, char **);
2476
2477
2478/* Scanners. */
2479
2483#define SCANNER_CONNECTION_RETRY_DEFAULT 3
2484
2485int
2486manage_create_scanner (GSList *, const db_conn_info_t *, const char *,
2487 const char *, const char *, const char *, const char *,
2488 const char *, const char *, const char *);
2489
2490int
2491manage_modify_scanner (GSList *, const db_conn_info_t *, const char *,
2492 const char *, const char *, const char *, const char *,
2493 const char *, const char *, const char *, const char *);
2494
2495int
2496manage_delete_scanner (GSList *, const db_conn_info_t *, const gchar *);
2497
2498int
2499manage_verify_scanner (GSList *, const db_conn_info_t *, const gchar *);
2500
2501int
2502manage_get_scanners (GSList *, const db_conn_info_t *);
2503
2504int
2505create_scanner (const char*, const char *, const char *, const char *,
2506 const char *, scanner_t *, const char *, const char *);
2507
2508int
2509copy_scanner (const char*, const char*, const char *, scanner_t *);
2510
2511int
2512modify_scanner (const char*, const char*, const char*, const char *,
2513 const char *, const char *, const char *, const char *);
2514
2515int
2516delete_scanner (const char *, int);
2517
2518gboolean
2519find_scanner_with_permission (const char *, scanner_t *, const char *);
2520
2521int
2522scanner_in_use (scanner_t);
2523
2524int
2525trash_scanner_readable (scanner_t);
2526
2527int
2528trash_scanner_in_use (scanner_t);
2529
2530int
2531trash_scanner_writable (scanner_t);
2532
2533int
2534scanner_writable (scanner_t);
2535
2536const char *
2537scanner_uuid_default ();
2538
2539char *
2540scanner_host (scanner_t);
2541
2542int
2543scanner_port (scanner_t);
2544
2545int
2546scanner_type (scanner_t);
2547
2548char *
2549scanner_ca_pub (scanner_t);
2550
2551char *
2552scanner_key_pub (scanner_t);
2553
2554char *
2555scanner_key_priv (scanner_t);
2556
2557char*
2558scanner_login (scanner_t);
2559
2560char*
2561scanner_password (scanner_t);
2562
2563int
2564scanner_count (const get_data_t *);
2565
2566char *
2567openvas_default_scanner_host ();
2568
2569int
2570init_scanner_iterator (iterator_t*, const get_data_t *);
2571
2572const char*
2573scanner_iterator_host (iterator_t*);
2574
2575int
2576scanner_iterator_port (iterator_t*);
2577
2578int
2579scanner_iterator_type (iterator_t*);
2580
2581const char*
2582scanner_iterator_credential_name (iterator_t *);
2583
2584credential_t
2585scanner_iterator_credential (iterator_t *);
2586
2587int
2588scanner_iterator_credential_trash (iterator_t*);
2589
2590const char*
2591scanner_iterator_ca_pub (iterator_t *);
2592
2593const char*
2594scanner_iterator_key_pub (iterator_t *);
2595
2596const char*
2597scanner_iterator_credential_type (iterator_t *);
2598
2599int
2600scanner_config_iterator_readable (iterator_t *);
2601
2602void
2603init_scanner_task_iterator (iterator_t*, scanner_t);
2604
2605const char*
2606scanner_task_iterator_uuid (iterator_t *);
2607
2608const char*
2609scanner_task_iterator_name (iterator_t *);
2610
2611int
2612scanner_task_iterator_readable (iterator_t *);
2613
2614char *
2615scanner_name (scanner_t);
2616
2617char *
2618scanner_uuid (scanner_t);
2619
2620char *
2621trash_scanner_name (scanner_t);
2622
2623char *
2624trash_scanner_uuid (scanner_t);
2625
2626int
2627osp_get_version_from_iterator (iterator_t *, char **, char **, char **, char **,
2628 char **, char **);
2629
2630int
2631osp_get_details_from_iterator (iterator_t *, char **, GSList **);
2632
2633osp_connection_t *
2634osp_connect_with_data (const char *,
2635 int,
2636 const char *,
2637 const char *,
2638 const char *);
2639
2640osp_connection_t *
2641osp_scanner_connect (scanner_t);
2642
2643int
2645
2646void
2648
2649int
2650verify_scanner (const char *, char **);
2651
2652const char *
2654
2655void
2656set_relay_mapper_path (const char *);
2657
2658int
2660
2661void
2663
2664gboolean
2665relay_supports_scanner_type (const char *, int, scanner_type_t);
2666
2667int
2668slave_get_relay (const char *,
2669 int,
2670 const char *,
2671 const char *,
2672 gchar **,
2673 int *,
2674 gchar **);
2675
2676int
2677slave_relay_connection (gvm_connection_t *, gvm_connection_t *);
2678
2679/* Scheduling. */
2680
2684#define SCHEDULE_PERIOD 10
2685
2690#define SCHEDULE_TIMEOUT_MIN_SECS 20
2691
2695#define SCHEDULE_TIMEOUT_DEFAULT 60
2696
2697gboolean
2698find_schedule_with_permission (const char*, schedule_t*, const char*);
2699
2700int
2701create_schedule (const char *, const char*, const char *,
2702 const char*, schedule_t *, gchar**);
2703
2704int
2705copy_schedule (const char*, const char*, const char *, schedule_t *);
2706
2707int
2708delete_schedule (const char*, int);
2709
2710void
2712
2713const gchar*
2715
2716void
2717set_scheduled_user_uuid (const gchar* uuid);
2718
2719void
2720manage_sync (sigset_t *, int (*fork_update_nvt_cache) (), gboolean);
2721
2722int
2724 GSList *,
2725 const db_conn_info_t *,
2726 gchar **);
2727
2728int
2729manage_schedule (manage_connection_forker_t,
2730 gboolean,
2731 sigset_t *);
2732
2733char *
2734schedule_uuid (schedule_t);
2735
2736char *
2737trash_schedule_uuid (schedule_t);
2738
2739char *
2740schedule_name (schedule_t);
2741
2742char *
2743trash_schedule_name (schedule_t);
2744
2745int
2746schedule_duration (schedule_t);
2747
2748int
2749schedule_period (schedule_t);
2750
2751int
2752schedule_info (schedule_t, int, gchar **, gchar **);
2753
2754int
2755init_schedule_iterator (iterator_t*, const get_data_t *);
2756
2757const char*
2758schedule_iterator_timezone (iterator_t *);
2759
2760const char*
2761schedule_iterator_icalendar (iterator_t *);
2762
2763int
2764trash_schedule_in_use (schedule_t);
2765
2766int
2767schedule_in_use (schedule_t);
2768
2769int
2770trash_schedule_writable (schedule_t);
2771
2772int
2773trash_schedule_readable (schedule_t);
2774
2775int
2776schedule_writable (schedule_t);
2777
2778int
2779schedule_count (const get_data_t *);
2780
2781void
2782init_schedule_task_iterator (iterator_t*, schedule_t);
2783
2784const char*
2785schedule_task_iterator_uuid (iterator_t *);
2786
2787const char*
2788schedule_task_iterator_name (iterator_t *);
2789
2790int
2791schedule_task_iterator_readable (iterator_t*);
2792
2793int
2794modify_schedule (const char *, const char *, const char *, const char*,
2795 const char *, gchar **);
2796
2797int
2799
2800void
2802
2803
2804/* Groups. */
2805
2806int
2807init_group_iterator (iterator_t *, const get_data_t *);
2808
2809int
2810copy_group (const char *, const char *, const char *, group_t *);
2811
2812int
2813create_group (const char *, const char *, const char *, int, group_t *);
2814
2815int
2816delete_group (const char *, int);
2817
2818char*
2819group_uuid (group_t);
2820
2821gchar *
2822group_users (group_t);
2823
2824int
2825trash_group_in_use (group_t);
2826
2827int
2828group_in_use (group_t);
2829
2830int
2831trash_group_writable (group_t);
2832
2833int
2834group_writable (group_t);
2835
2836int
2837group_count (const get_data_t*);
2838
2839int
2840modify_group (const char *, const char *, const char *, const char *);
2841
2842
2843/* Permissions. */
2844
2845int
2846create_permission (const char *, const char *, const char *, const char *,
2847 const char *, const char *, permission_t *);
2848
2849int
2850copy_permission (const char*, const char *, permission_t *);
2851
2852char*
2853permission_uuid (permission_t);
2854
2855int
2856permission_is_admin (const char *);
2857
2858int
2859permission_in_use (permission_t);
2860
2861int
2862trash_permission_in_use (permission_t);
2863
2864int
2865permission_writable (permission_t);
2866
2867int
2868trash_permission_writable (permission_t);
2869
2870int
2871permission_count (const get_data_t *);
2872
2873int
2874init_permission_iterator (iterator_t*, const get_data_t *);
2875
2876const char*
2877permission_iterator_resource_type (iterator_t*);
2878
2879const char*
2880permission_iterator_resource_uuid (iterator_t*);
2881
2882const char*
2883permission_iterator_resource_name (iterator_t*);
2884
2885int
2886permission_iterator_resource_in_trash (iterator_t*);
2887
2888int
2889permission_iterator_resource_orphan (iterator_t*);
2890
2891int
2892permission_iterator_resource_readable (iterator_t*);
2893
2894const char*
2895permission_iterator_subject_type (iterator_t*);
2896
2897const char*
2898permission_iterator_subject_uuid (iterator_t*);
2899
2900const char*
2901permission_iterator_subject_name (iterator_t*);
2902
2903int
2904permission_iterator_subject_in_trash (iterator_t*);
2905
2906int
2907permission_iterator_subject_readable (iterator_t*);
2908
2909int
2910delete_permission (const char*, int);
2911
2912int
2913modify_permission (const char *, const char *, const char *, const char *,
2914 const char *, const char *, const char *);
2915
2916/* Permission caching */
2917
2918void
2919delete_permissions_cache_for_resource (const char*, resource_t);
2920
2921void
2922delete_permissions_cache_for_user (user_t);
2923
2924
2925/* Roles. */
2926
2927int
2928manage_get_roles (GSList *, const db_conn_info_t *, int);
2929
2930int
2931init_role_iterator (iterator_t *, const get_data_t *);
2932
2933int
2934copy_role (const char *, const char *, const char *, role_t *);
2935
2936int
2937create_role (const char *, const char *, const char *, role_t *);
2938
2939int
2940delete_role (const char *, int);
2941
2942char*
2943role_uuid (role_t);
2944
2945gchar *
2946role_users (role_t);
2947
2948int
2949trash_role_in_use (role_t);
2950
2951int
2952role_in_use (role_t);
2953
2954int
2955trash_role_writable (role_t);
2956
2957int
2958role_writable (role_t);
2959
2960int
2961role_count (const get_data_t*);
2962
2963int
2964modify_role (const char *, const char *, const char *, const char *);
2965
2966
2967/* Filter Utilities. */
2968
2972typedef enum
2973{
2974 KEYWORD_TYPE_UNKNOWN,
2975 KEYWORD_TYPE_INTEGER,
2976 KEYWORD_TYPE_DOUBLE,
2977 KEYWORD_TYPE_STRING
2978} keyword_type_t;
2979
2983typedef enum
2984{
2985 KEYWORD_RELATION_APPROX,
2986 KEYWORD_RELATION_COLUMN_ABOVE,
2987 KEYWORD_RELATION_COLUMN_APPROX,
2988 KEYWORD_RELATION_COLUMN_EQUAL,
2989 KEYWORD_RELATION_COLUMN_BELOW,
2990 KEYWORD_RELATION_COLUMN_REGEXP
2991} keyword_relation_t;
2992
2997{
2998 gchar *column;
3000 int equal;
3004 gchar *string;
3005 keyword_type_t type;
3006 keyword_relation_t relation;
3007};
3008
3012typedef struct keyword keyword_t;
3013
3014int
3015keyword_special (keyword_t *);
3016
3017const char *
3018keyword_relation_symbol (keyword_relation_t);
3019
3020void
3021filter_free (array_t*);
3022
3023array_t *
3024split_filter (const gchar*);
3025
3026
3027/* Filters. */
3028
3032#define FILT_ID_NONE "0"
3033
3037#define FILT_ID_USER_SETTING "-2"
3038
3039gboolean
3040find_filter (const char*, filter_t*);
3041
3042gboolean
3043find_filter_with_permission (const char*, filter_t*, const char*);
3044
3045char*
3046filter_uuid (filter_t);
3047
3048char*
3049filter_name (filter_t);
3050
3051gchar*
3052filter_term (const char *);
3053
3054gchar*
3055filter_term_value (const char *, const char *);
3056
3057int
3058filter_term_apply_overrides (const char *);
3059
3060int
3061filter_term_min_qod (const char *);
3062
3063int
3064create_filter (const char*, const char*, const char*, const char*, filter_t*);
3065
3066int
3067copy_filter (const char*, const char*, const char*, filter_t*);
3068
3069int
3070delete_filter (const char *, int);
3071
3072int
3073trash_filter_in_use (filter_t);
3074
3075int
3076filter_in_use (filter_t);
3077
3078int
3079trash_filter_writable (filter_t);
3080
3081int
3082filter_writable (filter_t);
3083
3084int
3085filter_count (const get_data_t*);
3086
3087int
3088init_filter_iterator (iterator_t*, const get_data_t*);
3089
3090const char*
3091filter_iterator_type (iterator_t*);
3092
3093const char*
3094filter_iterator_term (iterator_t*);
3095
3096void
3097init_filter_alert_iterator (iterator_t*, filter_t);
3098
3099const char*
3100filter_alert_iterator_name (iterator_t*);
3101
3102const char*
3103filter_alert_iterator_uuid (iterator_t*);
3104
3105int
3106filter_alert_iterator_readable (iterator_t*);
3107
3108int
3109modify_filter (const char*, const char*, const char*, const char*, const char*);
3110
3111
3112/* Schema. */
3113
3114int
3115manage_schema (gchar *, gchar **, gsize *, gchar **, gchar **);
3116
3117
3118/* Trashcan. */
3119
3120int
3121manage_restore (const char *);
3122
3123int
3124manage_empty_trashcan ();
3125
3126
3127/* SecInfo */
3128
3129int
3130manage_read_info (gchar *, gchar *, gchar *, gchar **);
3131
3132int
3133info_name_count (const gchar *, const gchar *);
3134
3135/* SCAP. */
3136
3137int
3138manage_scap_loaded ();
3139
3140const char *
3142
3143/* CPE. */
3144
3145void
3146init_cpe_cve_iterator (iterator_t *, const char *, int, const char *);
3147
3148int
3149init_cpe_info_iterator (iterator_t*, get_data_t*, const char*);
3150
3151int
3152cpe_info_count (const get_data_t *get);
3153
3154const char*
3155cpe_info_iterator_title (iterator_t*);
3156
3157const char*
3158cpe_info_iterator_status (iterator_t*);
3159
3160const char *
3161cpe_info_iterator_severity (iterator_t*);
3162
3163const char*
3164cpe_info_iterator_deprecated_by_id (iterator_t*);
3165
3166const char*
3167cpe_info_iterator_cve_refs (iterator_t*);
3168
3169const char*
3170cpe_info_iterator_nvd_id (iterator_t*);
3171
3172gchar *
3173cpe_details_xml (const char*);
3174
3175/* CVE. */
3176
3177const char*
3178cve_iterator_name (iterator_t*);
3179
3180const char*
3181cve_iterator_cvss_score (iterator_t*);
3182
3183const char*
3184cve_info_iterator_severity (iterator_t*);
3185
3186const char*
3187cve_info_iterator_vector (iterator_t*);
3188
3189const char*
3190cve_info_iterator_description (iterator_t*);
3191
3192const char*
3193cve_info_iterator_products (iterator_t*);
3194
3195int
3196init_cve_info_iterator (iterator_t*, get_data_t*, const char*);
3197
3198int
3199cve_info_count (const get_data_t *get);
3200
3201gchar *
3202cve_cvss_base (const gchar *);
3203
3204/* CERT data */
3205int
3206manage_cert_loaded ();
3207
3208/* CERT-Bund */
3209
3210int
3211init_cert_bund_adv_info_iterator (iterator_t*, get_data_t*, const char*);
3212
3213int
3214cert_bund_adv_info_count (const get_data_t *get);
3215
3216const char*
3217cert_bund_adv_info_iterator_title (iterator_t*);
3218
3219const char*
3220cert_bund_adv_info_iterator_summary (iterator_t*);
3221
3222const char*
3223cert_bund_adv_info_iterator_cve_refs (iterator_t*);
3224
3225const char*
3226cert_bund_adv_info_iterator_severity (iterator_t*);
3227
3228void
3229init_cve_cert_bund_adv_iterator (iterator_t*, const char*, int, const char*);
3230
3231void
3232init_nvt_cert_bund_adv_iterator (iterator_t*, const char*);
3233
3234const char*
3235nvt_cert_bund_adv_iterator_name (iterator_t*);
3236
3237/* DFN-CERT */
3238
3239int
3240init_dfn_cert_adv_info_iterator (iterator_t*, get_data_t*, const char*);
3241
3242int
3243dfn_cert_adv_info_count (const get_data_t *get);
3244
3245const char*
3246dfn_cert_adv_info_iterator_title (iterator_t*);
3247
3248const char*
3249dfn_cert_adv_info_iterator_summary (iterator_t*);
3250
3251const char*
3252dfn_cert_adv_info_iterator_cve_refs (iterator_t*);
3253
3254const char*
3255dfn_cert_adv_info_iterator_severity (iterator_t*);
3256
3257void
3258init_cve_dfn_cert_adv_iterator (iterator_t*, const char*, int, const char*);
3259
3260void
3261init_nvt_dfn_cert_adv_iterator (iterator_t*, const char*);
3262
3263const char*
3264nvt_dfn_cert_adv_iterator_name (iterator_t*);
3265
3266/* All SecInfo Data */
3267
3268int
3269secinfo_count_after (const get_data_t *, const char *, time_t, gboolean);
3270
3271
3272/* Settings. */
3273
3274int
3275manage_max_rows (int);
3276
3277int
3278setting_count (const char *);
3279
3280int
3281setting_is_default_ca_cert (const gchar *);
3282
3283char *
3284setting_filter (const char *);
3285
3286void
3287init_setting_iterator (iterator_t *, const char *, const char *, int, int, int,
3288 const char *);
3289
3290const char*
3291setting_iterator_uuid (iterator_t*);
3292
3293const char*
3294setting_iterator_name (iterator_t*);
3295
3296const char*
3297setting_iterator_comment (iterator_t*);
3298
3299const char*
3300setting_iterator_value (iterator_t*);
3301
3302int
3303modify_setting (const gchar *, const gchar *, const gchar *, gchar **);
3304
3305int
3306manage_modify_setting (GSList *, const db_conn_info_t *, const gchar *,
3307 const gchar *, const char *);
3308
3309char *
3310manage_default_ca_cert ();
3311
3312
3313/* Users. */
3314
3315gboolean
3316find_user_by_name_with_permission (const char *, user_t *, const char *);
3317
3318int
3319manage_create_user (GSList *, const db_conn_info_t *, const gchar *,
3320 const gchar *, const gchar *);
3321
3322int
3323manage_delete_user (GSList *, const db_conn_info_t *, const gchar *,
3324 const gchar *);
3325
3326int
3327manage_get_users (GSList *, const db_conn_info_t *, const gchar *, int);
3328
3329report_host_t
3330manage_report_host_add (report_t, const char *, time_t, time_t);
3331
3332int
3333report_host_noticeable (report_t, const gchar *);
3334
3335void
3336report_host_set_end_time (report_host_t, time_t);
3337
3338gchar*
3339host_routes_xml (host_t);
3340
3341int
3342manage_set_password (GSList *, const db_conn_info_t *, const gchar *,
3343 const gchar *);
3344
3345gchar *
3346manage_user_hash (const gchar *);
3347
3348gchar *
3349manage_user_uuid (const gchar *, auth_method_t);
3350
3351int
3352manage_user_exists (const gchar *, auth_method_t);
3353
3354int
3355copy_user (const char*, const char*, const char*, user_t*);
3356
3357gchar *
3358keyfile_to_auth_conf_settings_xml (const gchar *);
3359
3360int
3361init_user_iterator (iterator_t*, const get_data_t*);
3362
3363const char*
3364user_iterator_role (iterator_t*);
3365
3366const char*
3367user_iterator_method (iterator_t*);
3368
3369const char*
3370user_iterator_hosts (iterator_t*);
3371
3372int
3373user_iterator_hosts_allow (iterator_t*);
3374
3375void
3376init_user_group_iterator (iterator_t *, user_t);
3377
3378const char*
3379user_group_iterator_uuid (iterator_t*);
3380
3381const char*
3382user_group_iterator_name (iterator_t*);
3383
3384int
3385user_group_iterator_readable (iterator_t*);
3386
3387void
3388init_user_role_iterator (iterator_t *, user_t);
3389
3390const char*
3391user_role_iterator_uuid (iterator_t*);
3392
3393const char*
3394user_role_iterator_name (iterator_t*);
3395
3396int
3397user_role_iterator_readable (iterator_t*);
3398
3399int
3400create_user (const gchar *, const gchar *, const gchar *, const gchar *,
3401 int, const array_t *, array_t *, gchar **,
3402 array_t *, gchar **, gchar **, user_t *, int);
3403
3404int
3405delete_user (const char *, const char *, int, int, const char*, const char*);
3406
3407int
3408modify_user (const gchar *, gchar **, const gchar *, const gchar *,
3409 const gchar*, const gchar *, int,
3410 const array_t *, array_t *, gchar **, array_t *, gchar **,
3411 gchar **);
3412
3413int
3414user_in_use (user_t);
3415
3416int
3417trash_user_in_use (user_t);
3418
3419int
3420user_writable (user_t);
3421
3422int
3423trash_user_writable (user_t);
3424
3425int
3426user_count (const get_data_t*);
3427
3428gchar*
3429user_name (const char *);
3430
3431char*
3432user_uuid (user_t);
3433
3434gchar*
3435user_hosts (const char *);
3436
3437int
3438user_hosts_allow (const char *);
3439
3440int
3441init_vuln_iterator (iterator_t*, const get_data_t*);
3442
3443int
3444vuln_iterator_results (iterator_t*);
3445
3446time_t
3447vuln_iterator_oldest (iterator_t*);
3448
3449time_t
3450vuln_iterator_newest (iterator_t*);
3451
3452const char*
3453vuln_iterator_type (iterator_t*);
3454
3455int
3456vuln_iterator_hosts (iterator_t*);
3457
3458double
3459vuln_iterator_severity (iterator_t*);
3460
3461int
3462vuln_iterator_qod (iterator_t*);
3463
3464int
3465vuln_count (const get_data_t*);
3466
3467void
3468manage_get_ldap_info (int *, gchar **, gchar **, int *, gchar **, int *);
3469
3470void
3471manage_set_ldap_info (int, gchar *, gchar *, int, gchar *, int);
3472
3473void
3474manage_get_radius_info (int *, char **, char **);
3475
3476void
3477manage_set_radius_info (int, gchar *, gchar *);
3478
3479
3480/* Tags */
3481
3482char*
3483tag_uuid (target_t);
3484
3485int
3486copy_tag (const char*, const char*, const char*, tag_t*);
3487
3488int
3489create_tag (const char *, const char *, const char *, const char *,
3490 array_t *, const char *, const char *, tag_t *, gchar **);
3491
3492int
3493delete_tag (const char *, int);
3494
3495int
3496modify_tag (const char *, const char *, const char *, const char *,
3497 const char *, array_t *, const char *, const char *, const char*,
3498 gchar **);
3499
3500int
3501init_tag_iterator (iterator_t*, const get_data_t*);
3502
3503int
3504tag_count (const get_data_t *get);
3505
3506const char*
3507tag_iterator_resource_type (iterator_t*);
3508
3509int
3510tag_iterator_active (iterator_t*);
3511
3512const char*
3513tag_iterator_value (iterator_t*);
3514
3515int
3516tag_iterator_resources (iterator_t*);
3517
3519tag_resource_iterator_id (iterator_t*);
3520
3521const char*
3522tag_resource_iterator_uuid (iterator_t*);
3523
3524int
3525tag_resource_iterator_location (iterator_t*);
3526
3527const char*
3528tag_resource_iterator_name (iterator_t*);
3529
3530int
3531tag_resource_iterator_readable (iterator_t*);
3532
3533int
3534init_tag_name_iterator (iterator_t*, const get_data_t*);
3535
3536const char*
3537tag_name_iterator_name (iterator_t*);
3538
3539int
3540init_resource_tag_iterator (iterator_t*, const char*, resource_t, int,
3541 const char*, int);
3542
3543const char*
3544resource_tag_iterator_uuid (iterator_t*);
3545
3546const char*
3547resource_tag_iterator_name (iterator_t*);
3548
3549const char*
3550resource_tag_iterator_value (iterator_t*);
3551
3552const char*
3553resource_tag_iterator_comment (iterator_t*);
3554
3555int
3556resource_tag_exists (const char*, resource_t, int);
3557
3558int
3559resource_tag_count (const char*, resource_t, int);
3560
3561int
3562tag_in_use (tag_t);
3563
3564int
3565trash_tag_in_use (tag_t);
3566
3567int
3568tag_writable (tag_t);
3569
3570int
3571trash_tag_writable (tag_t);
3572
3573
3574/* Resource aggregates */
3575
3579typedef struct {
3580 gchar *field;
3581 gchar *stat;
3582 int order;
3583} sort_data_t;
3584
3585void
3587
3588int
3589init_aggregate_iterator (iterator_t*, const char *, const get_data_t *, int,
3590 GArray *, const char *, const char*, GArray*, GArray*,
3591 int, int, const char *, const char *);
3592
3593int
3594aggregate_iterator_count (iterator_t*);
3595
3596double
3597aggregate_iterator_min (iterator_t*, int);
3598
3599double
3600aggregate_iterator_max (iterator_t*, int);
3601
3602double
3603aggregate_iterator_mean (iterator_t*, int);
3604
3605double
3606aggregate_iterator_sum (iterator_t*, int);
3607
3608const char*
3609aggregate_iterator_text (iterator_t*, int, int);
3610
3611const char*
3612aggregate_iterator_value (iterator_t*);
3613
3614const char*
3615aggregate_iterator_subgroup_value (iterator_t*);
3616
3617
3618/* Feeds. */
3619
3620#define NVT_FEED 1
3621#define SCAP_FEED 2
3622#define CERT_FEED 3
3623#define GVMD_DATA_FEED 4
3624
3625gboolean
3626manage_gvmd_data_feed_dir_exists (const char *);
3627
3628gboolean
3630
3631int
3633
3634void
3635set_auth_timeout (int);
3636
3637const gchar *
3639
3640void
3641set_broker_address (const char *);
3642
3643const gchar *
3645
3646void
3647set_feed_lock_path (const char *);
3648
3649int
3651
3652void
3654
3655void
3656write_sync_start (int);
3657
3658int
3660
3661int
3663
3664int
3666
3667int
3669
3670gboolean
3671gvm_sync_script_perform_selftest (const gchar *, gchar **);
3672
3673gboolean
3674gvm_get_sync_script_identification (const gchar *, gchar **, int);
3675
3676gboolean
3677gvm_get_sync_script_description (const gchar *, gchar **);
3678
3679gboolean
3680gvm_get_sync_script_feed_version (const gchar *, gchar **);
3681
3682int
3683nvts_feed_info (gchar **, gchar **, gchar **, gchar **);
3684
3685int
3686nvts_check_feed (int *, int *, gchar **);
3687
3688int
3689manage_update_nvts_osp (const gchar *);
3690
3691int
3692manage_rebuild (GSList *, const db_conn_info_t *);
3693
3694int
3695manage_dump_vt_verification (GSList *, const db_conn_info_t *);
3696
3697
3698/* Wizards. */
3699
3700int
3701manage_run_wizard (const gchar *, int (*) (void*, gchar*, gchar**),
3702 void *, array_t *, int, const char*,
3703 gchar **, gchar **, gchar **);
3704
3705
3706/* Helpers. */
3707
3708gchar *
3709xml_escape_text_truncated (const char *, size_t, const char *);
3710
3711int
3712column_is_timestamp (const char*);
3713
3714char*
3715type_columns (const char *);
3716
3717char*
3718type_trash_columns (const char *);
3719
3720gboolean
3721manage_migrate_needs_timezone (GSList *, const db_conn_info_t *);
3722
3723
3724/* Optimize. */
3725
3726int
3727manage_optimize (GSList *, const db_conn_info_t *, const gchar *);
3728
3729
3730/* Signal management */
3731
3732int
3733sql_cancel ();
3734
3735
3736/* General settings */
3737const char *
3738get_vt_verification_collation ();
3739
3740void
3741set_vt_verification_collation (const char *);
3742
3743#endif /* not _GVMD_MANAGE_H */
static int fork_update_nvt_cache()
Update the NVT cache in a child process.
Definition: gvmd.c:1186
Headers for Iterators.
long long int resource_t
A resource, like a task or target.
Definition: iterator.h:39
gchar * truncate_certificate(const gchar *certificate)
Truncate a certificate, removing extra data.
Definition: manage.c:218
gchar * event_description(event_t event, const void *event_data, const char *task_name)
Get a description of an alert event.
Definition: manage.c:1365
const char * credential_full_type(const char *abbreviation)
Get the written-out name of an LSC Credential type.
Definition: manage.c:3858
int feed_lockfile_lock(lockfile_t *lockfile)
Acquires the feed lock and writes the current time to the lockfile.
Definition: manage.c:6177
gchar * certificate_iso_time(time_t time)
Converts a certificate time to an ISO time string.
Definition: manage.c:562
void alert_report_data_reset(alert_report_data_t *data)
Frees content of an alert_report_data_t, but not the struct itself.
Definition: manage.c:1243
const char * report_type_iterator_name(report_type_iterator_t *iterator)
Return the name from a report type iterator.
Definition: manage.c:4212
void cleanup_report_type_iterator(report_type_iterator_t *iterator)
Cleanup a report type iterator.
Definition: manage.c:4182
int init_system_report_type_iterator(report_type_iterator_t *iterator, const char *type, const char *slave_id)
Initialise a system report type iterator.
Definition: manage.c:4157
void sort_data_free(sort_data_t *sort_data)
Free a sort_data_t struct and its related resources.
Definition: manage.c:6009
const char * alert_condition_name(alert_condition_t condition)
Get the name of an alert condition.
Definition: manage.c:1264
int manage_schedule(manage_connection_forker_t fork_connection, gboolean run_tasks, sigset_t *sigmask_current)
Schedule any actions that are due.
Definition: manage.c:5144
int manage_system_report(const char *name, const char *duration, const char *start_time, const char *end_time, const char *slave_id, char **report)
Get a system report.
Definition: manage.c:4349
const char * alert_method_name(alert_method_t method)
Get the name of an alert method.
Definition: manage.c:1406
double severity_data_value(int index)
Convert an index in the counts array to a severity value.
Definition: manage.c:1048
void set_relay_mapper_path(const char *new_path)
Gets the current path of the relay mapper executable.
Definition: manage.c:3217
int feed_lockfile_lock_timeout(lockfile_t *lockfile)
Acquires the feed lock and writes the current time to the lockfile.
Definition: manage.c:6202
const gchar * get_broker_address()
Get the publish-subscribe messaging (MQTT) broker address.
Definition: manage.c:6064
const gchar * get_feed_lock_path()
Get the feed lock file path.
Definition: manage.c:6090
gchar * truncate_private_key(const gchar *private_key)
Truncate a private key, removing extra data.
Definition: manage.c:283
void set_feed_lock_timeout(int new_timeout)
Set the feed lock timeout.
Definition: manage.c:6127
task_t current_scanner_task
The task currently running on the scanner.
Definition: manage.c:1212
int stop_task(const char *task_id)
Initiate stopping a task.
Definition: manage.c:3662
int get_relay_migrate_sensors()
Gets whether to migrate sensors if relays do not match.
Definition: manage.c:3229
int manage_update_nvts_osp(const gchar *update_socket)
Update NVT cache using OSP.
Definition: manage.c:6750
int move_task(const char *task_id, const char *slave_id)
Reassign a task to another slave.
Definition: manage.c:3738
gchar * xml_escape_text_truncated(const char *string, size_t max_len, const char *suffix)
XML escapes text truncating to a maximum length with a suffix.
Definition: manage.c:675
const char * report_type_iterator_title(report_type_iterator_t *iterator)
Return the title from a report type iterator.
Definition: manage.c:4225
int scanner_type_valid(scanner_type_t scanner_type)
Check if a scanner type is valid.
Definition: manage.c:809
int type_is_scap(const char *type)
Check if a type is a SCAP type.
Definition: manage.c:761
int get_auth_timeout()
Get the authentication cache timeout.
Definition: manage.c:6039
gchar * get_nvt_xml(iterator_t *nvts, int details, int pref_count, int preferences, const char *timeout, config_t config, int close_tag, int skip_cert_refs)
Create and return XML description for an NVT.
Definition: manage.c:5537
int slave_get_relay(const char *original_host, int original_port, const char *original_ca_cert, const char *protocol, gchar **new_host, int *new_port, gchar **new_ca_cert)
Gets a relay hostname and port for a sensor scanner.
Definition: manage.c:3390
int start_task(const char *task_id, char **report_id)
Start a task.
Definition: manage.c:3551
void severity_data_add(severity_data_t *severity_data, double severity)
Add a severity occurrence to the counts of a severity_data_t.
Definition: manage.c:1097
void alert_report_data_free(alert_report_data_t *data)
Frees a alert_report_data_t struct, including contained data.
Definition: manage.c:1228
const char * manage_scap_update_time()
GET SCAP update time, as a string.
Definition: manage.c:5849
int resume_task(const char *task_id, char **report_id)
Resume a task.
Definition: manage.c:3704
int get_feed_lock_timeout()
Get the feed lock timeout.
Definition: manage.c:6116
event_t event_from_name(const char *name)
Get an event from a name.
Definition: manage.c:1457
const char * run_status_name(task_status_t status)
Get the name of a run status.
Definition: manage.c:1522
report_t global_current_report
The report of the current task.
Definition: manage.c:1217
alert_method_t alert_method_from_name(const char *name)
Get an alert method from a name.
Definition: manage.c:1482
void set_relay_migrate_sensors(int new_value)
Sets whether to migrate sensors if relays do not match.
Definition: manage.c:3240
gboolean next_report_type(report_type_iterator_t *iterator)
Increment a report type iterator.
Definition: manage.c:4197
const gchar * certificate_time_status(time_t activates, time_t expires)
Tests the activation and expiration time of a certificate.
Definition: manage.c:581
int severity_in_level(double severity, const char *level)
Check whether a severity falls within a threat level.
Definition: manage.c:856
int get_schedule_timeout()
Get the current schedule timeout.
Definition: manage.c:5323
void set_scheduled_user_uuid(const gchar *user_uuid)
Set UUID of user that scheduled the current task. The previous value is freed and a copy of the UUID ...
Definition: manage.c:4532
void manage_auth_allow_all(int scheduled)
Ensure that any subsequent authentications succeed.
Definition: manage.c:4509
alert_condition_t alert_condition_from_name(const char *name)
Get an alert condition from a name.
Definition: manage.c:1434
credentials_t current_credentials
Current credentials during any GMP command.
Definition: manage.c:940
int get_scanner_connection_retry()
Get the number of retries on a scanner connection lost.
Definition: manage.c:2841
gboolean gvm_get_sync_script_identification(const gchar *sync_script, gchar **identification, int feed_type)
Retrieves the ID string of a feed sync script, with basic validation.
Definition: manage.c:6349
gboolean gvm_get_sync_script_description(const gchar *sync_script, gchar **description)
Retrieves description of a feed sync script, with basic validation.
Definition: manage.c:6444
gchar * alert_condition_description(alert_condition_t condition, alert_t alert)
Get a description of an alert condition.
Definition: manage.c:1314
const char * event_name(event_t event)
Get the name of an alert event.
Definition: manage.c:1291
int feed_lockfile_unlock(lockfile_t *lockfile)
Releases the feed lock and clears the contents.
Definition: manage.c:6244
void set_feed_lock_path(const char *new_path)
Set the feed lock file path.
Definition: manage.c:6101
gboolean relay_supports_scanner_type(const char *original_host, int original_port, scanner_type_t type)
Gets whether there is a relay supporting the scanner type.
Definition: manage.c:3345
int nvts_feed_info(gchar **vts_version, gchar **feed_name, gchar **feed_vendor, gchar **feed_home)
Get VTs feed information from the scanner using VT update socket.
Definition: manage.c:6632
void cleanup_severity_data(severity_data_t *data)
Clean up a severity data structure.
Definition: manage.c:1085
const char * severity_to_level(double severity, int mode)
Get the threat level matching a severity score.
Definition: manage.c:879
void set_broker_address(const char *new_address)
Set the publish-subscribe messaging (MQTT) broker address.
Definition: manage.c:6075
const char * get_relay_mapper_path()
Gets the current path of the relay mapper executable.
Definition: manage.c:3206
int delete_resource(const char *type, const char *resource_id, int ultimate)
Delete a resource.
Definition: manage.c:7391
const gchar * get_scheduled_user_uuid()
Access UUID of user that scheduled the current task.
Definition: manage.c:4520
void set_schedule_timeout(int new_timeout)
Set the schedule timeout.
Definition: manage.c:5334
void set_scanner_connection_retry(int new_retry)
Set the number of retries on a scanner connection lost.
Definition: manage.c:2852
gboolean gvm_get_sync_script_feed_version(const gchar *sync_script, gchar **feed_version)
Retrieves the version of a feed handled by the sync, with basic validation.
Definition: manage.c:6510
int manage_run_wizard(const gchar *wizard_name, int(*run_command)(void *, gchar *, gchar **), void *run_command_data, array_t *params, int read_only, const char *mode, gchar **command_error, gchar **command_error_code, gchar **ret_response)
Run a wizard.
Definition: manage.c:6784
const char * type_name_plural(const char *type)
Return the plural name of a resource type.
Definition: manage.c:707
int nvts_check_feed(int *lockfile_in_use, int *self_test_exit_error, char **self_test_error_msg)
Check the VTs feed sync for information using the default OSP socket.
Definition: manage.c:6695
gboolean manage_gvmd_data_feed_dirs_exist()
Tests if the gvmd data feed directory and its subdirectories exist.
Definition: manage.c:6025
void init_severity_data(severity_data_t *data)
Initialize a severity data structure.
Definition: manage.c:1068
void set_auth_timeout(int new_timeout)
Set the authentication cache timeout.
Definition: manage.c:6050
void write_sync_start(int lockfile_fd)
Write start time to sync lock file.
Definition: manage.c:6141
void manage_sync(sigset_t *sigmask_current, int(*fork_update_nvt_cache)(), gboolean try_gvmd_data_sync)
Perform any syncing that is due.
Definition: manage.c:4938
void severity_data_add_count(severity_data_t *severity_data, double severity, int count)
Add a multiple severity occurrences to the counts of a severity_data_t.
Definition: manage.c:1115
void severity_data_level_counts(const severity_data_t *severity_data, int *errors, int *false_positives, int *logs, int *lows, int *mediums, int *highs)
Count the occurrences of severities in the levels.
Definition: manage.c:1165
const char * type_name(const char *type)
Return the name of a resource type.
Definition: manage.c:734
gboolean gvm_sync_script_perform_selftest(const gchar *sync_script, gchar **result)
Request a feed synchronization script selftest.
Definition: manage.c:6277
int get_certificate_info(const gchar *certificate, gssize certificate_len, time_t *activation_time, time_t *expiration_time, gchar **md5_fingerprint, gchar **sha256_fingerprint, gchar **subject, gchar **issuer, gchar **serial, gnutls_x509_crt_fmt_t *certificate_format)
Gathers info from a certificate.
Definition: manage.c:367
get_data_t * report_results_get_data(int first, int rows, int apply_overrides, int min_qod)
Create a new basic get_data_t struct to get report results.
Definition: manage.c:1002
const char * severity_to_type(double severity)
Get the message type matching a severity score.
Definition: manage.c:916
int gvm_migrate_secinfo(int feed_type)
Migrates SCAP or CERT database, waiting until migration terminates.
Definition: manage.c:6715
int manage_read_info(gchar *type, gchar *uid, gchar *name, gchar **result)
Read raw information.
Definition: manage.c:5900
int manage_rebuild_gvmd_data_from_feed(const char *types, GSList *log_config, const db_conn_info_t *database, gchar **error_msg)
Rebuild configs, port lists and report formats from feed.
Definition: manage.c:5022
static PGconn * conn
Handle on the database.
Definition: sql_pg.c:84
Data about a report sent by an alert.
Definition: manage.h:399
gchar * content_type
The MIME content type of the report.
Definition: manage.h:402
gchar * remote_filename
Path or filename to send to / as.
Definition: manage.h:401
gchar * report_format_name
Name of the report format used.
Definition: manage.h:403
gchar * local_filename
Path to the local report file.
Definition: manage.h:400
A command.
Definition: manage.h:151
gchar * summary
Summary of command.
Definition: manage.h:153
gchar * name
Command name.
Definition: manage.h:152
A CREATE_REPORT result.
Definition: manage.h:1198
char * description
Description of NVT.
Definition: manage.h:1199
char * qod
QoD (quality of detection).
Definition: manage.h:1205
char * port
Port.
Definition: manage.h:1204
char * host
Host.
Definition: manage.h:1200
char * qod_type
QoD type.
Definition: manage.h:1206
char * scan_nvt_version
Version of NVT used at scan time.
Definition: manage.h:1203
char * threat
Threat.
Definition: manage.h:1208
char * hostname
Hostname.
Definition: manage.h:1201
char * severity
Severity score.
Definition: manage.h:1207
char * nvt_oid
OID of NVT.
Definition: manage.h:1202
Data structure for info used to connect to the database.
Definition: manage.h:47
gchar * user
The database user name.
Definition: manage.h:51
gchar * name
The database name.
Definition: manage.h:48
gchar * port
The database port or socket file extension.
Definition: manage.h:50
gchar * host
The database host or socket directory.
Definition: manage.h:49
A detection detail for create_report.
Definition: manage.h:1229
char * source_name
source_name of detection in result.
Definition: manage.h:1231
char * product
product of detection in result.
Definition: manage.h:1230
char * location
location of detection in result.
Definition: manage.h:1233
char * source_oid
source_oid of detection in result.
Definition: manage.h:1232
Command data for a get command.
Definition: manage_get.h:35
A host detail for create_report.
Definition: manage.h:1215
char * name
Detail name.
Definition: manage.h:1217
char * source_type
Source type.
Definition: manage.h:1220
char * source_name
Source name.
Definition: manage.h:1219
char * ip
IP.
Definition: manage.h:1216
char * value
Detail value.
Definition: manage.h:1221
char * source_desc
Source description.
Definition: manage.h:1218
A generic SQL iterator structure.
Definition: iterator.h:50
Keyword.
Definition: manage.h:2997
gchar * column
The column prefix, or NULL.
Definition: manage.h:2998
keyword_relation_t relation
The relation.
Definition: manage.h:3006
gchar * string
The keyword string, outer quotes removed.
Definition: manage.h:3004
int integer_value
Integer value of the keyword.
Definition: manage.h:3001
keyword_type_t type
Type of keyword.
Definition: manage.h:3005
double double_value
Floating point value of the keyword.
Definition: manage.h:3002
int equal
Whether the keyword is like "=example".
Definition: manage.h:3000
int quoted
Whether the keyword was quoted.
Definition: manage.h:3003
int approx
Whether the keyword is like "~example".
Definition: manage.h:2999
Lockfile.
Definition: utils.h:62
Name value pair.
Definition: manage.h:114
gchar * name
Name.
Definition: manage.h:115
gchar * value
Param value.
Definition: manage.h:116
A system report type iterator.
Definition: manage.h:2452
gchar ** start
First type.
Definition: manage.h:2453
gchar ** current
Current type.
Definition: manage.h:2454
Severity data for result count cache.
Definition: manage.h:1018
int * counts
Counts.
Definition: manage.h:1019
int total
Total.
Definition: manage.h:1020
double max
Max.
Definition: manage.h:1021
Sort data for aggregates commands.
Definition: manage.h:3579
int order
The sort order.
Definition: manage.h:3582
gchar * field
The field to sort by.
Definition: manage.h:3580
gchar * stat
The statistic to sort by.
Definition: manage.h:3581
Headers for Greenbone Vulnerability Manager: General utilities.