Browse Source

move this to an extra file and make it optional

pEpMIME_windows
Volker Birk 3 years ago
parent
commit
015b95b47c
3 changed files with 131 additions and 119 deletions
  1. +0
    -98
      src/pEpEngine.h
  2. +109
    -0
      src/pEp_status_to_string.h
  3. +22
    -21
      src/pgp_sequoia.c

+ 0
- 98
src/pEpEngine.h View File

@ -167,104 +167,6 @@ void free_Sync_event(SYNC_EVENT ev);
typedef int (*inject_sync_event_t)(SYNC_EVENT ev, void *management);
static inline const char *pep_status_to_string(PEP_STATUS status) {
switch (status) {
case PEP_STATUS_OK: return "PEP_STATUS_OK";
case PEP_INIT_CANNOT_LOAD_GPGME: return "PEP_INIT_CANNOT_LOAD_GPGME";
case PEP_INIT_GPGME_INIT_FAILED: return "PEP_INIT_GPGME_INIT_FAILED";
case PEP_INIT_NO_GPG_HOME: return "PEP_INIT_NO_GPG_HOME";
case PEP_INIT_NETPGP_INIT_FAILED: return "PEP_INIT_NETPGP_INIT_FAILED";
case PEP_INIT_CANNOT_DETERMINE_GPG_VERSION: return "PEP_INIT_CANNOT_DETERMINE_GPG_VERSION";
case PEP_INIT_UNSUPPORTED_GPG_VERSION: return "PEP_INIT_UNSUPPORTED_GPG_VERSION";
case PEP_INIT_CANNOT_CONFIG_GPG_AGENT: return "PEP_INIT_CANNOT_CONFIG_GPG_AGENT";
case PEP_INIT_SQLITE3_WITHOUT_MUTEX: return "PEP_INIT_SQLITE3_WITHOUT_MUTEX";
case PEP_INIT_CANNOT_OPEN_DB: return "PEP_INIT_CANNOT_OPEN_DB";
case PEP_INIT_CANNOT_OPEN_SYSTEM_DB: return "PEP_INIT_CANNOT_OPEN_SYSTEM_DB";
case PEP_UNKNOWN_DB_ERROR: return "PEP_UNKNOWN_DB_ERROR";
case PEP_KEY_NOT_FOUND: return "PEP_KEY_NOT_FOUND";
case PEP_KEY_HAS_AMBIG_NAME: return "PEP_KEY_HAS_AMBIG_NAME";
case PEP_GET_KEY_FAILED: return "PEP_GET_KEY_FAILED";
case PEP_CANNOT_EXPORT_KEY: return "PEP_CANNOT_EXPORT_KEY";
case PEP_CANNOT_EDIT_KEY: return "PEP_CANNOT_EDIT_KEY";
case PEP_KEY_UNSUITABLE: return "PEP_KEY_UNSUITABLE";
case PEP_MALFORMED_KEY_RESET_MSG: return "PEP_MALFORMED_KEY_RESET_MSG";
case PEP_KEY_NOT_RESET: return "PEP_KEY_NOT_RESET";
case PEP_KEY_IMPORTED: return "PEP_KEY_IMPORTED";
case PEP_NO_KEY_IMPORTED: return "PEP_NO_KEY_IMPORTED";
case PEP_KEY_IMPORT_STATUS_UNKNOWN: return "PEP_KEY_IMPORT_STATUS_UNKNOWN";
case PEP_CANNOT_FIND_IDENTITY: return "PEP_CANNOT_FIND_IDENTITY";
case PEP_CANNOT_SET_PERSON: return "PEP_CANNOT_SET_PERSON";
case PEP_CANNOT_SET_PGP_KEYPAIR: return "PEP_CANNOT_SET_PGP_KEYPAIR";
case PEP_CANNOT_SET_IDENTITY: return "PEP_CANNOT_SET_IDENTITY";
case PEP_CANNOT_SET_TRUST: return "PEP_CANNOT_SET_TRUST";
case PEP_KEY_BLACKLISTED: return "PEP_KEY_BLACKLISTED";
case PEP_CANNOT_FIND_PERSON: return "PEP_CANNOT_FIND_PERSON";
case PEP_CANNOT_FIND_ALIAS: return "PEP_CANNOT_FIND_ALIAS";
case PEP_CANNOT_SET_ALIAS: return "PEP_CANNOT_SET_ALIAS";
case PEP_UNENCRYPTED: return "PEP_UNENCRYPTED";
case PEP_VERIFIED: return "PEP_VERIFIED";
case PEP_DECRYPTED: return "PEP_DECRYPTED";
case PEP_DECRYPTED_AND_VERIFIED: return "PEP_DECRYPTED_AND_VERIFIED";
case PEP_DECRYPT_WRONG_FORMAT: return "PEP_DECRYPT_WRONG_FORMAT";
case PEP_DECRYPT_NO_KEY: return "PEP_DECRYPT_NO_KEY";
case PEP_DECRYPT_SIGNATURE_DOES_NOT_MATCH: return "PEP_DECRYPT_SIGNATURE_DOES_NOT_MATCH";
case PEP_VERIFY_NO_KEY: return "PEP_VERIFY_NO_KEY";
case PEP_VERIFIED_AND_TRUSTED: return "PEP_VERIFIED_AND_TRUSTED";
case PEP_CANNOT_REENCRYPT: return "PEP_CANNOT_REENCRYPT";
case PEP_CANNOT_DECRYPT_UNKNOWN: return "PEP_CANNOT_DECRYPT_UNKNOWN";
case PEP_TRUSTWORD_NOT_FOUND: return "PEP_TRUSTWORD_NOT_FOUND";
case PEP_TRUSTWORDS_FPR_WRONG_LENGTH: return "PEP_TRUSTWORDS_FPR_WRONG_LENGTH";
case PEP_TRUSTWORDS_DUPLICATE_FPR: return "PEP_TRUSTWORDS_DUPLICATE_FPR";
case PEP_CANNOT_CREATE_KEY: return "PEP_CANNOT_CREATE_KEY";
case PEP_CANNOT_SEND_KEY: return "PEP_CANNOT_SEND_KEY";
case PEP_PHRASE_NOT_FOUND: return "PEP_PHRASE_NOT_FOUND";
case PEP_SEND_FUNCTION_NOT_REGISTERED: return "PEP_SEND_FUNCTION_NOT_REGISTERED";
case PEP_CONTRAINTS_VIOLATED: return "PEP_CONTRAINTS_VIOLATED";
case PEP_CANNOT_ENCODE: return "PEP_CANNOT_ENCODE";
case PEP_SYNC_NO_NOTIFY_CALLBACK: return "PEP_SYNC_NO_NOTIFY_CALLBACK";
case PEP_SYNC_ILLEGAL_MESSAGE: return "PEP_SYNC_ILLEGAL_MESSAGE";
case PEP_SYNC_NO_INJECT_CALLBACK: return "PEP_SYNC_NO_INJECT_CALLBACK";
case PEP_SYNC_NO_CHANNEL: return "PEP_SYNC_NO_CHANNEL";
case PEP_SYNC_CANNOT_ENCRYPT: return "PEP_SYNC_CANNOT_ENCRYPT";
case PEP_SYNC_NO_MESSAGE_SEND_CALLBACK: return "PEP_SYNC_NO_MESSAGE_SEND_CALLBACK";
case PEP_CANNOT_INCREASE_SEQUENCE: return "PEP_CANNOT_INCREASE_SEQUENCE";
case PEP_STATEMACHINE_ERROR: return "PEP_STATEMACHINE_ERROR";
case PEP_NO_TRUST: return "PEP_NO_TRUST";
case PEP_STATEMACHINE_INVALID_STATE: return "PEP_STATEMACHINE_INVALID_STATE";
case PEP_STATEMACHINE_INVALID_EVENT: return "PEP_STATEMACHINE_INVALID_EVENT";
case PEP_STATEMACHINE_INVALID_CONDITION: return "PEP_STATEMACHINE_INVALID_CONDITION";
case PEP_STATEMACHINE_INVALID_ACTION: return "PEP_STATEMACHINE_INVALID_ACTION";
case PEP_STATEMACHINE_INHIBITED_EVENT: return "PEP_STATEMACHINE_INHIBITED_EVENT";
case PEP_STATEMACHINE_CANNOT_SEND: return "PEP_STATEMACHINE_CANNOT_SEND";
case PEP_COMMIT_FAILED: return "PEP_COMMIT_FAILED";
case PEP_MESSAGE_CONSUME: return "PEP_MESSAGE_CONSUME";
case PEP_MESSAGE_IGNORE: return "PEP_MESSAGE_IGNORE";
case PEP_RECORD_NOT_FOUND: return "PEP_RECORD_NOT_FOUND";
case PEP_CANNOT_CREATE_TEMP_FILE: return "PEP_CANNOT_CREATE_TEMP_FILE";
case PEP_ILLEGAL_VALUE: return "PEP_ILLEGAL_VALUE";
case PEP_BUFFER_TOO_SMALL: return "PEP_BUFFER_TOO_SMALL";
case PEP_OUT_OF_MEMORY: return "PEP_OUT_OF_MEMORY";
case PEP_UNKNOWN_ERROR: return "PEP_UNKNOWN_ERROR";
case PEP_VERSION_MISMATCH: return "PEP_VERSION_MISMATCH";
default: return "unknown status code";
}
}
// INIT_STATUS init() - initialize pEpEngine for a thread
//


