|
|
|
@ -541,9 +541,6 @@ static const char *sql_get_last_contacted =
|
|
|
|
|
|
|
|
|
|
static int user_version(void *_version, int count, char **text, char **name)
|
|
|
|
|
{
|
|
|
|
|
assert(_version);
|
|
|
|
|
assert(count == 1);
|
|
|
|
|
assert(text && text[0]);
|
|
|
|
|
if (!(_version && count == 1 && text && text[0]))
|
|
|
|
|
return -1;
|
|
|
|
|
|
|
|
|
@ -950,7 +947,8 @@ static PEP_STATUS upgrade_revoc_contact_to_13(PEP_SESSION session) {
|
|
|
|
|
DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
PEP_SESSION *session,
|
|
|
|
|
messageToSend_t messageToSend,
|
|
|
|
|
inject_sync_event_t inject_sync_event
|
|
|
|
|
inject_sync_event_t inject_sync_event,
|
|
|
|
|
ensure_passphrase_t ensure_passphrase
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
@ -986,7 +984,6 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
// client session, or by using synchronization primitive to protect
|
|
|
|
|
// creation/deletion of first/last session from the app.
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
if (session == NULL)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -1000,11 +997,8 @@ DYNAMIC_API PEP_STATUS init(
|
|
|
|
|
_session->version = PEP_ENGINE_VERSION;
|
|
|
|
|
_session->messageToSend = messageToSend;
|
|
|
|
|
_session->inject_sync_event = inject_sync_event;
|
|
|
|
|
|
|
|
|
|
#ifdef DEBUG_ERRORSTACK
|
|
|
|
|
_session->errorstack = new_stringlist("init()");
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
_session->ensure_passphrase = ensure_passphrase;
|
|
|
|
|
|
|
|
|
|
assert(LOCAL_DB);
|
|
|
|
|
if (LOCAL_DB == NULL) {
|
|
|
|
|
status = PEP_INIT_CANNOT_OPEN_DB;
|
|
|
|
@ -2131,10 +2125,7 @@ DYNAMIC_API void release(PEP_SESSION session)
|
|
|
|
|
bool out_last = false;
|
|
|
|
|
int _count = --init_count;
|
|
|
|
|
|
|
|
|
|
assert(_count >= -1);
|
|
|
|
|
assert(session);
|
|
|
|
|
|
|
|
|
|
if (!((_count >= -1) && session))
|
|
|
|
|
if ((_count < -1) || !session)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
// a small race condition but still a race condition
|
|
|
|
@ -2310,10 +2301,6 @@ DYNAMIC_API void release(PEP_SESSION session)
|
|
|
|
|
|
|
|
|
|
release_transport_system(session, out_last);
|
|
|
|
|
release_cryptotech(session, out_last);
|
|
|
|
|
|
|
|
|
|
#ifdef DEBUG_ERRORSTACK
|
|
|
|
|
free_stringlist(session->errorstack);
|
|
|
|
|
#endif
|
|
|
|
|
free(session);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -2405,11 +2392,7 @@ DYNAMIC_API PEP_STATUS log_event(
|
|
|
|
|
session->service_log = true;
|
|
|
|
|
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(title);
|
|
|
|
|
assert(entity);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!(session && title && entity))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -2439,7 +2422,6 @@ DYNAMIC_API PEP_STATUS log_service(
|
|
|
|
|
const char *comment
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
if (!session)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -2456,10 +2438,6 @@ DYNAMIC_API PEP_STATUS trustword(
|
|
|
|
|
{
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(word);
|
|
|
|
|
assert(wsize);
|
|
|
|
|
|
|
|
|
|
if (!(session && word && wsize))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -2469,6 +2447,7 @@ DYNAMIC_API PEP_STATUS trustword(
|
|
|
|
|
if (lang == NULL)
|
|
|
|
|
lang = "en";
|
|
|
|
|
|
|
|
|
|
// FIXME: should this not be an actual check???
|
|
|
|
|
assert((lang[0] >= 'A' && lang[0] <= 'Z')
|
|
|
|
|
|| (lang[0] >= 'a' && lang[0] <= 'z'));
|
|
|
|
|
assert((lang[1] >= 'A' && lang[1] <= 'Z')
|
|
|
|
@ -2501,12 +2480,6 @@ DYNAMIC_API PEP_STATUS trustwords(
|
|
|
|
|
{
|
|
|
|
|
const char *source = fingerprint;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fingerprint);
|
|
|
|
|
assert(words);
|
|
|
|
|
assert(wsize);
|
|
|
|
|
assert(max_words >= 0);
|
|
|
|
|
|
|
|
|
|
if (!(session && fingerprint && words && wsize && max_words >= 0))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -2524,6 +2497,7 @@ DYNAMIC_API PEP_STATUS trustwords(
|
|
|
|
|
if (!lang || !lang[0])
|
|
|
|
|
lang = "en";
|
|
|
|
|
|
|
|
|
|
// FIXME: Should this not be an actual check?
|
|
|
|
|
assert((lang[0] >= 'A' && lang[0] <= 'Z')
|
|
|
|
|
|| (lang[0] >= 'a' && lang[0] <= 'z'));
|
|
|
|
|
assert((lang[1] >= 'A' && lang[1] <= 'Z')
|
|
|
|
@ -2589,7 +2563,6 @@ pEp_identity *new_identity(
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
pEp_identity *result = calloc(1, sizeof(pEp_identity));
|
|
|
|
|
assert(result);
|
|
|
|
|
if (result) {
|
|
|
|
|
if (address) {
|
|
|
|
|
result->address = strdup(address);
|
|
|
|
@ -2629,23 +2602,23 @@ pEp_identity *new_identity(
|
|
|
|
|
|
|
|
|
|
pEp_identity *identity_dup(const pEp_identity *src)
|
|
|
|
|
{
|
|
|
|
|
assert(src);
|
|
|
|
|
|
|
|
|
|
pEp_identity *dup = new_identity(src->address, src->fpr, src->user_id,
|
|
|
|
|
src->username);
|
|
|
|
|
assert(dup);
|
|
|
|
|
if (dup == NULL)
|
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
|
|
dup->comm_type = src->comm_type;
|
|
|
|
|
dup->lang[0] = src->lang[0];
|
|
|
|
|
dup->lang[1] = src->lang[1];
|
|
|
|
|
dup->lang[2] = 0;
|
|
|
|
|
dup->flags = src->flags;
|
|
|
|
|
dup->me = src->me;
|
|
|
|
|
dup->major_ver = src->major_ver;
|
|
|
|
|
dup->minor_ver = src->minor_ver;
|
|
|
|
|
|
|
|
|
|
pEp_identity* dup = NULL;
|
|
|
|
|
if (src) {
|
|
|
|
|
dup = new_identity(src->address, src->fpr, src->user_id,
|
|
|
|
|
src->username);
|
|
|
|
|
assert(dup);
|
|
|
|
|
if (dup == NULL)
|
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
|
|
dup->comm_type = src->comm_type;
|
|
|
|
|
dup->lang[0] = src->lang[0];
|
|
|
|
|
dup->lang[1] = src->lang[1];
|
|
|
|
|
dup->lang[2] = 0;
|
|
|
|
|
dup->flags = src->flags;
|
|
|
|
|
dup->me = src->me;
|
|
|
|
|
dup->major_ver = src->major_ver;
|
|
|
|
|
dup->minor_ver = src->minor_ver;
|
|
|
|
|
}
|
|
|
|
|
return dup;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2665,8 +2638,6 @@ DYNAMIC_API PEP_STATUS get_default_own_userid(
|
|
|
|
|
char** userid
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(userid);
|
|
|
|
|
|
|
|
|
|
if (!session || !userid)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -2709,11 +2680,6 @@ DYNAMIC_API PEP_STATUS get_userid_alias_default(
|
|
|
|
|
const char* alias_id,
|
|
|
|
|
char** default_id) {
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(alias_id);
|
|
|
|
|
assert(alias_id[0]);
|
|
|
|
|
assert(default_id);
|
|
|
|
|
|
|
|
|
|
if (!(session && alias_id && alias_id[0] && default_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -2754,10 +2720,6 @@ DYNAMIC_API PEP_STATUS set_userid_alias (
|
|
|
|
|
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(default_id);
|
|
|
|
|
assert(alias_id);
|
|
|
|
|
|
|
|
|
|
if (!(session && default_id && alias_id &&
|
|
|
|
|
default_id[0] != '\0' && alias_id[0] != '\0'))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -2793,11 +2755,6 @@ DYNAMIC_API PEP_STATUS get_identity(
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
pEp_identity *_identity = NULL;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(address);
|
|
|
|
|
assert(address[0]);
|
|
|
|
|
assert(identity);
|
|
|
|
|
|
|
|
|
|
if (!(session && address && address[0] && identity))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -3022,11 +2979,6 @@ PEP_STATUS get_identity_without_trust_check(
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
pEp_identity *_identity = NULL;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(address);
|
|
|
|
|
assert(address[0]);
|
|
|
|
|
assert(identity);
|
|
|
|
|
|
|
|
|
|
if (!(session && address && address[0] && identity))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -3091,10 +3043,6 @@ PEP_STATUS get_identities_by_address(
|
|
|
|
|
identity_list** id_list
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(address);
|
|
|
|
|
assert(address[0]);
|
|
|
|
|
assert(id_list);
|
|
|
|
|
|
|
|
|
|
if (!(session && address && address[0] && id_list))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3162,11 +3110,7 @@ PEP_STATUS get_identities_by_address(
|
|
|
|
|
|
|
|
|
|
PEP_STATUS exists_identity_entry(PEP_SESSION session, pEp_identity* identity,
|
|
|
|
|
bool* exists) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(!EMPTYSTR(identity->user_id));
|
|
|
|
|
assert(!EMPTYSTR(identity->address));
|
|
|
|
|
if (!session || !exists || EMPTYSTR(identity->user_id) || EMPTYSTR(identity->address))
|
|
|
|
|
if (!session || !exists || !identity || EMPTYSTR(identity->user_id) || EMPTYSTR(identity->address))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
*exists = false;
|
|
|
|
@ -3197,11 +3141,7 @@ PEP_STATUS exists_identity_entry(PEP_SESSION session, pEp_identity* identity,
|
|
|
|
|
|
|
|
|
|
PEP_STATUS exists_trust_entry(PEP_SESSION session, pEp_identity* identity,
|
|
|
|
|
bool* exists) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(!EMPTYSTR(identity->user_id));
|
|
|
|
|
assert(!EMPTYSTR(identity->fpr));
|
|
|
|
|
if (!session || !exists || EMPTYSTR(identity->user_id) || EMPTYSTR(identity->fpr))
|
|
|
|
|
if (!session || !exists || !identity || EMPTYSTR(identity->user_id) || EMPTYSTR(identity->fpr))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
*exists = false;
|
|
|
|
@ -3272,11 +3212,6 @@ PEP_STATUS clear_trust_info(PEP_SESSION session,
|
|
|
|
|
static PEP_STATUS _set_or_update_trust(PEP_SESSION session,
|
|
|
|
|
pEp_identity* identity,
|
|
|
|
|
sqlite3_stmt* set_or_update) {
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(identity->user_id);
|
|
|
|
|
assert(identity->fpr);
|
|
|
|
|
|
|
|
|
|
if (!session || !identity || EMPTYSTR(identity->user_id) || EMPTYSTR(identity->fpr))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3305,9 +3240,6 @@ static PEP_STATUS _set_or_update_trust(PEP_SESSION session,
|
|
|
|
|
static PEP_STATUS _set_or_update_identity_entry(PEP_SESSION session,
|
|
|
|
|
pEp_identity* identity,
|
|
|
|
|
sqlite3_stmt* set_or_update) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(set_or_update);
|
|
|
|
|
|
|
|
|
|
if (!session || !identity || !identity->user_id || !identity->address)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3335,9 +3267,6 @@ static PEP_STATUS _set_or_update_identity_entry(PEP_SESSION session,
|
|
|
|
|
static PEP_STATUS _set_or_update_person(PEP_SESSION session,
|
|
|
|
|
pEp_identity* identity,
|
|
|
|
|
sqlite3_stmt* set_or_update) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(set_or_update);
|
|
|
|
|
|
|
|
|
|
if (!session || !identity || !identity->user_id || !identity->username)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3444,12 +3373,6 @@ DYNAMIC_API PEP_STATUS set_identity(
|
|
|
|
|
{
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(identity->address);
|
|
|
|
|
assert(identity->user_id);
|
|
|
|
|
assert(identity->username);
|
|
|
|
|
|
|
|
|
|
if (!(session && identity && identity->address &&
|
|
|
|
|
identity->user_id && identity->username))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3542,10 +3465,6 @@ PEP_STATUS update_pEp_user_trust_vals(PEP_SESSION session,
|
|
|
|
|
|
|
|
|
|
// This ONLY sets the user flag. Must be called outside of a transaction.
|
|
|
|
|
DYNAMIC_API PEP_STATUS set_as_pEp_user(PEP_SESSION session, pEp_identity* user) {
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(user);
|
|
|
|
|
assert(!EMPTYSTR(user->user_id));
|
|
|
|
|
|
|
|
|
|
if (!session || !user || EMPTYSTR(user->user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3579,10 +3498,10 @@ DYNAMIC_API PEP_STATUS set_as_pEp_user(PEP_SESSION session, pEp_identity* user)
|
|
|
|
|
|
|
|
|
|
// This ONLY sets the version flag. Must be called outside of a transaction.
|
|
|
|
|
PEP_STATUS set_pEp_version(PEP_SESSION session, pEp_identity* ident, unsigned int new_ver_major, unsigned int new_ver_minor) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(!EMPTYSTR(ident->user_id));
|
|
|
|
|
assert(!EMPTYSTR(ident->address));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!session || !ident || EMPTYSTR(ident->user_id) || EMPTYSTR(ident->address))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
sqlite3_reset(session->set_pEp_version);
|
|
|
|
|
sqlite3_bind_double(session->set_pEp_version, 1, new_ver_major);
|
|
|
|
|
sqlite3_bind_double(session->set_pEp_version, 2, new_ver_minor);
|
|
|
|
@ -3607,8 +3526,9 @@ PEP_STATUS upgrade_pEp_version_by_user_id(PEP_SESSION session,
|
|
|
|
|
unsigned int new_ver_minor
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(!EMPTYSTR(ident->user_id));
|
|
|
|
|
|
|
|
|
|
if (!session || !ident || EMPTYSTR(ident->user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
|
sqlite3_reset(session->upgrade_pEp_version_by_user_id);
|
|
|
|
|
sqlite3_bind_int(session->upgrade_pEp_version_by_user_id, 1, new_ver_major);
|
|
|
|
@ -3627,14 +3547,7 @@ PEP_STATUS upgrade_pEp_version_by_user_id(PEP_SESSION session,
|
|
|
|
|
|
|
|
|
|
PEP_STATUS exists_person(PEP_SESSION session, pEp_identity* identity,
|
|
|
|
|
bool* exists) {
|
|
|
|
|
|
|
|
|
|
// const char* user_id,
|
|
|
|
|
// char** default_id, bool* exists) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(exists);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(!EMPTYSTR(identity->user_id));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!session || !exists || !identity || EMPTYSTR(identity->user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -3676,8 +3589,7 @@ PEP_STATUS exists_person(PEP_SESSION session, pEp_identity* identity,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PEP_STATUS delete_person(PEP_SESSION session, const char* user_id) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(!EMPTYSTR(user_id));
|
|
|
|
|
|
|
|
|
|
if (!session || EMPTYSTR(user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -3698,10 +3610,6 @@ PEP_STATUS delete_person(PEP_SESSION session, const char* user_id) {
|
|
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS is_pEp_user(PEP_SESSION session, pEp_identity *identity, bool* is_pEp)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(is_pEp);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(!EMPTYSTR(identity->user_id));
|
|
|
|
|
|
|
|
|
|
if (!session || !is_pEp || !identity || EMPTYSTR(identity->user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3743,9 +3651,6 @@ DYNAMIC_API PEP_STATUS is_pEp_user(PEP_SESSION session, pEp_identity *identity,
|
|
|
|
|
|
|
|
|
|
PEP_STATUS is_own_address(PEP_SESSION session, const char* address, bool* is_own_addr)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(is_own_addr);
|
|
|
|
|
assert(!EMPTYSTR(address));
|
|
|
|
|
|
|
|
|
|
if (!session || !is_own_addr || EMPTYSTR(address))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3803,12 +3708,7 @@ PEP_STATUS bind_own_ident_with_contact_ident(PEP_SESSION session,
|
|
|
|
|
// since this could be either way
|
|
|
|
|
PEP_STATUS has_partner_contacted_address(PEP_SESSION session, const char* partner_id,
|
|
|
|
|
const char* own_address, bool* was_contacted) {
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(!EMPTYSTR(partner_id));
|
|
|
|
|
assert(!EMPTYSTR(own_address));
|
|
|
|
|
assert(was_contacted);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!session || !was_contacted || EMPTYSTR(partner_id) || EMPTYSTR(own_address))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -3886,7 +3786,6 @@ PEP_STATUS get_own_ident_for_contact_id(PEP_SESSION session,
|
|
|
|
|
PEP_STATUS remove_fpr_as_default(PEP_SESSION session,
|
|
|
|
|
const char* fpr)
|
|
|
|
|
{
|
|
|
|
|
assert(fpr);
|
|
|
|
|
|
|
|
|
|
if (!session || !fpr)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3919,8 +3818,6 @@ PEP_STATUS replace_identities_fpr(PEP_SESSION session,
|
|
|
|
|
const char* old_fpr,
|
|
|
|
|
const char* new_fpr)
|
|
|
|
|
{
|
|
|
|
|
assert(old_fpr);
|
|
|
|
|
assert(new_fpr);
|
|
|
|
|
|
|
|
|
|
if (!old_fpr || !new_fpr)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -3968,11 +3865,6 @@ DYNAMIC_API PEP_STATUS set_identity_flags(
|
|
|
|
|
{
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(identity->address);
|
|
|
|
|
assert(identity->user_id);
|
|
|
|
|
|
|
|
|
|
if (!(session && identity && identity->address && identity->user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4001,11 +3893,6 @@ DYNAMIC_API PEP_STATUS unset_identity_flags(
|
|
|
|
|
{
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(identity->address);
|
|
|
|
|
assert(identity->user_id);
|
|
|
|
|
|
|
|
|
|
if (!(session && identity && identity->address && identity->user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4033,11 +3920,6 @@ DYNAMIC_API PEP_STATUS set_ident_enc_format(
|
|
|
|
|
{
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(identity->address);
|
|
|
|
|
assert(identity->user_id);
|
|
|
|
|
|
|
|
|
|
if (!(session && identity && identity->address && identity->user_id))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4378,9 +4260,6 @@ pEp_free:
|
|
|
|
|
|
|
|
|
|
PEP_STATUS replace_userid(PEP_SESSION session, const char* old_uid,
|
|
|
|
|
const char* new_uid) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(old_uid);
|
|
|
|
|
assert(new_uid);
|
|
|
|
|
|
|
|
|
|
if (!session || !old_uid || !new_uid)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4417,8 +4296,6 @@ PEP_STATUS replace_userid(PEP_SESSION session, const char* old_uid,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PEP_STATUS remove_key(PEP_SESSION session, const char* fpr) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr);
|
|
|
|
|
|
|
|
|
|
if (!session || EMPTYSTR(fpr))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4438,8 +4315,6 @@ PEP_STATUS remove_key(PEP_SESSION session, const char* fpr) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PEP_STATUS refresh_userid_default_key(PEP_SESSION session, const char* user_id) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(user_id);
|
|
|
|
|
|
|
|
|
|
if (!session || !user_id)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4459,9 +4334,6 @@ PEP_STATUS refresh_userid_default_key(PEP_SESSION session, const char* user_id)
|
|
|
|
|
|
|
|
|
|
PEP_STATUS replace_main_user_fpr(PEP_SESSION session, const char* user_id,
|
|
|
|
|
const char* new_fpr) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(user_id);
|
|
|
|
|
assert(new_fpr);
|
|
|
|
|
|
|
|
|
|
if (!session || !user_id || !new_fpr)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4483,9 +4355,6 @@ PEP_STATUS replace_main_user_fpr(PEP_SESSION session, const char* user_id,
|
|
|
|
|
|
|
|
|
|
PEP_STATUS replace_main_user_fpr_if_equal(PEP_SESSION session, const char* user_id,
|
|
|
|
|
const char* new_fpr, const char* compare_fpr) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(user_id);
|
|
|
|
|
assert(compare_fpr);
|
|
|
|
|
|
|
|
|
|
if (!session || !user_id || !compare_fpr)
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4516,11 +4385,7 @@ PEP_STATUS get_main_user_fpr(PEP_SESSION session,
|
|
|
|
|
{
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(user_id);
|
|
|
|
|
assert(main_fpr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!(session && user_id && user_id[0] && main_fpr))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4568,9 +4433,6 @@ DYNAMIC_API PEP_STATUS mark_as_compromised(
|
|
|
|
|
{
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr && fpr[0]);
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr && fpr[0]))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4601,15 +4463,6 @@ DYNAMIC_API PEP_STATUS get_trust(PEP_SESSION session, pEp_identity *identity)
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
// We need to be able to test that we break correctly without shutting
|
|
|
|
|
// asserts off everywhere.
|
|
|
|
|
// assert(session);
|
|
|
|
|
// assert(identity);
|
|
|
|
|
// assert(identity->user_id);
|
|
|
|
|
// assert(identity->user_id[0]);
|
|
|
|
|
// assert(identity->fpr);
|
|
|
|
|
// assert(identity->fpr[0]);
|
|
|
|
|
|
|
|
|
|
if (!(session && identity && identity->user_id && identity->user_id[0] &&
|
|
|
|
|
identity->fpr && identity->fpr[0]))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4648,10 +4501,6 @@ DYNAMIC_API PEP_STATUS least_trust(
|
|
|
|
|
PEP_STATUS status = PEP_STATUS_OK;
|
|
|
|
|
int result;
|
|
|
|
|
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr);
|
|
|
|
|
assert(comm_type);
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr && comm_type))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4703,12 +4552,6 @@ DYNAMIC_API PEP_STATUS decrypt_and_verify(
|
|
|
|
|
char** filename_ptr
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(ctext);
|
|
|
|
|
assert(csize);
|
|
|
|
|
assert(ptext);
|
|
|
|
|
assert(psize);
|
|
|
|
|
assert(keylist);
|
|
|
|
|
|
|
|
|
|
if (!(session && ctext && csize && ptext && psize && keylist))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4731,12 +4574,6 @@ DYNAMIC_API PEP_STATUS encrypt_and_sign(
|
|
|
|
|
size_t psize, char **ctext, size_t *csize
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(keylist);
|
|
|
|
|
assert(ptext);
|
|
|
|
|
assert(psize);
|
|
|
|
|
assert(ctext);
|
|
|
|
|
assert(csize);
|
|
|
|
|
|
|
|
|
|
if (!(session && keylist && ptext && psize && ctext && csize))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4750,12 +4587,6 @@ PEP_STATUS encrypt_only(
|
|
|
|
|
size_t psize, char **ctext, size_t *csize
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(keylist);
|
|
|
|
|
assert(ptext);
|
|
|
|
|
assert(psize);
|
|
|
|
|
assert(ctext);
|
|
|
|
|
assert(csize);
|
|
|
|
|
|
|
|
|
|
if (!(session && keylist && ptext && psize && ctext && csize))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4770,12 +4601,6 @@ PEP_STATUS sign_only(PEP_SESSION session,
|
|
|
|
|
const char *fpr,
|
|
|
|
|
char **sign,
|
|
|
|
|
size_t *sign_size) {
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr);
|
|
|
|
|
assert(data);
|
|
|
|
|
assert(data_size);
|
|
|
|
|
assert(sign);
|
|
|
|
|
assert(sign_size);
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr && data && data_size && sign && sign_size))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4792,12 +4617,6 @@ DYNAMIC_API PEP_STATUS verify_text(
|
|
|
|
|
const char *signature, size_t sig_size, stringlist_t **keylist
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(text);
|
|
|
|
|
assert(size);
|
|
|
|
|
assert(signature);
|
|
|
|
|
assert(sig_size);
|
|
|
|
|
assert(keylist);
|
|
|
|
|
|
|
|
|
|
if (!(session && text && size && signature && sig_size && keylist))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4808,8 +4627,6 @@ DYNAMIC_API PEP_STATUS verify_text(
|
|
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS delete_keypair(PEP_SESSION session, const char *fpr)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr);
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4821,10 +4638,6 @@ DYNAMIC_API PEP_STATUS export_key(
|
|
|
|
|
PEP_SESSION session, const char *fpr, char **key_data, size_t *size
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr);
|
|
|
|
|
assert(key_data);
|
|
|
|
|
assert(size);
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr && key_data && size))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
@ -4837,11 +4650,6 @@ DYNAMIC_API PEP_STATUS export_secret_key(
|
|
|
|
|
PEP_SESSION session, const char *fpr, char **key_data, size_t *size
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr);
|
|
|
|
|
assert(key_data);
|
|
|
|
|
assert(size);
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr && key_data && size))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4865,10 +4673,6 @@ DYNAMIC_API PEP_STATUS find_keys(
|
|
|
|
|
PEP_SESSION session, const char *pattern, stringlist_t **keylist
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(pattern);
|
|
|
|
|
assert(keylist);
|
|
|
|
|
|
|
|
|
|
if (!(session && pattern && keylist))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4889,11 +4693,6 @@ PEP_STATUS _generate_keypair(PEP_SESSION session,
|
|
|
|
|
bool suppress_event
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(identity);
|
|
|
|
|
assert(identity->address);
|
|
|
|
|
assert(identity->fpr == NULL || identity->fpr[0] == 0);
|
|
|
|
|
// assert(identity->username);
|
|
|
|
|
// N.B. We now allow empty usernames, so the underlying layer for
|
|
|
|
|
// non-sequoia crypto implementations will have to deal with this.
|
|
|
|
|
|
|
|
|
@ -4952,10 +4751,6 @@ DYNAMIC_API PEP_STATUS get_key_rating(
|
|
|
|
|
PEP_comm_type *comm_type
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(fpr);
|
|
|
|
|
assert(comm_type);
|
|
|
|
|
|
|
|
|
|
if (!(session && fpr && comm_type))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4981,9 +4776,6 @@ PEP_STATUS _import_key_with_fpr_return(
|
|
|
|
|
uint64_t* changed_public_keys
|
|
|
|
|
)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(key_data);
|
|
|
|
|
|
|
|
|
|
if (!(session && key_data))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -4995,10 +4787,7 @@ PEP_STATUS _import_key_with_fpr_return(
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS recv_key(PEP_SESSION session, const char *pattern)
|
|
|
|
|
{
|
|
|
|
|
assert(session);
|
|
|
|
|
assert(pattern);
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
if (!(session && pattern))
|
|
|
|
|
return PEP_ILLEGAL_VALUE;
|
|
|
|
|
|
|
|
|
@ -5007,9 +4796,6 @@ DYNAMIC_API PEP_STATUS recv_key(PEP_SESSION session, const char *pattern)
|
|
|
|
|
|
|
|
|
|
DYNAMIC_API PEP_STATUS send_key(PEP_SESSION session, const char *pattern)
|
|
|
|
|
{
|
|
|
|
|
assert( |