Merge branch 'master' of git://repo.or.cz/gnutls
[gnutls.git] / libextra / openpgp / gnutls_openpgp.h
blob790359ecadd6b80dc861efdd8dd7d0204b2db4a2
1 #include <config.h>
3 #ifdef ENABLE_OPENPGP
5 #ifndef GNUTLS_OPENPGP_H
6 #define GNUTLS_OPENPGP_H
8 #include <auth_cert.h>
9 #include <opencdk.h>
11 typedef struct
13 int type;
14 size_t size;
15 uint8_t *data;
16 } keybox_blob;
18 typedef enum
20 KBX_BLOB_FILE = 0x00,
21 KBX_BLOB_DATA = 0x01
22 } keyring_blob_types;
24 /* OpenCDK compatible */
25 typedef enum
27 KEY_ATTR_NONE = 0,
28 KEY_ATTR_SHORT_KEYID = 3,
29 KEY_ATTR_KEYID = 4,
30 KEY_ATTR_FPR = 5
31 } key_attr_t;
33 int
34 gnutls_certificate_set_openpgp_key_file (gnutls_certificate_credentials_t
35 res, const char *CERTFILE,
36 const char *KEYFILE);
38 int gnutls_openpgp_count_key_names (const gnutls_datum_t * cert);
40 int gnutls_openpgp_add_keyring_mem (gnutls_datum_t * keyring,
41 const void *data, size_t len);
43 int gnutls_openpgp_add_keyring_file (gnutls_datum_t * keyring,
44 const char *name);
46 int gnutls_certificate_set_openpgp_keyring_file
47 (gnutls_certificate_credentials_t c, const char *file);
49 int
50 gnutls_certificate_set_openpgp_keyring_mem (gnutls_certificate_credentials_t
51 c, const opaque * data,
52 size_t dlen);
54 int gnutls_openpgp_get_key (gnutls_datum_t * key,
55 const gnutls_datum_t * keyring,
56 key_attr_t by, opaque * pattern);
58 int gnutls_openpgp_recv_key (const char *host,
59 short port, uint32_t keyid,
60 gnutls_datum_t * key);
62 /* internal */
63 int _gnutls_openpgp_raw_key_to_gcert (gnutls_cert * cert,
64 const gnutls_datum_t * raw);
66 int
67 _gnutls_openpgp_raw_privkey_to_gkey (gnutls_privkey * pkey,
68 const gnutls_datum_t * raw_key,
69 gnutls_openpgp_key_fmt_t format);
71 int
72 _gnutls_openpgp_request_key (gnutls_session_t,
73 gnutls_datum_t * ret,
74 const gnutls_certificate_credentials_t cred,
75 opaque * key_fpr, int key_fpr_size);
77 keybox_blob *kbx_read_blob (const gnutls_datum_t * keyring, size_t pos);
78 cdk_keydb_hd_t kbx_to_keydb (keybox_blob * blob);
79 void kbx_blob_release (keybox_blob * ctx);
81 int _gnutls_openpgp_verify_key (const gnutls_certificate_credentials_t,
82 const gnutls_datum_t * cert_list,
83 int cert_list_length, unsigned int *status);
84 int _gnutls_openpgp_fingerprint (const gnutls_datum_t * cert,
85 unsigned char *fpr, size_t * fprlen);
86 time_t _gnutls_openpgp_get_raw_key_creation_time (const gnutls_datum_t *
87 cert);
88 time_t _gnutls_openpgp_get_raw_key_expiration_time (const gnutls_datum_t *
89 cert);
91 #endif /*GNUTLS_OPENPGP_H */
93 #endif /*ENABLE_OPENPGP */