+ 109
- 0
src/pEp_status_to_string.h View File

@ -0,0 +1,109 @@
#pragma once
#ifdef __cplusplus
"C" {
#endif
static inline const char *pep_status_to_string(PEP_STATUS status) {
switch (status) {
case PEP_STATUS_OK: return "PEP_STATUS_OK";
case PEP_INIT_CANNOT_LOAD_GPGME: return "PEP_INIT_CANNOT_LOAD_GPGME";
case PEP_INIT_GPGME_INIT_FAILED: return "PEP_INIT_GPGME_INIT_FAILED";
case PEP_INIT_NO_GPG_HOME: return "PEP_INIT_NO_GPG_HOME";
case PEP_INIT_NETPGP_INIT_FAILED: return "PEP_INIT_NETPGP_INIT_FAILED";
case PEP_INIT_CANNOT_DETERMINE_GPG_VERSION: return "PEP_INIT_CANNOT_DETERMINE_GPG_VERSION";
case PEP_INIT_UNSUPPORTED_GPG_VERSION: return "PEP_INIT_UNSUPPORTED_GPG_VERSION";
case PEP_INIT_CANNOT_CONFIG_GPG_AGENT: return "PEP_INIT_CANNOT_CONFIG_GPG_AGENT";
case PEP_INIT_SQLITE3_WITHOUT_MUTEX: return "PEP_INIT_SQLITE3_WITHOUT_MUTEX";
case PEP_INIT_CANNOT_OPEN_DB: return "PEP_INIT_CANNOT_OPEN_DB";
case PEP_INIT_CANNOT_OPEN_SYSTEM_DB: return "PEP_INIT_CANNOT_OPEN_SYSTEM_DB";
case PEP_UNKNOWN_DB_ERROR: return "PEP_UNKNOWN_DB_ERROR";
case PEP_KEY_NOT_FOUND: return "PEP_KEY_NOT_FOUND";
case PEP_KEY_HAS_AMBIG_NAME: return "PEP_KEY_HAS_AMBIG_NAME";
case PEP_GET_KEY_FAILED: return "PEP_GET_KEY_FAILED";
case PEP_CANNOT_EXPORT_KEY: return "PEP_CANNOT_EXPORT_KEY";
case PEP_CANNOT_EDIT_KEY: return "PEP_CANNOT_EDIT_KEY";
case PEP_KEY_UNSUITABLE: return "PEP_KEY_UNSUITABLE";
case PEP_MALFORMED_KEY_RESET_MSG: return "PEP_MALFORMED_KEY_RESET_MSG";
case PEP_KEY_NOT_RESET: return "PEP_KEY_NOT_RESET";
case PEP_KEY_IMPORTED: return "PEP_KEY_IMPORTED";
case PEP_NO_KEY_IMPORTED: return "PEP_NO_KEY_IMPORTED";
case PEP_KEY_IMPORT_STATUS_UNKNOWN: return "PEP_KEY_IMPORT_STATUS_UNKNOWN";
case PEP_CANNOT_FIND_IDENTITY: return "PEP_CANNOT_FIND_IDENTITY";
case PEP_CANNOT_SET_PERSON: return "PEP_CANNOT_SET_PERSON";
case PEP_CANNOT_SET_PGP_KEYPAIR: return "PEP_CANNOT_SET_PGP_KEYPAIR";
case PEP_CANNOT_SET_IDENTITY: return "PEP_CANNOT_SET_IDENTITY";
case PEP_CANNOT_SET_TRUST: return "PEP_CANNOT_SET_TRUST";
case PEP_KEY_BLACKLISTED: return "PEP_KEY_BLACKLISTED";
case PEP_CANNOT_FIND_PERSON: return "PEP_CANNOT_FIND_PERSON";
case PEP_CANNOT_FIND_ALIAS: return "PEP_CANNOT_FIND_ALIAS";
case PEP_CANNOT_SET_ALIAS: return "PEP_CANNOT_SET_ALIAS";
case PEP_UNENCRYPTED: return "PEP_UNENCRYPTED";
case PEP_VERIFIED: return "PEP_VERIFIED";
case PEP_DECRYPTED: return "PEP_DECRYPTED";
case PEP_DECRYPTED_AND_VERIFIED: return "PEP_DECRYPTED_AND_VERIFIED";
case PEP_DECRYPT_WRONG_FORMAT: return "PEP_DECRYPT_WRONG_FORMAT";
case PEP_DECRYPT_NO_KEY: return "PEP_DECRYPT_NO_KEY";
case PEP_DECRYPT_SIGNATURE_DOES_NOT_MATCH: return "PEP_DECRYPT_SIGNATURE_DOES_NOT_MATCH";
case PEP_VERIFY_NO_KEY: return "PEP_VERIFY_NO_KEY";
case PEP_VERIFIED_AND_TRUSTED: return "PEP_VERIFIED_AND_TRUSTED";
case PEP_CANNOT_REENCRYPT: return "PEP_CANNOT_REENCRYPT";
case PEP_CANNOT_DECRYPT_UNKNOWN: return "PEP_CANNOT_DECRYPT_UNKNOWN";
case PEP_TRUSTWORD_NOT_FOUND: return "PEP_TRUSTWORD_NOT_FOUND";
case PEP_TRUSTWORDS_FPR_WRONG_LENGTH: return "PEP_TRUSTWORDS_FPR_WRONG_LENGTH";
case PEP_TRUSTWORDS_DUPLICATE_FPR: return "PEP_TRUSTWORDS_DUPLICATE_FPR";
case PEP_CANNOT_CREATE_KEY: return "PEP_CANNOT_CREATE_KEY";
case PEP_CANNOT_SEND_KEY: return "PEP_CANNOT_SEND_KEY";
case PEP_PHRASE_NOT_FOUND: return "PEP_PHRASE_NOT_FOUND";
case PEP_SEND_FUNCTION_NOT_REGISTERED: return "PEP_SEND_FUNCTION_NOT_REGISTERED";
case PEP_CONTRAINTS_VIOLATED: return "PEP_CONTRAINTS_VIOLATED";
case PEP_CANNOT_ENCODE: return "PEP_CANNOT_ENCODE";
case PEP_SYNC_NO_NOTIFY_CALLBACK: return "PEP_SYNC_NO_NOTIFY_CALLBACK";
case PEP_SYNC_ILLEGAL_MESSAGE: return "PEP_SYNC_ILLEGAL_MESSAGE";
case PEP_SYNC_NO_INJECT_CALLBACK: return "PEP_SYNC_NO_INJECT_CALLBACK";
case PEP_SYNC_NO_CHANNEL: return "PEP_SYNC_NO_CHANNEL";
case PEP_SYNC_CANNOT_ENCRYPT: return "PEP_SYNC_CANNOT_ENCRYPT";
case PEP_SYNC_NO_MESSAGE_SEND_CALLBACK: return "PEP_SYNC_NO_MESSAGE_SEND_CALLBACK";
case PEP_CANNOT_INCREASE_SEQUENCE: return "PEP_CANNOT_INCREASE_SEQUENCE";
case PEP_STATEMACHINE_ERROR: return "PEP_STATEMACHINE_ERROR";
case PEP_NO_TRUST: return "PEP_NO_TRUST";
case PEP_STATEMACHINE_INVALID_STATE: return "PEP_STATEMACHINE_INVALID_STATE";
case PEP_STATEMACHINE_INVALID_EVENT: return "PEP_STATEMACHINE_INVALID_EVENT";
case PEP_STATEMACHINE_INVALID_CONDITION: return "PEP_STATEMACHINE_INVALID_CONDITION";
case PEP_STATEMACHINE_INVALID_ACTION: return "PEP_STATEMACHINE_INVALID_ACTION";
case PEP_STATEMACHINE_INHIBITED_EVENT: return "PEP_STATEMACHINE_INHIBITED_EVENT";
case PEP_STATEMACHINE_CANNOT_SEND: return "PEP_STATEMACHINE_CANNOT_SEND";
case PEP_COMMIT_FAILED: return "PEP_COMMIT_FAILED";
case PEP_MESSAGE_CONSUME: return "PEP_MESSAGE_CONSUME";
case PEP_MESSAGE_IGNORE: return "PEP_MESSAGE_IGNORE";
case PEP_RECORD_NOT_FOUND: return "PEP_RECORD_NOT_FOUND";
case PEP_CANNOT_CREATE_TEMP_FILE: return "PEP_CANNOT_CREATE_TEMP_FILE";
case PEP_ILLEGAL_VALUE: return "PEP_ILLEGAL_VALUE";
case PEP_BUFFER_TOO_SMALL: return "PEP_BUFFER_TOO_SMALL";
case PEP_OUT_OF_MEMORY: return "PEP_OUT_OF_MEMORY";
case PEP_UNKNOWN_ERROR: return "PEP_UNKNOWN_ERROR";
case PEP_VERSION_MISMATCH: return "PEP_VERSION_MISMATCH";
default: return "unknown status code";
}
}
#ifdef __cplusplus
} // "C"
#endif

