implemented blacklisting of software packages
This commit is contained in:
@@ -128,7 +128,7 @@ static void do_args(int argc, char *argv[])
|
||||
{ "delete", no_argument, NULL, 'd' },
|
||||
{ "del", no_argument, NULL, 'd' },
|
||||
{ "aik", required_argument, NULL, 'A' },
|
||||
{ "security", no_argument, NULL, 'B' },
|
||||
{ "blacklist", no_argument, NULL, 'B' },
|
||||
{ "component", required_argument, NULL, 'C' },
|
||||
{ "comp", required_argument, NULL, 'C' },
|
||||
{ "directory", required_argument, NULL, 'D' },
|
||||
@@ -142,8 +142,9 @@ static void do_args(int argc, char *argv[])
|
||||
{ "relative", no_argument, NULL, 'R' },
|
||||
{ "rel", no_argument, NULL, 'R' },
|
||||
{ "sequence", required_argument, NULL, 'S' },
|
||||
{ "version", required_argument, NULL, 'V' },
|
||||
{ "seq", required_argument, NULL, 'S' },
|
||||
{ "version", required_argument, NULL, 'V' },
|
||||
{ "security", no_argument, NULL, 'Y' },
|
||||
{ "sha1", no_argument, NULL, '1' },
|
||||
{ "sha256", no_argument, NULL, '2' },
|
||||
{ "sha384", no_argument, NULL, '3' },
|
||||
@@ -229,7 +230,7 @@ static void do_args(int argc, char *argv[])
|
||||
continue;
|
||||
}
|
||||
case 'B':
|
||||
attest->set_security(attest);
|
||||
attest->set_security(attest, OS_PACKAGE_STATE_BLACKLIST);
|
||||
continue;
|
||||
case 'C':
|
||||
if (!attest->set_component(attest, optarg, op == OP_ADD))
|
||||
@@ -290,6 +291,9 @@ static void do_args(int argc, char *argv[])
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
continue;
|
||||
case 'Y':
|
||||
attest->set_security(attest, OS_PACKAGE_STATE_SECURITY);
|
||||
continue;
|
||||
case '1':
|
||||
attest->set_algo(attest, PTS_MEAS_ALGO_SHA1);
|
||||
continue;
|
||||
|
||||
@@ -143,9 +143,9 @@ struct private_attest_db_t {
|
||||
bool relative;
|
||||
|
||||
/**
|
||||
* TRUE if a security issue exists
|
||||
* Package security state
|
||||
*/
|
||||
bool security;
|
||||
os_package_state_t security;
|
||||
|
||||
/**
|
||||
* Sequence number for ordering entries
|
||||
@@ -722,9 +722,9 @@ METHOD(attest_db_t, set_relative, void,
|
||||
}
|
||||
|
||||
METHOD(attest_db_t, set_security, void,
|
||||
private_attest_db_t *this)
|
||||
private_attest_db_t *this, os_package_state_t security)
|
||||
{
|
||||
this->security = TRUE;
|
||||
this->security = security;
|
||||
}
|
||||
|
||||
METHOD(attest_db_t, set_sequence, void,
|
||||
@@ -897,7 +897,8 @@ METHOD(attest_db_t, list_packages, void,
|
||||
{
|
||||
enumerator_t *e;
|
||||
char *package, *version;
|
||||
int gid, gid_old = 0, security, spaces, count = 0;
|
||||
os_package_state_t security;
|
||||
int gid, gid_old = 0, spaces, count = 0;
|
||||
time_t t;
|
||||
|
||||
if (this->pid)
|
||||
@@ -924,7 +925,8 @@ METHOD(attest_db_t, list_packages, void,
|
||||
printf(" ");
|
||||
}
|
||||
}
|
||||
printf(" %T (%s) %s\n", &t, TRUE, version, security ? "[s]" : "");
|
||||
printf(" %T (%s)%N\n", &t, TRUE, version,
|
||||
os_package_state_names, security);
|
||||
count++;
|
||||
}
|
||||
e->destroy(e);
|
||||
@@ -1493,9 +1495,10 @@ METHOD(attest_db_t, add, bool,
|
||||
DB_UINT, this->gid, DB_UINT, this->pid, DB_TEXT,
|
||||
this->version, DB_UINT, this->security, DB_INT, t) == 1;
|
||||
|
||||
printf("'%s' package %s (%s) %s%sinserted into database\n",
|
||||
printf("'%s' package %s (%s)%N %sinserted into database\n",
|
||||
this->product, this->package, this->version,
|
||||
this->security ? "[s] " : "", success ? "" : "could not be ");
|
||||
os_package_state_names, this->security,
|
||||
success ? "" : "could not be ");
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#define ATTEST_DB_H_
|
||||
|
||||
#include <pts/pts_meas_algo.h>
|
||||
|
||||
#include <os_info/os_info.h>
|
||||
#include <library.h>
|
||||
|
||||
typedef struct attest_db_t attest_db_t;
|
||||
@@ -161,9 +161,9 @@ struct attest_db_t {
|
||||
void (*set_relative)(attest_db_t *this);
|
||||
|
||||
/**
|
||||
* Set the security vulnerability flag
|
||||
* Set the package security state
|
||||
*/
|
||||
void (*set_security)(attest_db_t *this);
|
||||
void (*set_security)(attest_db_t *this, os_package_state_t security);
|
||||
|
||||
/**
|
||||
* Set the sequence number
|
||||
|
||||
Reference in New Issue
Block a user