|
|
|
@ -205,6 +205,23 @@ DYNAMIC_API void free_Sync_event(SYNC_EVENT ev);
|
|
|
|
|
|
|
|
|
|
typedef int (*inject_sync_event_t)(SYNC_EVENT ev, void *management);
|
|
|
|
|
|
|
|
|
|
// ensure_decrypt_key() - callee ensures correct password for (signing) key is configured in the session on
|
|
|
|
|
// return, or returns error when it is not found
|
|
|
|
|
// parameters:
|
|
|
|
|
//. session (in) session for which the guarantee is made
|
|
|
|
|
// fpr (in) fpr to check
|
|
|
|
|
//
|
|
|
|
|
// return value:
|
|
|
|
|
// PEP_STATUS_OK passphrase is configured and ready to use
|
|
|
|
|
// If the caller runs out of passphrases to try, PEP_*PASSWORD* errors
|
|
|
|
|
// are acceptable.
|
|
|
|
|
//. Other errors if, e.g., the key is not found
|
|
|
|
|
//
|
|
|
|
|
// caveat:
|
|
|
|
|
// The callee is responsible for iterating through passwords
|
|
|
|
|
// to ensure signing/encryption can occur successfully.
|
|
|
|
|
//
|
|
|
|
|
typedef PEP_STATUS (*ensure_decrypt_key_t)(PEP_SESSION session, const char* fpr);
|
|
|
|
|
|
|
|
|
|
// INIT_STATUS init() - initialize pEpEngine for a thread
|
|
|
|
|
//
|
|
|
|
@ -214,13 +231,14 @@ typedef int (*inject_sync_event_t)(SYNC_EVENT ev, void *management);
|
|
|
|
|
// messageToSend (in) callback for sending message by the
|
|
|
|
|
// application
|
|
|
|
|
// inject_sync_event (in) callback for injecting a sync event
|
|
|
|
|
// ensure_decrypt_key (in) callback for ensuring correct password for key is set
|
|
|
|
|
//
|
|
|
|
|
// return value:
|
|
|
|
|
// PEP_STATUS_OK = 0 if init() succeeds
|
|
|
|
|
// PEP_INIT_SQLITE3_WITHOUT_MUTEX if SQLite3 was compiled with
|
|
|
|
|
// SQLITE_THREADSAFE 0
|
|
|
|
|
// PEP_INIT_CANNOT_LOAD_CRYPTO_LIB if crypto lin cannot be found
|
|
|
|
|
// PEP_INIT_CRYPTO_LIB_INIT_FAILED if CRYPTO_LIB init fails
|
|
|
|
|
// PEP_INIT_CRYPTO_LIB_INIT_FAILED if CRYPTO_LIB init fails
|
|
|
|
|
// PEP_INIT_CANNOT_OPEN_DB if user's management db cannot be
|
|
|
|
|
// opened
|
|
|
|
|
// PEP_INIT_CANNOT_OPEN_SYSTEM_DB if system's management db cannot be
|
|
|
|
@ -239,14 +257,20 @@ typedef int (*inject_sync_event_t)(SYNC_EVENT ev, void *management);
|
|
|
|
|
//
|
|
|
|
|
// messageToSend can only be null if no transport is application based
|
|
|
|
|
// if transport system is not used it must not be NULL
|
|
|
|
|
//
|
|
|
|
|
// ensure_refresh_key should only be NULL if the
|
|
|
|
|
// caller can guarantee that there is only one single or zero passphrases
|
|
|
|
|
// used in the whole of the keys database
|
|
|
|
|
|
|
|
|
|
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_decrypt_key_t ensure_decrypt_key
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// void release() - release thread session handle
|
|
|
|
|
//
|
|
|
|
|
// parameters:
|
|
|
|
|