1 #ifndef __DC_APEERSTATE_H__ 2 #define __DC_APEERSTATE_H__ 9 #include "dc_aheader.h" 13 typedef struct _dc_apeerstate dc_apeerstate_t;
16 #define DC_PE_NOPREFERENCE 0 17 #define DC_PE_MUTUAL 1 18 #define DC_PE_RESET 20 33 time_t last_seen_autocrypt;
36 #define DC_NOT_VERIFIED 0 37 #define DC_BIDIRECT_VERIFIED 2 40 char* public_key_fingerprint;
43 time_t gossip_timestamp;
44 char* gossip_key_fingerprint;
46 dc_key_t* verified_key;
47 char* verified_key_fingerprint;
49 #define DC_SAVE_TIMESTAMPS 0x01 50 #define DC_SAVE_ALL 0x02 53 #define DC_DE_ENCRYPTION_PAUSED 0x01 // recoverable by an incoming encrypted mail 54 #define DC_DE_FINGERPRINT_CHANGED 0x02 // recoverable by a new verify 61 void dc_apeerstate_unref (dc_apeerstate_t*);
63 int dc_apeerstate_init_from_header (dc_apeerstate_t*,
const dc_aheader_t*, time_t message_time);
64 int dc_apeerstate_init_from_gossip (dc_apeerstate_t*,
const dc_aheader_t*, time_t message_time);
66 int dc_apeerstate_degrade_encryption (dc_apeerstate_t*, time_t message_time);
68 void dc_apeerstate_apply_header (dc_apeerstate_t*,
const dc_aheader_t*, time_t message_time);
69 void dc_apeerstate_apply_gossip (dc_apeerstate_t*,
const dc_aheader_t*, time_t message_time);
71 char* dc_apeerstate_render_gossip_header (
const dc_apeerstate_t*,
int min_verified);
73 dc_key_t* dc_apeerstate_peek_key (
const dc_apeerstate_t*,
int min_verified);
75 int dc_apeerstate_recalc_fingerprint (dc_apeerstate_t*);
77 #define DC_PS_GOSSIP_KEY 0 78 #define DC_PS_PUBLIC_KEY 1 79 int dc_apeerstate_set_verified (dc_apeerstate_t*,
int which_key,
const char* fingerprint,
int verified);
81 int dc_apeerstate_load_by_addr (dc_apeerstate_t*, dc_sqlite3_t*,
const char* addr);
82 int dc_apeerstate_load_by_fingerprint (dc_apeerstate_t*, dc_sqlite3_t*,
const char* fingerprint);
83 int dc_apeerstate_save_to_db (
const dc_apeerstate_t*, dc_sqlite3_t*,
int create);
85 int dc_apeerstate_has_verified_key (
const dc_apeerstate_t*,
const dc_hash_t* fingerprints);
An object representing a single account.