Greenbone Vulnerability Manager 22.5.2
manage_sql_secinfo.h
1/* Copyright (C) 2010-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_sql_secinfo.h
21 * @brief Manager Manage library: SQL backend headers.
22 */
23
24#include <glib.h>
25#ifndef _GVMD_MANAGE_SQL_SECINFO_H
26#define _GVMD_MANAGE_SQL_SECINFO_H
27
31#define SECINFO_SQL_RESULT_HAS_CERT_BUNDS \
32 "(SELECT EXISTS (SELECT * FROM cert_bund_cves" \
33 " WHERE cve_name IN (SELECT ref_id" \
34 " FROM vt_refs" \
35 " WHERE vt_oid = results.nvt" \
36 " AND type = 'cve')))"
37
41#define SECINFO_SQL_RESULT_CERT_BUNDS \
42 "(ARRAY (SELECT name::text" \
43 " FROM cert_bund_advs" \
44 " WHERE id IN (SELECT adv_id FROM cert_bund_cves" \
45 " WHERE cve_name IN (SELECT ref_id" \
46 " FROM vt_refs" \
47 " WHERE vt_oid = results.nvt" \
48 " AND type = 'cve'))" \
49 " ORDER BY name DESC))"
50
54#define SECINFO_SQL_RESULT_HAS_DFN_CERTS \
55 "(SELECT EXISTS (SELECT * FROM dfn_cert_cves" \
56 " WHERE cve_name IN (SELECT ref_id" \
57 " FROM vt_refs" \
58 " WHERE vt_oid = results.nvt" \
59 " AND type = 'cve')))"
60
64#define SECINFO_SQL_RESULT_DFN_CERTS \
65 "(ARRAY (SELECT name::text" \
66 " FROM dfn_cert_advs" \
67 " WHERE id IN (SELECT adv_id FROM dfn_cert_cves" \
68 " WHERE cve_name IN (SELECT ref_id" \
69 " FROM vt_refs" \
70 " WHERE vt_oid = results.nvt" \
71 " AND type = 'cve'))" \
72 " ORDER BY name DESC))"
73
77#define CVE_INFO_ITERATOR_FILTER_COLUMNS \
78 { GET_ITERATOR_FILTER_COLUMNS, "cvss_vector", "products", \
79 "description", "published", "severity", NULL }
80
84#define CVE_INFO_ITERATOR_COLUMNS \
85 { \
86 GET_ITERATOR_COLUMNS_PREFIX (""), \
87 { "''", "_owner", KEYWORD_TYPE_STRING }, \
88 { "0", NULL, KEYWORD_TYPE_INTEGER }, \
89 { "cvss_vector", NULL, KEYWORD_TYPE_STRING }, \
90 { "products", NULL, KEYWORD_TYPE_STRING }, \
91 { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
92 { "description", NULL, KEYWORD_TYPE_STRING }, \
93 { "creation_time", "published", KEYWORD_TYPE_INTEGER }, \
94 { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
95 }
96
100#define CPE_INFO_ITERATOR_FILTER_COLUMNS \
101 { GET_ITERATOR_FILTER_COLUMNS, "title", "status", \
102 "deprecated_by_id", "severity", "cves", "nvd_id", \
103 NULL }
104
108#define CPE_INFO_ITERATOR_COLUMNS \
109 { \
110 GET_ITERATOR_COLUMNS_PREFIX (""), \
111 { "''", "_owner", KEYWORD_TYPE_STRING }, \
112 { "0", NULL, KEYWORD_TYPE_INTEGER }, \
113 { "title", NULL, KEYWORD_TYPE_STRING }, \
114 { "status", NULL, KEYWORD_TYPE_STRING }, \
115 { "deprecated_by_id", NULL, KEYWORD_TYPE_INTEGER }, \
116 { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
117 { "cve_refs", "cves", KEYWORD_TYPE_INTEGER }, \
118 { "nvd_id", NULL, KEYWORD_TYPE_INTEGER }, \
119 { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
120 }
121
125#define CERT_BUND_ADV_INFO_ITERATOR_FILTER_COLUMNS \
126 { GET_ITERATOR_FILTER_COLUMNS, "title", "summary", \
127 "cves", "severity", NULL }
128
132#define CERT_BUND_ADV_INFO_ITERATOR_COLUMNS \
133 { \
134 GET_ITERATOR_COLUMNS_PREFIX (""), \
135 { "''", "_owner", KEYWORD_TYPE_STRING }, \
136 { "0", NULL, KEYWORD_TYPE_INTEGER }, \
137 { "title", NULL, KEYWORD_TYPE_STRING }, \
138 { "summary", NULL, KEYWORD_TYPE_STRING }, \
139 { "cve_refs", "cves", KEYWORD_TYPE_INTEGER }, \
140 { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
141 { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
142 }
143
147#define DFN_CERT_ADV_INFO_ITERATOR_FILTER_COLUMNS \
148 { GET_ITERATOR_FILTER_COLUMNS, "title", "summary", \
149 "cves", "severity", NULL }
150
154#define DFN_CERT_ADV_INFO_ITERATOR_COLUMNS \
155 { \
156 GET_ITERATOR_COLUMNS_PREFIX (""), \
157 { "''", "_owner", KEYWORD_TYPE_STRING }, \
158 { "0", NULL, KEYWORD_TYPE_INTEGER }, \
159 { "title", NULL, KEYWORD_TYPE_STRING }, \
160 { "summary", NULL, KEYWORD_TYPE_STRING }, \
161 { "cve_refs", "cves", KEYWORD_TYPE_INTEGER }, \
162 { "severity", NULL, KEYWORD_TYPE_DOUBLE }, \
163 { NULL, NULL, KEYWORD_TYPE_UNKNOWN } \
164 }
165
169#define SECINFO_COMMIT_SIZE_DEFAULT 0
170
171int
173
174void
175manage_sync_scap (sigset_t *);
176
177int
178manage_rebuild_scap (GSList *, const db_conn_info_t *);
179
180void
181manage_sync_cert (sigset_t *);
182
183int
185
186int
188
189int
190get_secinfo_commit_size ();
191
192void
194
195#endif /* not _GVMD_MANAGE_SQL_SECINFO_H */
int check_cert_db_version()
Ensure CERT db is at the right version, and in the right mode.
Definition: manage_sql_secinfo.c:2967
void manage_sync_scap(sigset_t *sigmask_current)
Sync the SCAP DB.
Definition: manage_sql_secinfo.c:3634
int manage_rebuild_scap(GSList *log_config, const db_conn_info_t *database)
Rebuild part of the SCAP DB.
Definition: manage_sql_secinfo.c:3681
int check_scap_db_version()
Ensure SCAP db is at the right version, and in the right mode.
Definition: manage_sql_secinfo.c:3243
void manage_sync_cert(sigset_t *sigmask_current)
Sync the CERT DB.
Definition: manage_sql_secinfo.c:3227
void set_secinfo_commit_size(int new_commit_size)
Set the SecInfo update commit size.
Definition: manage_sql_secinfo.c:3714
int secinfo_feed_version_status(const char *feed_type)
Gets the SCAP or CERT database version status.
Definition: manage_sql_secinfo.c:2909
Data structure for info used to connect to the database.
Definition: manage.h:47