Delta Chat Core C-API
dc_pgp.h
1 #ifndef __DC_PGP_H__
2 #define __DC_PGP_H__
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 
8 /*** library-private **********************************************************/
9 
10 #include "dc_key.h"
11 #include "dc_keyring.h"
12 
13 
14 /* validation errors */
15 #define DC_E2EE_NO_VALID_SIGNATURE 0x02
16 
17 /* misc. */
18 void dc_pgp_init (void);
19 void dc_pgp_exit (void);
20 void dc_pgp_rand_seed (dc_context_t*, const void* buf, size_t bytes);
21 int dc_split_armored_data (char* buf, const char** ret_headerline, const char** ret_setupcodebegin, const char** ret_preferencrypt, const char** ret_base64);
22 
23 /* public key encryption */
24 #define DC_KEYGEN_BITS 3072
25 #define DC_KEYGEN_E 65537
26 int dc_pgp_create_keypair (dc_context_t*, const char* addr, dc_key_t* public_key, dc_key_t* private_key);
27 
28 int dc_pgp_is_valid_key (dc_context_t*, const dc_key_t*);
29 int dc_pgp_calc_fingerprint (const dc_key_t*, uint8_t** fingerprint, size_t* fingerprint_bytes);
30 int dc_pgp_split_key (dc_context_t*, const dc_key_t* private_in, dc_key_t* public_out);
31 
32 int dc_pgp_pk_encrypt (dc_context_t*, const void* plain, size_t plain_bytes, const dc_keyring_t*, const dc_key_t* sign_key, int use_armor, void** ret_ctext, size_t* ret_ctext_bytes);
33 int dc_pgp_pk_decrypt (dc_context_t*, const void* ctext, size_t ctext_bytes, const dc_keyring_t*, const dc_keyring_t* validate_keys, int use_armor, void** plain, size_t* plain_bytes, dc_hash_t* ret_signature_fingerprints);
34 
35 
36 #ifdef __cplusplus
37 } /* /extern "C" */
38 #endif
39 #endif // __DC_PGP_H__
An object representing a single account.