Greenbone Vulnerability Manager  22.4.0~dev1
manage_sql_secinfo.h
1 /* Copyright (C) 2010-2022 Greenbone Networks GmbH
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 
171 int
173 
174 void
175 manage_sync_scap (sigset_t *);
176 
177 int
178 manage_rebuild_scap (GSList *, const db_conn_info_t *);
179 
180 void
181 manage_sync_cert (sigset_t *);
182 
183 int
185 
186 int
188 
189 int
190 get_secinfo_commit_size ();
191 
192 void
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:2869
void manage_sync_scap(sigset_t *sigmask_current)
Sync the SCAP DB.
Definition: manage_sql_secinfo.c:3536
int manage_rebuild_scap(GSList *log_config, const db_conn_info_t *database)
Rebuild part of the SCAP DB.
Definition: manage_sql_secinfo.c:3583
int check_scap_db_version()
Ensure SCAP db is at the right version, and in the right mode.
Definition: manage_sql_secinfo.c:3145
void manage_sync_cert(sigset_t *sigmask_current)
Sync the CERT DB.
Definition: manage_sql_secinfo.c:3129
void set_secinfo_commit_size(int new_commit_size)
Set the SecInfo update commit size.
Definition: manage_sql_secinfo.c:3616
int secinfo_feed_version_status(const char *feed_type)
Gets the SCAP or CERT database version status.
Definition: manage_sql_secinfo.c:2811
Data structure for info used to connect to the database.
Definition: manage.h:47