Delta Chat Core C-API
dc_key.h
1 #ifndef __DC_KEY_H__
2 #define __DC_KEY_H__
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 
8 #include <sqlite3.h>
9 
10 
11 typedef struct _dc_key dc_key_t;
12 
13 
14 #define DC_KEY_PUBLIC 0
15 #define DC_KEY_PRIVATE 1
16 
17 
21 struct _dc_key
22 {
23  void* binary;
24  int bytes;
25  int type;
26 
28  int _m_heap_refcnt; /* !=0 for objects created with dc_key_new(), 0 for stack objects */
29 };
30 
31 
32 dc_key_t* dc_key_new ();
33 dc_key_t* dc_key_ref (dc_key_t*);
34 void dc_key_unref (dc_key_t*);
35 
36 int dc_key_set_from_binary (dc_key_t*, const void* data, int bytes, int type);
37 int dc_key_set_from_key (dc_key_t*, const dc_key_t*);
38 int dc_key_set_from_stmt (dc_key_t*, sqlite3_stmt*, int index, int type);
39 int dc_key_set_from_base64 (dc_key_t*, const char* base64, int type);
40 int dc_key_set_from_file (dc_key_t*, const char* file, dc_context_t*);
41 
42 int dc_key_equals (const dc_key_t*, const dc_key_t*);
43 
44 int dc_key_save_self_keypair (const dc_key_t* public_key, const dc_key_t* private_key, const char* addr, int is_default, dc_sqlite3_t* sql);
45 int dc_key_load_self_public (dc_key_t*, const char* self_addr, dc_sqlite3_t* sql);
46 int dc_key_load_self_private (dc_key_t*, const char* self_addr, dc_sqlite3_t* sql);
47 
48 char* dc_render_base64 (const void* buf, size_t buf_bytes, int break_every, const char* break_chars, int add_checksum); /* the result must be freed */
49 char* dc_key_render_base64 (const dc_key_t*, int break_every, const char* break_chars, int add_checksum); /* the result must be freed */
50 char* dc_key_render_asc (const dc_key_t*, const char* add_header_lines); /* each header line must be terminated by \r\n, the result must be freed */
51 int dc_key_render_asc_to_file (const dc_key_t*, const char* file, dc_context_t*);
52 
53 char* dc_format_fingerprint (const char*);
54 char* dc_normalize_fingerprint (const char*);
55 char* dc_key_get_fingerprint (const dc_key_t*);
56 char* dc_key_get_formatted_fingerprint(const dc_key_t*);
57 
58 void dc_wipe_secret_mem (void* buf, size_t buf_bytes);
59 
60 
61 #ifdef __cplusplus
62 } /* /extern "C" */
63 #endif
64 #endif /* __DC_KEY_H__ */
65 
An object representing a single account.