+ 22
- 21
src/pgp_sequoia.c View File

@ -26,6 +26,7 @@
// enable tracing if in debugging mode
#if TRACING
#include "pEp_status_to_string.h"
# define _T(...) do { \
fprintf(stderr, ##__VA_ARGS__); \
} while (0)
@ -53,7 +54,7 @@
_T("Sequoia: %s => ", pgp_error_to_string(__de_err)); \
pgp_error_free(__de_err); \
} \
_T("%s\n", pep_status_to_string(__de_status)); \
_T("%s\n", pEp_status_to_string(__de_status)); \
} while(0)
// If __ec_status is an error, then disable the error, set 'status' to
@ -401,7 +402,7 @@ static PEP_STATUS key_load(PEP_SESSION session, sqlite3_stmt *stmt,
}
out:
T(" -> %s", pep_status_to_string(status));
T(" -> %s", pEp_status_to_string(status));
return status;
}
@ -446,7 +447,7 @@ static PEP_STATUS key_loadn(PEP_SESSION session, sqlite3_stmt *stmt,
*tpks_countp = tpks_count;
}
T(" -> %s (%d tpks)", pep_status_to_string(status), *tpks_countp);
T(" -> %s (%d tpks)", pEp_status_to_string(status), *tpks_countp);
return status;
}
@ -473,7 +474,7 @@ static PEP_STATUS tpk_find(PEP_SESSION session,
out:
sqlite3_reset(stmt);
T("(%s, %d) -> %s", fpr_str, private_only, pep_status_to_string(status));
T("(%s, %d) -> %s", fpr_str, private_only, pEp_status_to_string(status));
free(fpr_str);
return status;
}
@ -507,7 +508,7 @@ static PEP_STATUS tpk_find_by_keyid_hex(
out:
sqlite3_reset(stmt);
T("(%s, %d) -> %s", keyid_hex, private_only, pep_status_to_string(status));
T("(%s, %d) -> %s", keyid_hex, private_only, pEp_status_to_string(status));
return status;
}
@ -594,7 +595,7 @@ static PEP_STATUS tpk_find_by_email(PEP_SESSION session,
out:
sqlite3_reset(stmt);
T("(%s) -> %s (%d results)", pattern, pep_status_to_string(status), *countp);
T("(%s) -> %s (%d results)", pattern, pEp_status_to_string(status), *countp);
return status;
}
@ -768,7 +769,7 @@ static PEP_STATUS tpk_save(PEP_SESSION session, pgp_tpk_t tpk,
sqlite3_errmsg(session->key_db));
}
T("(%s) -> %s", fpr, pep_status_to_string(status));
T("(%s) -> %s", fpr, pEp_status_to_string(status));
if (user_id_iter)
pgp_user_id_binding_iter_free(user_id_iter);
@ -1170,7 +1171,7 @@ PEP_STATUS pgp_decrypt_and_verify(
if (writer)
pgp_writer_free(writer);
T("-> %s", pep_status_to_string(status));
T("-> %s", pEp_status_to_string(status));
return status;
}
@ -1259,7 +1260,7 @@ PEP_STATUS pgp_verify_text(
if (dsig_reader)
pgp_reader_free(dsig_reader);
T("-> %s", pep_status_to_string(status));
T("-> %s", pEp_status_to_string(status));
return status;
}
@ -1350,7 +1351,7 @@ PEP_STATUS pgp_sign_only(
if (signer_tpk)
pgp_tpk_free(signer_tpk);
T("(%s)-> %s", fpr, pep_status_to_string(status));
T("(%s)-> %s", fpr, pEp_status_to_string(status));
return status;
}
@ -1474,7 +1475,7 @@ static PEP_STATUS pgp_encrypt_sign_optional(
pgp_tpk_free(keys[i]);
free(keys);
T("-> %s", pep_status_to_string(status));
T("-> %s", pEp_status_to_string(status));
return status;
}
@ -1555,7 +1556,7 @@ PEP_STATUS pgp_generate_keypair(PEP_SESSION session, pEp_identity *identity)
pgp_tpk_free(tpk);
free(userid);
T("-> %s", pep_status_to_string(status));
T("-> %s", pEp_status_to_string(status));
return status;
}
@ -1643,7 +1644,7 @@ PEP_STATUS pgp_import_keydata(PEP_SESSION session, const char *key_data,
}
out:
T("-> %s", pep_status_to_string(status));
T("-> %s", pEp_status_to_string(status));
return status;
}
@ -1698,7 +1699,7 @@ PEP_STATUS pgp_export_keydata(
if (tpk)
pgp_tpk_free(tpk);
T("(%s) -> %s", fpr, pep_status_to_string(status));
T("(%s) -> %s", fpr, pEp_status_to_string(status));
return status;
}
@ -1883,7 +1884,7 @@ static PEP_STATUS list_keys(PEP_SESSION session,
len = stringlist_length(*keylist);
else if (keyinfo_list)
len = stringpair_list_length(*keyinfo_list);
T("(%s) -> %s (%d keys)", pattern, pep_status_to_string(status), len);
T("(%s) -> %s (%d keys)", pattern, pEp_status_to_string(status), len);
return status;
}
@ -2074,7 +2075,7 @@ PEP_STATUS pgp_renew_key(
if (tpk)
pgp_tpk_free(tpk);
T("(%s) -> %s", fpr, pep_status_to_string(status));
T("(%s) -> %s", fpr, pEp_status_to_string(status));
return status;
}
@ -2135,7 +2136,7 @@ PEP_STATUS pgp_revoke_key(
if (tpk)
pgp_tpk_free(tpk);
T("(%s) -> %s", fpr, pep_status_to_string(status));
T("(%s) -> %s", fpr, pEp_status_to_string(status));
return status;
}
@ -2192,7 +2193,7 @@ PEP_STATUS pgp_key_expired(PEP_SESSION session, const char *fpr,
out:
if (tpk)
pgp_tpk_free(tpk);
T("(%s) -> %s", fpr, pep_status_to_string(status));
T("(%s) -> %s", fpr, pEp_status_to_string(status));
return status;
}
@ -2220,7 +2221,7 @@ PEP_STATUS pgp_key_revoked(PEP_SESSION session, const char *fpr, bool *revoked)
pgp_tpk_free(tpk);
out:
T("(%s) -> %s", fpr, pep_status_to_string(status));
T("(%s) -> %s", fpr, pEp_status_to_string(status));
return status;
}
@ -2242,7 +2243,7 @@ PEP_STATUS pgp_key_created(PEP_SESSION session, const char *fpr, time_t *created
pgp_tpk_free(tpk);
out:
T("(%s) -> %s", fpr, pep_status_to_string(status));
T("(%s) -> %s", fpr, pEp_status_to_string(status));
return status;
}
@ -2266,6 +2267,6 @@ PEP_STATUS pgp_contains_priv_key(PEP_SESSION session, const char *fpr,
status = PEP_STATUS_OK;
}
T("(%s) -> %s, %s",
fpr, *has_private ? "priv" : "pub", pep_status_to_string(status));
fpr, *has_private ? "priv" : "pub", pEp_status_to_string(status));
return status;
}

Loading…
Cancel
Save