|
|
|
@ -30,6 +30,11 @@ DYNAMIC_API PEP_STATUS init(PEP_SESSION *session)
|
|
|
|
|
static const char *sql_blacklist_is_listed;
|
|
|
|
|
static const char *sql_blacklist_retrieve;
|
|
|
|
|
|
|
|
|
|
// Own keys
|
|
|
|
|
static const char *sql_own_key_add;
|
|
|
|
|
static const char *sql_own_key_is_listed;
|
|
|
|
|
static const char *sql_own_key_retrieve;
|
|
|
|
|
|
|
|
|
|
bool in_first = false;
|
|
|
|
|
|
|
|
|
|
assert(sqlite3_threadsafe());
|
|
|
|
@ -168,6 +173,12 @@ DYNAMIC_API PEP_STATUS init(PEP_SESSION *session)
|
|
|
|
|
"create table if not exists blacklist_keys (\n"
|
|
|
|
|
" fpr text primary key\n"
|
|
|
|
|
");\n"
|
|
|
|
|
// Own keys
|
|
|
|
|
"create table if not exists own_keys (\n"
|
|
|
|
|
" fpr text primary key\n"
|
|
|
|
|
" references pgp_keypair (fpr)\n"
|
|
|
|
|
" on delete cascade,\n"
|
|
|
|
|
");\n"
|
|
|
|
|
,
|
|
|
|
|
NULL,
|
|
|
|
|
NULL,
|
|
|
|
@ -187,7 +198,7 @@ DYNAMIC_API PEP_STATUS init(PEP_SESSION *session)
|
|
|
|
|
sql_log = "insert into log (title, entity, description, comment)"
|
|
|
|
|
"values (?1, ?2, ?3, ?4);";
|
|
|
|
|
|
|
|
|
|
sql_get_identity = "select fpr, username, comm_type, lang"
|
|
|
|
|
sql_get_identity = "select fpr, username, comm_type, lang"
|
|
|
|
|
" from identity"
|
|
|
|
|
" join person on id = identity.user_id"
|
|
|
|
|
" join pgp_keypair on fpr = identity.main_key_id"
|
|
|
|
@ -236,6 +247,16 @@ DYNAMIC_API PEP_STATUS init(PEP_SESSION *session)
|
|
|
|
|
sql_blacklist_is_listed = "select count(*) from blacklist_keys where fpr = upper(replace(?1,' ','')) ;";
|
|
|
|
|
|
|
|
|
|
sql_blacklist_retrieve = "select * from blacklist_keys ;";
|
|
|
|
|
|
|
|
|
|
// Own keys
|
|
|
|
|
|
|
|
|
|
sql_own_key_add = "insert or replace into own_keys (fpr) "
|
|
|
|
|
" values (upper(replace(?1,' ',''))) ;";
|
|
|
|
|
|
|
|
|
|
sql_own_key_is_listed = "select count(*) from own_keys where fpr = upper(replace(?1,' ','')) ;";
|
|
|
|
|
|
|
|
|
|
sql_own_key_retrieve = "select * from own_keys ;";
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_log, (int)strlen(sql_log),
|
|
|
|
@ -308,6 +329,20 @@ DYNAMIC_API PEP_STATUS init(PEP_SESSION *session)
|
|
|
|
|
(int)strlen(sql_blacklist_retrieve), &_session->blacklist_retrieve, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
// Own keys
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_own_key_add,
|
|
|
|
|
(int)strlen(sql_own_key_add), &_session->own_key_add, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_own_key_is_listed,
|
|
|
|
|
(int)strlen(sql_own_key_is_listed), &_session->own_key_is_listed, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_own_key_retrieve,
|
|
|
|
|
(int)strlen(sql_own_key_retrieve), &_session->own_key_retrieve, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
status = init_cryptotech(_session, in_first);
|
|
|
|
|
if (status != PEP_STATUS_OK)
|
|
|
|
|
goto pep_error;
|
|
|
|
@ -807,7 +842,7 @@ DYNAMIC_API PEP_STATUS set_identity(
|
|
|
|
|
sqlite3_reset(session->set_trust);
|
|
|
|
|
if (result != SQLITE_DONE) {
|
|
|
|
|
sqlite3_exec(session->db, "ROLLBACK ;", NULL, NULL, NULL);
|
|
|
|
|
return PEP_CANNOT_SET_IDENTITY;
|
|
|
|
|
return PEP_CANNOT_SET_TRUST;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result = sqlite3_exec(session->db, "COMMIT ;", NULL, NULL, NULL);
|
|
|
|
@ -837,7 +872,7 @@ DYNAMIC_API PEP_STATUS mark_as_compromized(
|
|
|
|
|
sqlite3_reset(session->mark_compromized);
|
|
|
|
|
|
|
|
|
|
if (result != SQLITE_DONE)
|
|
|
|
|
return PEP_CANNOT_SET_IDENTITY;
|
|
|
|
|
return PEP_CANNOT_SET_TRUST;
|
|
|
|
|
|
|
|
|
|
return PEP_STATUS_OK;
|
|
|
|
|
}
|
|
|
|
|