|
|
|
@ -1945,10 +1945,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_trustword), &_session->trustword, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_get_identity,
|
|
|
|
|
(int)strlen(sql_get_identity), &_session->get_identity, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -1970,11 +1966,7 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_get_identities_by_address),
|
|
|
|
|
&_session->get_identities_by_address, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_get_identities_by_userid,
|
|
|
|
|
(int)strlen(sql_get_identities_by_userid),
|
|
|
|
|
&_session->get_identities_by_userid, NULL);
|
|
|
|
@ -1997,10 +1989,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_get_user_default_key), &_session->get_user_default_key, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_get_all_keys_for_user,
|
|
|
|
|
(int)strlen(sql_get_all_keys_for_user), &_session->get_all_keys_for_user, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2021,10 +2009,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_get_userid_alias_default), &_session->get_userid_alias_default, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_add_userid_alias,
|
|
|
|
|
(int)strlen(sql_add_userid_alias), &_session->add_userid_alias, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2037,10 +2021,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_replace_userid), &_session->replace_userid, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_delete_key,
|
|
|
|
|
(int)strlen(sql_delete_key), &_session->delete_key, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2053,10 +2033,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_replace_main_user_fpr), &_session->replace_main_user_fpr, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_replace_main_user_fpr_if_equal,
|
|
|
|
|
(int)strlen(sql_replace_main_user_fpr_if_equal), &_session->replace_main_user_fpr_if_equal, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2069,10 +2045,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_get_main_user_fpr), &_session->get_main_user_fpr, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_refresh_userid_default_key,
|
|
|
|
|
(int)strlen(sql_refresh_userid_default_key), &_session->refresh_userid_default_key, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2085,11 +2057,7 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_replace_identities_fpr),
|
|
|
|
|
&_session->replace_identities_fpr, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_remove_fpr_as_identity_default,
|
|
|
|
|
(int)strlen(sql_remove_fpr_as_identity_default),
|
|
|
|
|
&_session->remove_fpr_as_identity_default, NULL);
|
|
|
|
@ -2112,10 +2080,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_set_person), &_session->set_person, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_update_person,
|
|
|
|
|
(int)strlen(sql_update_person), &_session->update_person, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2128,10 +2092,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_delete_person), &_session->delete_person, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_exists_person,
|
|
|
|
|
(int)strlen(sql_exists_person), &_session->exists_person, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2152,10 +2112,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_is_pEp_user), &_session->is_pEp_user, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_add_into_social_graph,
|
|
|
|
|
(int)strlen(sql_add_into_social_graph), &_session->add_into_social_graph, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2247,10 +2203,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_set_identity_entry), &_session->set_identity_entry, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_update_identity_entry,
|
|
|
|
|
(int)strlen(sql_update_identity_entry), &_session->update_identity_entry, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2263,10 +2215,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_exists_identity_entry), &_session->exists_identity_entry, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_set_identity_flags,
|
|
|
|
|
(int)strlen(sql_set_identity_flags), &_session->set_identity_flags,
|
|
|
|
|
NULL);
|
|
|
|
@ -2289,11 +2237,7 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_set_ident_enc_format), &_session->set_ident_enc_format,
|
|
|
|
|
NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_set_pEp_version,
|
|
|
|
|
(int)strlen(sql_set_pEp_version), &_session->set_pEp_version,
|
|
|
|
|
NULL);
|
|
|
|
@ -2316,10 +2260,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_clear_trust_info), &_session->clear_trust_info, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_set_trust,
|
|
|
|
|
(int)strlen(sql_set_trust), &_session->set_trust, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2332,10 +2272,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_update_trust), &_session->update_trust, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_update_trust_to_pEp,
|
|
|
|
|
(int)strlen(sql_update_trust_to_pEp), &_session->update_trust_to_pEp, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2348,10 +2284,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_exists_trust_entry), &_session->exists_trust_entry, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_update_trust_for_fpr,
|
|
|
|
|
(int)strlen(sql_update_trust_for_fpr), &_session->update_trust_for_fpr, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2364,10 +2296,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_get_trust), &_session->get_trust, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_get_trust_by_userid,
|
|
|
|
|
(int)strlen(sql_get_trust_by_userid), &_session->get_trust_by_userid, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2380,10 +2308,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_least_trust), &_session->least_trust, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_mark_as_compromised,
|
|
|
|
|
(int)strlen(sql_mark_as_compromised), &_session->mark_compromised,
|
|
|
|
|
NULL);
|
|
|
|
@ -2397,10 +2321,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_crashdump), &_session->crashdump, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->system_db, sql_languagelist,
|
|
|
|
|
(int)strlen(sql_languagelist), &_session->languagelist, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2449,11 +2369,7 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_blacklist_retrieve), &_session->blacklist_retrieve,
|
|
|
|
|
NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Own keys
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_own_key_is_listed,
|
|
|
|
@ -2487,11 +2403,7 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_own_keys_retrieve),
|
|
|
|
|
&_session->own_keys_retrieve, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// int_result = sqlite3_prepare_v2(_session->db, sql_set_own_key,
|
|
|
|
|
// (int)strlen(sql_set_own_key),
|
|
|
|
|
// &_session->set_own_key, NULL);
|
|
|
|
@ -2540,10 +2452,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_get_replacement_fpr), &_session->get_replacement_fpr, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_add_mistrusted_key,
|
|
|
|
|
(int)strlen(sql_add_mistrusted_key), &_session->add_mistrusted_key, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -2556,10 +2464,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
(int)strlen(sql_delete_mistrusted_key), &_session->delete_mistrusted_key, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
|
|
|
|
|
|
if (int_result != SQLITE_OK)
|
|
|
|
|
return PEP_UNKNOWN_DB_ERROR;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int_result = sqlite3_prepare_v2(_session->db, sql_is_mistrusted_key,
|
|
|
|
|
(int)strlen(sql_is_mistrusted_key), &_session->is_mistrusted_key, NULL);
|
|
|
|
|
assert(int_result == SQLITE_OK);
|
|
|
|
@ -5300,7 +5204,7 @@ DYNAMIC_API PEP_STATUS verify_text(
|
|
|
|
|
DYNAMIC_API PEP_STATUS delete_keypair(PEP_SESSION session, const char *fpr)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr))
|
|
|
|
|
if (!(session && fpr && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
return session->cryptotech[PEP_crypt_OpenPGP].delete_keypair(session, fpr);
|
|
|
|
@ -5311,7 +5215,7 @@ DYNAMIC_API PEP_STATUS export_key(
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr && key_data && size))
|
|
|
|
|
if (!(session && fpr && key_data && size && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
return session->cryptotech[PEP_crypt_OpenPGP].export_key(session, fpr,
|
|
|
|
@ -5322,7 +5226,7 @@ DYNAMIC_API PEP_STATUS export_secret_key(
|
|
|
|
|
PEP_SESSION session, const char *fpr, char **key_data, size_t *size
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!(session && fpr && key_data && size))
|
|
|
|
|
if (!(session && fpr && key_data && size && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
// don't accept key IDs but full fingerprints only
|
|
|
|
@ -5338,7 +5242,7 @@ DYNAMIC_API PEP_STATUS export_secrect_key(
|
|
|
|
|
PEP_SESSION session, const char *fpr, char **key_data, size_t *size
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
return export_secret_key(session, fpr, key_data, size);
|
|
|
|
|
return export_secret_key(session, fpr, key_data, size && check_fpr_format(fpr));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS find_keys(
|
|
|
|
@ -5423,7 +5327,7 @@ DYNAMIC_API PEP_STATUS get_key_rating(
|
|
|
|
|
PEP_comm_type *comm_type
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!(session && fpr && comm_type))
|
|
|
|
|
if (!(session && fpr && comm_type && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
return session->cryptotech[PEP_crypt_OpenPGP].get_key_rating(session, fpr,
|
|
|
|
@ -5480,7 +5384,7 @@ DYNAMIC_API PEP_STATUS renew_key(
|
|
|
|
|
const timestamp *ts
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!(session && fpr))
|
|
|
|
|
if (!(session && fpr && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
return session->cryptotech[PEP_crypt_OpenPGP].renew_key(session, fpr, ts);
|
|
|
|
@ -5492,7 +5396,7 @@ DYNAMIC_API PEP_STATUS revoke_key(
|
|
|
|
|
const char *reason
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!(session && fpr))
|
|
|
|
|
if (!(session && fpr && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
// Check to see first if it is revoked
|
|
|
|
@ -5515,7 +5419,7 @@ DYNAMIC_API PEP_STATUS key_expired(
|
|
|
|
|
bool *expired
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!(session && fpr && expired))
|
|
|
|
|
if (!(session && fpr && expired && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
return session->cryptotech[PEP_crypt_OpenPGP].key_expired(session, fpr,
|
|
|
|
@ -5528,7 +5432,7 @@ DYNAMIC_API PEP_STATUS key_revoked(
|
|
|
|
|
bool *revoked
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
if (!(session && fpr && revoked))
|
|
|
|
|
if (!(session && fpr && revoked && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
return session->cryptotech[PEP_crypt_OpenPGP].key_revoked(session, fpr,
|
|
|
|
@ -5971,8 +5875,8 @@ DYNAMIC_API PEP_STATUS set_revoked(
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
|
|
|
|
|
if (!(session &&
|
|
|
|
|
revoked_fpr && revoked_fpr[0] &&
|
|
|
|
|
replacement_fpr && replacement_fpr[0]
|
|
|
|
|
revoked_fpr && check_fpr_format(revoked_fpr) &&
|
|
|
|
|
replacement_fpr && check_fpr_format(replacement_fpr)
|
|
|
|
|
))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -6007,7 +5911,7 @@ DYNAMIC_API PEP_STATUS get_revoked(
|
|
|
|
|
{
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
|
|
|
|
|
if (!(session && revoked_fpr && fpr && fpr[0]))
|
|
|
|
|
if (!(session && revoked_fpr && fpr && check_fpr_format(fpr)))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
*revoked_fpr = NULL;
|
|
|
|
@ -6225,3 +6129,22 @@ PEP_STATUS set_all_userids_to_own(PEP_SESSION session, identity_list* id_list) {
|
|
|
|
|
}
|
|
|
|
|
return status;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool check_fpr_format(const char* fpr) {
|
|
|
|
|
if (EMPTYSTR(fpr))
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
int fpr_len = strlen(fpr);
|
|
|
|
|
if (fpr_len > 128 || fpr_len < 16)
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
const char* curr_fpr;
|
|
|
|
|
|
|
|
|
|
for (curr_fpr = fpr; curr_fpr && *curr_fpr != '\0'; curr_fpr++) {
|
|
|
|
|
char c = *curr_fpr;
|
|
|
|
|
if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f'))
|
|
|
|
|
continue;
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|