Tizen 2.0 Release
[external/libgnutls26.git] / doc / reference / html / gnutls-openpgp.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>openpgp</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GnuTLS API Reference Manual">
8 <link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
9 <link rel="prev" href="gnutls-pkcs12.html" title="pkcs12">
10 <link rel="next" href="gnutls-crypto.html" title="crypto">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gnutls-pkcs12.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="intro.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GnuTLS API Reference Manual</th>
21 <td><a accesskey="n" href="gnutls-crypto.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#gnutls-openpgp.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#gnutls-openpgp.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="gnutls-openpgp"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="gnutls-openpgp.top_of_page"></a>openpgp</span></h2>
34 <p>openpgp</p>
35 </td>
36 <td valign="top" align="right"></td>
37 </tr></table></div>
38 <div class="refsynopsisdiv">
39 <a name="gnutls-openpgp.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">enum                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t">gnutls_openpgp_crt_fmt_t</a>;
41 typedef             <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t">gnutls_openpgp_keyid_t</a>;
42 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-init" title="gnutls_openpgp_crt_init ()">gnutls_openpgp_crt_init</a>             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *key</code></em>);
43 <span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-deinit" title="gnutls_openpgp_crt_deinit ()">gnutls_openpgp_crt_deinit</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
44 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-import" title="gnutls_openpgp_crt_import ()">gnutls_openpgp_crt_import</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
45                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
46                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
47 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-export" title="gnutls_openpgp_crt_export ()">gnutls_openpgp_crt_export</a>           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
48                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
49                                                          <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
50                                                          <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
51 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-print" title="gnutls_openpgp_crt_print ()">gnutls_openpgp_crt_print</a>            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> cert</code></em>,
52                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
53                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);
54 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-usage" title="gnutls_openpgp_crt_get_key_usage ()">gnutls_openpgp_crt_get_key_usage</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
55                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *key_usage</code></em>);
56 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-fingerprint" title="gnutls_openpgp_crt_get_fingerprint ()">gnutls_openpgp_crt_get_fingerprint</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
57                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
58                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
59 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint" title="gnutls_openpgp_crt_get_subkey_fingerprint ()">gnutls_openpgp_crt_get_subkey_fingerprint</a>
60                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
61                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
62                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
63                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
64 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-name" title="gnutls_openpgp_crt_get_name ()">gnutls_openpgp_crt_get_name</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
65                                                          <em class="parameter"><code><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
66                                                          <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
67                                                          <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);
68 <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm" title="gnutls_openpgp_crt_get_pk_algorithm ()">gnutls_openpgp_crt_get_pk_algorithm</a>
69                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
70                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);
71 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-version" title="gnutls_openpgp_crt_get_version ()">gnutls_openpgp_crt_get_version</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
72 <span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time" title="gnutls_openpgp_crt_get_creation_time ()">gnutls_openpgp_crt_get_creation_time</a>
73                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
74 <span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time" title="gnutls_openpgp_crt_get_expiration_time ()">gnutls_openpgp_crt_get_expiration_time</a>
75                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
76 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id" title="gnutls_openpgp_crt_get_key_id ()">gnutls_openpgp_crt_get_key_id</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
77                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
78 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname" title="gnutls_openpgp_crt_check_hostname ()">gnutls_openpgp_crt_check_hostname</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
79                                                          <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>);
80 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status" title="gnutls_openpgp_crt_get_revoked_status ()">gnutls_openpgp_crt_get_revoked_status</a>
81                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
82 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count" title="gnutls_openpgp_crt_get_subkey_count ()">gnutls_openpgp_crt_get_subkey_count</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);
83 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx" title="gnutls_openpgp_crt_get_subkey_idx ()">gnutls_openpgp_crt_get_subkey_idx</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
84                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
85 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status" title="gnutls_openpgp_crt_get_subkey_revoked_status ()">gnutls_openpgp_crt_get_subkey_revoked_status</a>
86                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
87                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);
88 <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm" title="gnutls_openpgp_crt_get_subkey_pk_algorithm ()">gnutls_openpgp_crt_get_subkey_pk_algorithm</a>
89                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
90                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
91                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);
92 <span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time" title="gnutls_openpgp_crt_get_subkey_creation_time ()">gnutls_openpgp_crt_get_subkey_creation_time</a>
93                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
94                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);
95 <span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time" title="gnutls_openpgp_crt_get_subkey_expiration_time ()">gnutls_openpgp_crt_get_subkey_expiration_time</a>
96                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
97                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);
98 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-id" title="gnutls_openpgp_crt_get_subkey_id ()">gnutls_openpgp_crt_get_subkey_id</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
99                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
100                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
101 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage" title="gnutls_openpgp_crt_get_subkey_usage ()">gnutls_openpgp_crt_get_subkey_usage</a> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
102                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
103                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *key_usage</code></em>);
104 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_dsa_raw</a>
105                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
106                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
107                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
108                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
109                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
110                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);
111 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_rsa_raw</a>
112                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
113                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
114                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
115                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
116 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw" title="gnutls_openpgp_crt_get_pk_dsa_raw ()">gnutls_openpgp_crt_get_pk_dsa_raw</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
117                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
118                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
119                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
120                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);
121 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw" title="gnutls_openpgp_crt_get_pk_rsa_raw ()">gnutls_openpgp_crt_get_pk_rsa_raw</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
122                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
123                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
124 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id" title="gnutls_openpgp_crt_get_preferred_key_id ()">gnutls_openpgp_crt_get_preferred_key_id</a>
125                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
126                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
127 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" title="gnutls_openpgp_crt_set_preferred_key_id ()">gnutls_openpgp_crt_set_preferred_key_id</a>
128                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
129                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
130 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-init" title="gnutls_openpgp_privkey_init ()">gnutls_openpgp_privkey_init</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> *key</code></em>);
131 <span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-deinit" title="gnutls_openpgp_privkey_deinit ()">gnutls_openpgp_privkey_deinit</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);
132 <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm" title="gnutls_openpgp_privkey_get_pk_algorithm ()">gnutls_openpgp_privkey_get_pk_algorithm</a>
133                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
134                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);
135 <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>  <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-sec-param" title="gnutls_openpgp_privkey_sec_param ()">gnutls_openpgp_privkey_sec_param</a>    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);
136 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-import" title="gnutls_openpgp_privkey_import ()">gnutls_openpgp_privkey_import</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
137                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
138                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
139                                                          <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
140                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
141 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint" title="gnutls_openpgp_privkey_get_fingerprint ()">gnutls_openpgp_privkey_get_fingerprint</a>
142                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
143                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
144                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
145 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint" title="gnutls_openpgp_privkey_get_subkey_fingerprint ()">gnutls_openpgp_privkey_get_subkey_fingerprint</a>
146                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
147                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
148                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
149                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);
150 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id" title="gnutls_openpgp_privkey_get_key_id ()">gnutls_openpgp_privkey_get_key_id</a>   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
151                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
152 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count" title="gnutls_openpgp_privkey_get_subkey_count ()">gnutls_openpgp_privkey_get_subkey_count</a>
153                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);
154 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx" title="gnutls_openpgp_privkey_get_subkey_idx ()">gnutls_openpgp_privkey_get_subkey_idx</a>
155                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
156                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
157 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status" title="gnutls_openpgp_privkey_get_subkey_revoked_status ()">gnutls_openpgp_privkey_get_subkey_revoked_status</a>
158                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
159                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);
160 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status" title="gnutls_openpgp_privkey_get_revoked_status ()">gnutls_openpgp_privkey_get_revoked_status</a>
161                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);
162 <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm" title="gnutls_openpgp_privkey_get_subkey_pk_algorithm ()">gnutls_openpgp_privkey_get_subkey_pk_algorithm</a>
163                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
164                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
165                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);
166 <span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time" title="gnutls_openpgp_privkey_get_subkey_expiration_time ()">gnutls_openpgp_privkey_get_subkey_expiration_time</a>
167                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
168                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);
169 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id" title="gnutls_openpgp_privkey_get_subkey_id ()">gnutls_openpgp_privkey_get_subkey_id</a>
170                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
171                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
172                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
173 <span class="returnvalue">time_t</span>              <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time" title="gnutls_openpgp_privkey_get_subkey_creation_time ()">gnutls_openpgp_privkey_get_subkey_creation_time</a>
174                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
175                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);
176 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw" title="gnutls_openpgp_privkey_export_subkey_dsa_raw ()">gnutls_openpgp_privkey_export_subkey_dsa_raw</a>
177                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
178                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
179                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
180                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
181                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
182                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
183                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);
184 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw" title="gnutls_openpgp_privkey_export_subkey_rsa_raw ()">gnutls_openpgp_privkey_export_subkey_rsa_raw</a>
185                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
186                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
187                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
188                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
189                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
190                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
191                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
192                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);
193 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw" title="gnutls_openpgp_privkey_export_dsa_raw ()">gnutls_openpgp_privkey_export_dsa_raw</a>
194                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
195                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
196                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
197                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
198                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
199                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);
200 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw" title="gnutls_openpgp_privkey_export_rsa_raw ()">gnutls_openpgp_privkey_export_rsa_raw</a>
201                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
202                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
203                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
204                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
205                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
206                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
207                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);
208 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export" title="gnutls_openpgp_privkey_export ()">gnutls_openpgp_privkey_export</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
209                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
210                                                          <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
211                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
212                                                          <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
213                                                          <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
214 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id" title="gnutls_openpgp_privkey_set_preferred_key_id ()">gnutls_openpgp_privkey_set_preferred_key_id</a>
215                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
216                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
217 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id" title="gnutls_openpgp_privkey_get_preferred_key_id ()">gnutls_openpgp_privkey_get_preferred_key_id</a>
218                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
219                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);
220 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()">gnutls_openpgp_crt_get_auth_subkey</a>  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
221                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
222                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flag</code></em>);
223 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-init" title="gnutls_openpgp_keyring_init ()">gnutls_openpgp_keyring_init</a>         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> *keyring</code></em>);
224 <span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-deinit" title="gnutls_openpgp_keyring_deinit ()">gnutls_openpgp_keyring_deinit</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>);
225 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-import" title="gnutls_openpgp_keyring_import ()">gnutls_openpgp_keyring_import</a>       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
226                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
227                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
228 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-check-id" title="gnutls_openpgp_keyring_check_id ()">gnutls_openpgp_keyring_check_id</a>     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
229                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
230                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
231 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-ring" title="gnutls_openpgp_crt_verify_ring ()">gnutls_openpgp_crt_verify_ring</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
232                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
233                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
234                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *verify</code></em>);
235 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-self" title="gnutls_openpgp_crt_verify_self ()">gnutls_openpgp_crt_verify_self</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
236                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
237                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *verify</code></em>);
238 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt" title="gnutls_openpgp_keyring_get_crt ()">gnutls_openpgp_keyring_get_crt</a>      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
239                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
240                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *cert</code></em>);
241 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt-count" title="gnutls_openpgp_keyring_get_crt_count ()">gnutls_openpgp_keyring_get_crt_count</a>
242                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>);
243 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()">*gnutls_openpgp_recv_key_func</a>)     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
244                                                          <em class="parameter"><code>const unsigned <span class="type">char</span> *keyfpr</code></em>,
245                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> keyfpr_length</code></em>,
246                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>);
247 <span class="returnvalue">void</span>                <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()">gnutls_openpgp_set_recv_key_function</a>
248                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
249                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()"><span class="type">gnutls_openpgp_recv_key_func</span></a> func</code></em>);
250 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key" title="gnutls_certificate_set_openpgp_key ()">gnutls_certificate_set_openpgp_key</a>  (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
251                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
252                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>);
253 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file" title="gnutls_certificate_set_openpgp_key_file ()">gnutls_certificate_set_openpgp_key_file</a>
254                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
255                                                          <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
256                                                          <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
257                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
258 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem" title="gnutls_certificate_set_openpgp_key_mem ()">gnutls_certificate_set_openpgp_key_mem</a>
259                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
260                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
261                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
262                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
263 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2" title="gnutls_certificate_set_openpgp_key_file2 ()">gnutls_certificate_set_openpgp_key_file2</a>
264                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
265                                                          <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
266                                                          <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
267                                                          <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
268                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
269 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2" title="gnutls_certificate_set_openpgp_key_mem2 ()">gnutls_certificate_set_openpgp_key_mem2</a>
270                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
271                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
272                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
273                                                          <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
274                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
275 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem" title="gnutls_certificate_set_openpgp_keyring_mem ()">gnutls_certificate_set_openpgp_keyring_mem</a>
276                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
277                                                          <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
278                                                          <em class="parameter"><code><span class="type">size_t</span> dlen</code></em>,
279                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
280 <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-file" title="gnutls_certificate_set_openpgp_keyring_file ()">gnutls_certificate_set_openpgp_keyring_file</a>
281                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
282                                                          <em class="parameter"><code>const <span class="type">char</span> *file</code></em>,
283                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);
284 </pre>
285 </div>
286 <div class="refsect1">
287 <a name="gnutls-openpgp.description"></a><h2>Description</h2>
288 <p>
289 </p>
290 </div>
291 <div class="refsect1">
292 <a name="gnutls-openpgp.details"></a><h2>Details</h2>
293 <div class="refsect2">
294 <a name="gnutls-openpgp-crt-fmt-t"></a><h3>enum gnutls_openpgp_crt_fmt_t</h3>
295 <pre class="programlisting">typedef enum {
296     GNUTLS_OPENPGP_FMT_RAW,
297     GNUTLS_OPENPGP_FMT_BASE64
298 } gnutls_openpgp_crt_fmt_t;
299 </pre>
300 <p>
301 Enumeration of different OpenPGP key formats.
302 </p>
303 <div class="variablelist"><table border="0">
304 <col align="left" valign="top">
305 <tbody>
306 <tr>
307 <td><p><a name="GNUTLS-OPENPGP-FMT-RAW:CAPS"></a><span class="term"><code class="literal">GNUTLS_OPENPGP_FMT_RAW</code></span></p></td>
308 <td>OpenPGP certificate in raw format.
309 </td>
310 </tr>
311 <tr>
312 <td><p><a name="GNUTLS-OPENPGP-FMT-BASE64:CAPS"></a><span class="term"><code class="literal">GNUTLS_OPENPGP_FMT_BASE64</code></span></p></td>
313 <td>OpenPGP certificate in base64 format.
314 </td>
315 </tr>
316 </tbody>
317 </table></div>
318 </div>
319 <hr>
320 <div class="refsect2">
321 <a name="gnutls-openpgp-keyid-t"></a><h3>gnutls_openpgp_keyid_t</h3>
322 <pre class="programlisting">  typedef unsigned char gnutls_openpgp_keyid_t[GNUTLS_OPENPGP_KEYID_SIZE];
323 </pre>
324 <p>
325 </p>
326 </div>
327 <hr>
328 <div class="refsect2">
329 <a name="gnutls-openpgp-crt-init"></a><h3>gnutls_openpgp_crt_init ()</h3>
330 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_init             (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *key</code></em>);</pre>
331 <p>
332 This function will initialize an OpenPGP key structure.
333 </p>
334 <div class="variablelist"><table border="0">
335 <col align="left" valign="top">
336 <tbody>
337 <tr>
338 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
339 <td>The structure to be initialized</td>
340 </tr>
341 <tr>
342 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
343 <td>
344 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
345 </tr>
346 </tbody>
347 </table></div>
348 </div>
349 <hr>
350 <div class="refsect2">
351 <a name="gnutls-openpgp-crt-deinit"></a><h3>gnutls_openpgp_crt_deinit ()</h3>
352 <pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_crt_deinit           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
353 <p>
354 This function will deinitialize a key structure.
355 </p>
356 <div class="variablelist"><table border="0">
357 <col align="left" valign="top">
358 <tbody><tr>
359 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
360 <td>The structure to be initialized</td>
361 </tr></tbody>
362 </table></div>
363 </div>
364 <hr>
365 <div class="refsect2">
366 <a name="gnutls-openpgp-crt-import"></a><h3>gnutls_openpgp_crt_import ()</h3>
367 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_import           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
368                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
369                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
370 <p>
371 This function will convert the given RAW or Base64 encoded key to
372 the native <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> format. The output will be stored
373 in 'key'.
374 </p>
375 <div class="variablelist"><table border="0">
376 <col align="left" valign="top">
377 <tbody>
378 <tr>
379 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
380 <td>The structure to store the parsed key.</td>
381 </tr>
382 <tr>
383 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
384 <td>The RAW or BASE64 encoded key.</td>
385 </tr>
386 <tr>
387 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
388 <td>One of gnutls_openpgp_crt_fmt_t elements.</td>
389 </tr>
390 <tr>
391 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
392 <td>
393 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
394 </tr>
395 </tbody>
396 </table></div>
397 </div>
398 <hr>
399 <div class="refsect2">
400 <a name="gnutls-openpgp-crt-export"></a><h3>gnutls_openpgp_crt_export ()</h3>
401 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_export           (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
402                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
403                                                          <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
404                                                          <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
405 <p>
406 This function will convert the given key to RAW or Base64 format.
407 If the buffer provided is not long enough to hold the output, then
408 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be returned.
409 </p>
410 <div class="variablelist"><table border="0">
411 <col align="left" valign="top">
412 <tbody>
413 <tr>
414 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
415 <td>Holds the key.</td>
416 </tr>
417 <tr>
418 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
419 <td>One of gnutls_openpgp_crt_fmt_t elements.</td>
420 </tr>
421 <tr>
422 <td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
423 <td>will contain the key base64 encoded or raw</td>
424 </tr>
425 <tr>
426 <td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
427 <td>holds the size of output_data (and will
428 be replaced by the actual size of parameters)</td>
429 </tr>
430 <tr>
431 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
432 <td>
433 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
434 </tr>
435 </tbody>
436 </table></div>
437 </div>
438 <hr>
439 <div class="refsect2">
440 <a name="gnutls-openpgp-crt-print"></a><h3>gnutls_openpgp_crt_print ()</h3>
441 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_print            (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> cert</code></em>,
442                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
443                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *out</code></em>);</pre>
444 <p>
445 This function will pretty print an OpenPGP certificate, suitable
446 for display to a human.
447 </p>
448 <p>
449 The format should be zero for future compatibility.
450 </p>
451 <p>
452 The output <em class="parameter"><code>out</code></em> needs to be deallocate using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>.
453 </p>
454 <div class="variablelist"><table border="0">
455 <col align="left" valign="top">
456 <tbody>
457 <tr>
458 <td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
459 <td>The structure to be printed</td>
460 </tr>
461 <tr>
462 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
463 <td>Indicate the format to use</td>
464 </tr>
465 <tr>
466 <td><p><span class="term"><em class="parameter"><code>out</code></em> :</span></p></td>
467 <td>Newly allocated datum with zero terminated string.</td>
468 </tr>
469 <tr>
470 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
471 <td>
472 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
473 </tr>
474 </tbody>
475 </table></div>
476 </div>
477 <hr>
478 <div class="refsect2">
479 <a name="gnutls-openpgp-crt-get-key-usage"></a><h3>gnutls_openpgp_crt_get_key_usage ()</h3>
480 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_key_usage    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
481                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *key_usage</code></em>);</pre>
482 <p>
483 This function will return certificate's key usage, by checking the
484 key algorithm. The key usage value will ORed values of the:
485 <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>.
486 </p>
487 <div class="variablelist"><table border="0">
488 <col align="left" valign="top">
489 <tbody>
490 <tr>
491 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
492 <td>should contain a gnutls_openpgp_crt_t structure</td>
493 </tr>
494 <tr>
495 <td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
496 <td>where the key usage bits will be stored</td>
497 </tr>
498 <tr>
499 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
500 <td>
501 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
502 </tr>
503 </tbody>
504 </table></div>
505 </div>
506 <hr>
507 <div class="refsect2">
508 <a name="gnutls-openpgp-crt-get-fingerprint"></a><h3>gnutls_openpgp_crt_get_fingerprint ()</h3>
509 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_fingerprint  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
510                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
511                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
512 <p>
513 Get key fingerprint.  Depending on the algorithm, the fingerprint
514 can be 16 or 20 bytes.
515 </p>
516 <div class="variablelist"><table border="0">
517 <col align="left" valign="top">
518 <tbody>
519 <tr>
520 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
521 <td>the raw data that contains the OpenPGP public key.</td>
522 </tr>
523 <tr>
524 <td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
525 <td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
526 </tr>
527 <tr>
528 <td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
529 <td>the integer to save the length of the fingerprint.</td>
530 </tr>
531 <tr>
532 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
533 <td>On success, 0 is returned.  Otherwise, an error code.</td>
534 </tr>
535 </tbody>
536 </table></div>
537 </div>
538 <hr>
539 <div class="refsect2">
540 <a name="gnutls-openpgp-crt-get-subkey-fingerprint"></a><h3>gnutls_openpgp_crt_get_subkey_fingerprint ()</h3>
541 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_fingerprint
542                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
543                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
544                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
545                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
546 <p>
547 Get key fingerprint of a subkey.  Depending on the algorithm, the
548 fingerprint can be 16 or 20 bytes.
549 </p>
550 <div class="variablelist"><table border="0">
551 <col align="left" valign="top">
552 <tbody>
553 <tr>
554 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
555 <td>the raw data that contains the OpenPGP public key.</td>
556 </tr>
557 <tr>
558 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
559 <td>the subkey index</td>
560 </tr>
561 <tr>
562 <td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
563 <td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
564 </tr>
565 <tr>
566 <td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
567 <td>the integer to save the length of the fingerprint.</td>
568 </tr>
569 <tr>
570 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
571 <td>On success, 0 is returned.  Otherwise, an error code.</td>
572 </tr>
573 </tbody>
574 </table></div>
575 <p class="since">Since 2.4.0</p>
576 </div>
577 <hr>
578 <div class="refsect2">
579 <a name="gnutls-openpgp-crt-get-name"></a><h3>gnutls_openpgp_crt_get_name ()</h3>
580 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_name         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
581                                                          <em class="parameter"><code><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
582                                                          <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
583                                                          <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
584 <p>
585 Extracts the userID from the parsed OpenPGP key.
586 </p>
587 <div class="variablelist"><table border="0">
588 <col align="left" valign="top">
589 <tbody>
590 <tr>
591 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
592 <td>the structure that contains the OpenPGP public key.</td>
593 </tr>
594 <tr>
595 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
596 <td>the index of the ID to extract</td>
597 </tr>
598 <tr>
599 <td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
600 <td>a pointer to a structure to hold the name, may be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
601 to only get the <em class="parameter"><code>sizeof_buf</code></em>.</td>
602 </tr>
603 <tr>
604 <td><p><span class="term"><em class="parameter"><code>sizeof_buf</code></em> :</span></p></td>
605 <td>holds the maximum size of <em class="parameter"><code>buf</code></em>, on return hold the
606 actual/required size of <em class="parameter"><code>buf</code></em>.</td>
607 </tr>
608 <tr>
609 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
610 <td>
611 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, and if the index of the ID
612 does not exist <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>, or an
613 error code.</td>
614 </tr>
615 </tbody>
616 </table></div>
617 </div>
618 <hr>
619 <div class="refsect2">
620 <a name="gnutls-openpgp-crt-get-pk-algorithm"></a><h3>gnutls_openpgp_crt_get_pk_algorithm ()</h3>
621 <pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_crt_get_pk_algorithm
622                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
623                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);</pre>
624 <p>
625 This function will return the public key algorithm of an OpenPGP
626 certificate.
627 </p>
628 <p>
629 If bits is non null, it should have enough size to hold the parameters
630 size in bits. For RSA the bits returned is the modulus.
631 For DSA the bits returned are of the public exponent.
632 </p>
633 <div class="variablelist"><table border="0">
634 <col align="left" valign="top">
635 <tbody>
636 <tr>
637 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
638 <td>is an OpenPGP key</td>
639 </tr>
640 <tr>
641 <td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
642 <td>if bits is non null it will hold the size of the parameters' in bits</td>
643 </tr>
644 <tr>
645 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
646 <td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
647 success, or GNUTLS_PK_UNKNOWN on error.</td>
648 </tr>
649 </tbody>
650 </table></div>
651 </div>
652 <hr>
653 <div class="refsect2">
654 <a name="gnutls-openpgp-crt-get-version"></a><h3>gnutls_openpgp_crt_get_version ()</h3>
655 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_version      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
656 <p>
657 Extract the version of the OpenPGP key.
658 </p>
659 <div class="variablelist"><table border="0">
660 <col align="left" valign="top">
661 <tbody>
662 <tr>
663 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
664 <td>the structure that contains the OpenPGP public key.</td>
665 </tr>
666 <tr>
667 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
668 <td>the version number is returned, or a negative value on errors.</td>
669 </tr>
670 </tbody>
671 </table></div>
672 </div>
673 <hr>
674 <div class="refsect2">
675 <a name="gnutls-openpgp-crt-get-creation-time"></a><h3>gnutls_openpgp_crt_get_creation_time ()</h3>
676 <pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_creation_time
677                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
678 <p>
679 Get key creation time.
680 </p>
681 <div class="variablelist"><table border="0">
682 <col align="left" valign="top">
683 <tbody>
684 <tr>
685 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
686 <td>the structure that contains the OpenPGP public key.</td>
687 </tr>
688 <tr>
689 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
690 <td>the timestamp when the OpenPGP key was created.</td>
691 </tr>
692 </tbody>
693 </table></div>
694 </div>
695 <hr>
696 <div class="refsect2">
697 <a name="gnutls-openpgp-crt-get-expiration-time"></a><h3>gnutls_openpgp_crt_get_expiration_time ()</h3>
698 <pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_expiration_time
699                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
700 <p>
701 Get key expiration time.  A value of '0' means that the key doesn't
702 expire at all.
703 </p>
704 <div class="variablelist"><table border="0">
705 <col align="left" valign="top">
706 <tbody>
707 <tr>
708 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
709 <td>the structure that contains the OpenPGP public key.</td>
710 </tr>
711 <tr>
712 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
713 <td>the time when the OpenPGP key expires.</td>
714 </tr>
715 </tbody>
716 </table></div>
717 </div>
718 <hr>
719 <div class="refsect2">
720 <a name="gnutls-openpgp-crt-get-key-id"></a><h3>gnutls_openpgp_crt_get_key_id ()</h3>
721 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_key_id       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
722                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
723 <p>
724 Get key id string.
725 </p>
726 <div class="variablelist"><table border="0">
727 <col align="left" valign="top">
728 <tbody>
729 <tr>
730 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
731 <td>the structure that contains the OpenPGP public key.</td>
732 </tr>
733 <tr>
734 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
735 <td>the buffer to save the keyid.</td>
736 </tr>
737 <tr>
738 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
739 <td>the 64-bit keyID of the OpenPGP key.</td>
740 </tr>
741 </tbody>
742 </table></div>
743 <p class="since">Since 2.4.0</p>
744 </div>
745 <hr>
746 <div class="refsect2">
747 <a name="gnutls-openpgp-crt-check-hostname"></a><h3>gnutls_openpgp_crt_check_hostname ()</h3>
748 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_check_hostname   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
749                                                          <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>);</pre>
750 <p>
751 This function will check if the given key's owner matches the
752 given hostname. This is a basic implementation of the matching
753 described in RFC2818 (HTTPS), which takes into account wildcards.
754 </p>
755 <div class="variablelist"><table border="0">
756 <col align="left" valign="top">
757 <tbody>
758 <tr>
759 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
760 <td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> structure</td>
761 </tr>
762 <tr>
763 <td><p><span class="term"><em class="parameter"><code>hostname</code></em> :</span></p></td>
764 <td>A null terminated string that contains a DNS name</td>
765 </tr>
766 <tr>
767 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
768 <td>
769 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
770 </tr>
771 </tbody>
772 </table></div>
773 </div>
774 <hr>
775 <div class="refsect2">
776 <a name="gnutls-openpgp-crt-get-revoked-status"></a><h3>gnutls_openpgp_crt_get_revoked_status ()</h3>
777 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_revoked_status
778                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
779 <p>
780 Get revocation status of key.
781 </p>
782 <div class="variablelist"><table border="0">
783 <col align="left" valign="top">
784 <tbody>
785 <tr>
786 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
787 <td>the structure that contains the OpenPGP public key.</td>
788 </tr>
789 <tr>
790 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
791 <td>true (1) if the key has been revoked, or false (0) if it
792 has not.</td>
793 </tr>
794 </tbody>
795 </table></div>
796 <p class="since">Since 2.4.0</p>
797 </div>
798 <hr>
799 <div class="refsect2">
800 <a name="gnutls-openpgp-crt-get-subkey-count"></a><h3>gnutls_openpgp_crt_get_subkey_count ()</h3>
801 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_count (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
802 <p>
803 This function will return the number of subkeys present in the
804 given OpenPGP certificate.
805 </p>
806 <div class="variablelist"><table border="0">
807 <col align="left" valign="top">
808 <tbody>
809 <tr>
810 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
811 <td>is an OpenPGP key</td>
812 </tr>
813 <tr>
814 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
815 <td>the number of subkeys, or a negative value on error.</td>
816 </tr>
817 </tbody>
818 </table></div>
819 <p class="since">Since 2.4.0</p>
820 </div>
821 <hr>
822 <div class="refsect2">
823 <a name="gnutls-openpgp-crt-get-subkey-idx"></a><h3>gnutls_openpgp_crt_get_subkey_idx ()</h3>
824 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_idx   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
825                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
826 <p>
827 Get subkey's index.
828 </p>
829 <div class="variablelist"><table border="0">
830 <col align="left" valign="top">
831 <tbody>
832 <tr>
833 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
834 <td>the structure that contains the OpenPGP public key.</td>
835 </tr>
836 <tr>
837 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
838 <td>the keyid.</td>
839 </tr>
840 <tr>
841 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
842 <td>the index of the subkey or a negative error value.</td>
843 </tr>
844 </tbody>
845 </table></div>
846 <p class="since">Since 2.4.0</p>
847 </div>
848 <hr>
849 <div class="refsect2">
850 <a name="gnutls-openpgp-crt-get-subkey-revoked-status"></a><h3>gnutls_openpgp_crt_get_subkey_revoked_status ()</h3>
851 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_revoked_status
852                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
853                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);</pre>
854 <p>
855 Get subkey revocation status.  A negative value indicates an error.
856 </p>
857 <div class="variablelist"><table border="0">
858 <col align="left" valign="top">
859 <tbody>
860 <tr>
861 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
862 <td>the structure that contains the OpenPGP public key.</td>
863 </tr>
864 <tr>
865 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
866 <td>is the subkey index</td>
867 </tr>
868 <tr>
869 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
870 <td>true (1) if the key has been revoked, or false (0) if it
871 has not.</td>
872 </tr>
873 </tbody>
874 </table></div>
875 <p class="since">Since 2.4.0</p>
876 </div>
877 <hr>
878 <div class="refsect2">
879 <a name="gnutls-openpgp-crt-get-subkey-pk-algorithm"></a><h3>gnutls_openpgp_crt_get_subkey_pk_algorithm ()</h3>
880 <pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_crt_get_subkey_pk_algorithm
881                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
882                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
883                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);</pre>
884 <p>
885 This function will return the public key algorithm of a subkey of an OpenPGP
886 certificate.
887 </p>
888 <p>
889 If bits is non null, it should have enough size to hold the
890 parameters size in bits.  For RSA the bits returned is the modulus.
891 For DSA the bits returned are of the public exponent.
892 </p>
893 <div class="variablelist"><table border="0">
894 <col align="left" valign="top">
895 <tbody>
896 <tr>
897 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
898 <td>is an OpenPGP key</td>
899 </tr>
900 <tr>
901 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
902 <td>is the subkey index</td>
903 </tr>
904 <tr>
905 <td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
906 <td>if bits is non null it will hold the size of the parameters' in bits</td>
907 </tr>
908 <tr>
909 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
910 <td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
911 success, or GNUTLS_PK_UNKNOWN on error.</td>
912 </tr>
913 </tbody>
914 </table></div>
915 <p class="since">Since 2.4.0</p>
916 </div>
917 <hr>
918 <div class="refsect2">
919 <a name="gnutls-openpgp-crt-get-subkey-creation-time"></a><h3>gnutls_openpgp_crt_get_subkey_creation_time ()</h3>
920 <pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_subkey_creation_time
921                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
922                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);</pre>
923 <p>
924 Get subkey creation time.
925 </p>
926 <div class="variablelist"><table border="0">
927 <col align="left" valign="top">
928 <tbody>
929 <tr>
930 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
931 <td>the structure that contains the OpenPGP public key.</td>
932 </tr>
933 <tr>
934 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
935 <td>the subkey index</td>
936 </tr>
937 <tr>
938 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
939 <td>the timestamp when the OpenPGP sub-key was created.</td>
940 </tr>
941 </tbody>
942 </table></div>
943 <p class="since">Since 2.4.0</p>
944 </div>
945 <hr>
946 <div class="refsect2">
947 <a name="gnutls-openpgp-crt-get-subkey-expiration-time"></a><h3>gnutls_openpgp_crt_get_subkey_expiration_time ()</h3>
948 <pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_crt_get_subkey_expiration_time
949                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
950                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);</pre>
951 <p>
952 Get subkey expiration time.  A value of '0' means that the key
953 doesn't expire at all.
954 </p>
955 <div class="variablelist"><table border="0">
956 <col align="left" valign="top">
957 <tbody>
958 <tr>
959 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
960 <td>the structure that contains the OpenPGP public key.</td>
961 </tr>
962 <tr>
963 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
964 <td>the subkey index</td>
965 </tr>
966 <tr>
967 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
968 <td>the time when the OpenPGP key expires.</td>
969 </tr>
970 </tbody>
971 </table></div>
972 <p class="since">Since 2.4.0</p>
973 </div>
974 <hr>
975 <div class="refsect2">
976 <a name="gnutls-openpgp-crt-get-subkey-id"></a><h3>gnutls_openpgp_crt_get_subkey_id ()</h3>
977 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_id    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
978                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
979                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
980 <p>
981 Get the subkey's key-id.
982 </p>
983 <div class="variablelist"><table border="0">
984 <col align="left" valign="top">
985 <tbody>
986 <tr>
987 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
988 <td>the structure that contains the OpenPGP public key.</td>
989 </tr>
990 <tr>
991 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
992 <td>the subkey index</td>
993 </tr>
994 <tr>
995 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
996 <td>the buffer to save the keyid.</td>
997 </tr>
998 <tr>
999 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1000 <td>the 64-bit keyID of the OpenPGP key.</td>
1001 </tr>
1002 </tbody>
1003 </table></div>
1004 </div>
1005 <hr>
1006 <div class="refsect2">
1007 <a name="gnutls-openpgp-crt-get-subkey-usage"></a><h3>gnutls_openpgp_crt_get_subkey_usage ()</h3>
1008 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_usage (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
1009                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1010                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *key_usage</code></em>);</pre>
1011 <p>
1012 This function will return certificate's key usage, by checking the
1013 key algorithm.  The key usage value will ORed values of
1014 <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>.
1015 </p>
1016 <p>
1017 A negative value may be returned in case of parsing error.
1018 </p>
1019 <div class="variablelist"><table border="0">
1020 <col align="left" valign="top">
1021 <tbody>
1022 <tr>
1023 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1024 <td>should contain a gnutls_openpgp_crt_t structure</td>
1025 </tr>
1026 <tr>
1027 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1028 <td>the subkey index</td>
1029 </tr>
1030 <tr>
1031 <td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
1032 <td>where the key usage bits will be stored</td>
1033 </tr>
1034 <tr>
1035 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1036 <td>key usage value.</td>
1037 </tr>
1038 </tbody>
1039 </table></div>
1040 <p class="since">Since 2.4.0</p>
1041 </div>
1042 <hr>
1043 <div class="refsect2">
1044 <a name="gnutls-openpgp-crt-get-subkey-pk-dsa-raw"></a><h3>gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()</h3>
1045 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_pk_dsa_raw
1046                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
1047                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1048                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
1049                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
1050                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
1051                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
1052 <p>
1053 This function will export the DSA public key's parameters found in
1054 the given certificate.  The new parameters will be allocated using
1055 <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1056 </p>
1057 <div class="variablelist"><table border="0">
1058 <col align="left" valign="top">
1059 <tbody>
1060 <tr>
1061 <td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
1062 <td>Holds the certificate</td>
1063 </tr>
1064 <tr>
1065 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1066 <td>Is the subkey index</td>
1067 </tr>
1068 <tr>
1069 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
1070 <td>will hold the p</td>
1071 </tr>
1072 <tr>
1073 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
1074 <td>will hold the q</td>
1075 </tr>
1076 <tr>
1077 <td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
1078 <td>will hold the g</td>
1079 </tr>
1080 <tr>
1081 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
1082 <td>will hold the y</td>
1083 </tr>
1084 <tr>
1085 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1086 <td>
1087 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1088 </tr>
1089 </tbody>
1090 </table></div>
1091 <p class="since">Since 2.4.0</p>
1092 </div>
1093 <hr>
1094 <div class="refsect2">
1095 <a name="gnutls-openpgp-crt-get-subkey-pk-rsa-raw"></a><h3>gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()</h3>
1096 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_subkey_pk_rsa_raw
1097                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
1098                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1099                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
1100                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
1101 <p>
1102 This function will export the RSA public key's parameters found in
1103 the given structure.  The new parameters will be allocated using
1104 <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1105 </p>
1106 <div class="variablelist"><table border="0">
1107 <col align="left" valign="top">
1108 <tbody>
1109 <tr>
1110 <td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
1111 <td>Holds the certificate</td>
1112 </tr>
1113 <tr>
1114 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1115 <td>Is the subkey index</td>
1116 </tr>
1117 <tr>
1118 <td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
1119 <td>will hold the modulus</td>
1120 </tr>
1121 <tr>
1122 <td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
1123 <td>will hold the public exponent</td>
1124 </tr>
1125 <tr>
1126 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1127 <td>
1128 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1129 </tr>
1130 </tbody>
1131 </table></div>
1132 <p class="since">Since 2.4.0</p>
1133 </div>
1134 <hr>
1135 <div class="refsect2">
1136 <a name="gnutls-openpgp-crt-get-pk-dsa-raw"></a><h3>gnutls_openpgp_crt_get_pk_dsa_raw ()</h3>
1137 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_pk_dsa_raw   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
1138                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
1139                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
1140                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
1141                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
1142 <p>
1143 This function will export the DSA public key's parameters found in
1144 the given certificate.  The new parameters will be allocated using
1145 <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1146 </p>
1147 <div class="variablelist"><table border="0">
1148 <col align="left" valign="top">
1149 <tbody>
1150 <tr>
1151 <td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
1152 <td>Holds the certificate</td>
1153 </tr>
1154 <tr>
1155 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
1156 <td>will hold the p</td>
1157 </tr>
1158 <tr>
1159 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
1160 <td>will hold the q</td>
1161 </tr>
1162 <tr>
1163 <td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
1164 <td>will hold the g</td>
1165 </tr>
1166 <tr>
1167 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
1168 <td>will hold the y</td>
1169 </tr>
1170 <tr>
1171 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1172 <td>
1173 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1174 </tr>
1175 </tbody>
1176 </table></div>
1177 <p class="since">Since 2.4.0</p>
1178 </div>
1179 <hr>
1180 <div class="refsect2">
1181 <a name="gnutls-openpgp-crt-get-pk-rsa-raw"></a><h3>gnutls_openpgp_crt_get_pk_rsa_raw ()</h3>
1182 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_pk_rsa_raw   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
1183                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
1184                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
1185 <p>
1186 This function will export the RSA public key's parameters found in
1187 the given structure.  The new parameters will be allocated using
1188 <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1189 </p>
1190 <div class="variablelist"><table border="0">
1191 <col align="left" valign="top">
1192 <tbody>
1193 <tr>
1194 <td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
1195 <td>Holds the certificate</td>
1196 </tr>
1197 <tr>
1198 <td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
1199 <td>will hold the modulus</td>
1200 </tr>
1201 <tr>
1202 <td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
1203 <td>will hold the public exponent</td>
1204 </tr>
1205 <tr>
1206 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1207 <td>
1208 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1209 </tr>
1210 </tbody>
1211 </table></div>
1212 <p class="since">Since 2.4.0</p>
1213 </div>
1214 <hr>
1215 <div class="refsect2">
1216 <a name="gnutls-openpgp-crt-get-preferred-key-id"></a><h3>gnutls_openpgp_crt_get_preferred_key_id ()</h3>
1217 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_preferred_key_id
1218                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
1219                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
1220 <p>
1221 Get preferred key id.  If it hasn't been set it returns
1222 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>.
1223 </p>
1224 <div class="variablelist"><table border="0">
1225 <col align="left" valign="top">
1226 <tbody>
1227 <tr>
1228 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1229 <td>the structure that contains the OpenPGP public key.</td>
1230 </tr>
1231 <tr>
1232 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
1233 <td>the struct to save the keyid.</td>
1234 </tr>
1235 <tr>
1236 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1237 <td>the 64-bit preferred keyID of the OpenPGP key.</td>
1238 </tr>
1239 </tbody>
1240 </table></div>
1241 </div>
1242 <hr>
1243 <div class="refsect2">
1244 <a name="gnutls-openpgp-crt-set-preferred-key-id"></a><h3>gnutls_openpgp_crt_set_preferred_key_id ()</h3>
1245 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_set_preferred_key_id
1246                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
1247                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
1248 <p>
1249 This allows setting a preferred key id for the given certificate.
1250 This key will be used by functions that involve key handling.
1251 </p>
1252 <div class="variablelist"><table border="0">
1253 <col align="left" valign="top">
1254 <tbody>
1255 <tr>
1256 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1257 <td>the structure that contains the OpenPGP public key.</td>
1258 </tr>
1259 <tr>
1260 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
1261 <td>the selected keyid</td>
1262 </tr>
1263 <tr>
1264 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1265 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (zero) is returned,
1266 otherwise an error code is returned.</td>
1267 </tr>
1268 </tbody>
1269 </table></div>
1270 </div>
1271 <hr>
1272 <div class="refsect2">
1273 <a name="gnutls-openpgp-privkey-init"></a><h3>gnutls_openpgp_privkey_init ()</h3>
1274 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_init         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> *key</code></em>);</pre>
1275 <p>
1276 This function will initialize an OpenPGP key structure.
1277 </p>
1278 <div class="variablelist"><table border="0">
1279 <col align="left" valign="top">
1280 <tbody>
1281 <tr>
1282 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1283 <td>The structure to be initialized</td>
1284 </tr>
1285 <tr>
1286 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1287 <td>
1288 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
1289 </tr>
1290 </tbody>
1291 </table></div>
1292 </div>
1293 <hr>
1294 <div class="refsect2">
1295 <a name="gnutls-openpgp-privkey-deinit"></a><h3>gnutls_openpgp_privkey_deinit ()</h3>
1296 <pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_privkey_deinit       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
1297 <p>
1298 This function will deinitialize a key structure.
1299 </p>
1300 <div class="variablelist"><table border="0">
1301 <col align="left" valign="top">
1302 <tbody><tr>
1303 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1304 <td>The structure to be initialized</td>
1305 </tr></tbody>
1306 </table></div>
1307 </div>
1308 <hr>
1309 <div class="refsect2">
1310 <a name="gnutls-openpgp-privkey-get-pk-algorithm"></a><h3>gnutls_openpgp_privkey_get_pk_algorithm ()</h3>
1311 <pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_privkey_get_pk_algorithm
1312                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1313                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);</pre>
1314 <p>
1315 This function will return the public key algorithm of an OpenPGP
1316 certificate.
1317 </p>
1318 <p>
1319 If bits is non null, it should have enough size to hold the parameters
1320 size in bits. For RSA the bits returned is the modulus.
1321 For DSA the bits returned are of the public exponent.
1322 </p>
1323 <div class="variablelist"><table border="0">
1324 <col align="left" valign="top">
1325 <tbody>
1326 <tr>
1327 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1328 <td>is an OpenPGP key</td>
1329 </tr>
1330 <tr>
1331 <td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
1332 <td>if bits is non null it will hold the size of the parameters' in bits</td>
1333 </tr>
1334 <tr>
1335 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1336 <td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
1337 success, or a negative value on error.</td>
1338 </tr>
1339 </tbody>
1340 </table></div>
1341 <p class="since">Since 2.4.0</p>
1342 </div>
1343 <hr>
1344 <div class="refsect2">
1345 <a name="gnutls-openpgp-privkey-sec-param"></a><h3>gnutls_openpgp_privkey_sec_param ()</h3>
1346 <pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>  gnutls_openpgp_privkey_sec_param    (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
1347 <p>
1348 This function will return the security parameter appropriate with
1349 this private key.
1350 </p>
1351 <div class="variablelist"><table border="0">
1352 <col align="left" valign="top">
1353 <tbody>
1354 <tr>
1355 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1356 <td>a key structure</td>
1357 </tr>
1358 <tr>
1359 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1360 <td>On success, a valid security parameter is returned otherwise
1361 <a class="link" href="gnutls-gnutls.html#GNUTLS-SEC-PARAM-UNKNOWN:CAPS"><code class="literal">GNUTLS_SEC_PARAM_UNKNOWN</code></a> is returned.</td>
1362 </tr>
1363 </tbody>
1364 </table></div>
1365 </div>
1366 <hr>
1367 <div class="refsect2">
1368 <a name="gnutls-openpgp-privkey-import"></a><h3>gnutls_openpgp_privkey_import ()</h3>
1369 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_import       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1370                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
1371                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
1372                                                          <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
1373                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
1374 <p>
1375 This function will convert the given RAW or Base64 encoded key to
1376 the native gnutls_openpgp_privkey_t format.  The output will be
1377 stored in 'key'.
1378 </p>
1379 <div class="variablelist"><table border="0">
1380 <col align="left" valign="top">
1381 <tbody>
1382 <tr>
1383 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1384 <td>The structure to store the parsed key.</td>
1385 </tr>
1386 <tr>
1387 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1388 <td>The RAW or BASE64 encoded key.</td>
1389 </tr>
1390 <tr>
1391 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1392 <td>One of <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> elements.</td>
1393 </tr>
1394 <tr>
1395 <td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
1396 <td>not used for now</td>
1397 </tr>
1398 <tr>
1399 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
1400 <td>should be zero</td>
1401 </tr>
1402 <tr>
1403 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1404 <td>
1405 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
1406 </tr>
1407 </tbody>
1408 </table></div>
1409 </div>
1410 <hr>
1411 <div class="refsect2">
1412 <a name="gnutls-openpgp-privkey-get-fingerprint"></a><h3>gnutls_openpgp_privkey_get_fingerprint ()</h3>
1413 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_fingerprint
1414                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1415                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
1416                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
1417 <p>
1418 Get the fingerprint of the OpenPGP key. Depends on the
1419 algorithm, the fingerprint can be 16 or 20 bytes.
1420 </p>
1421 <div class="variablelist"><table border="0">
1422 <col align="left" valign="top">
1423 <tbody>
1424 <tr>
1425 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1426 <td>the raw data that contains the OpenPGP secret key.</td>
1427 </tr>
1428 <tr>
1429 <td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
1430 <td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
1431 </tr>
1432 <tr>
1433 <td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
1434 <td>the integer to save the length of the fingerprint.</td>
1435 </tr>
1436 <tr>
1437 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1438 <td>On success, 0 is returned, or an error code.</td>
1439 </tr>
1440 </tbody>
1441 </table></div>
1442 <p class="since">Since 2.4.0</p>
1443 </div>
1444 <hr>
1445 <div class="refsect2">
1446 <a name="gnutls-openpgp-privkey-get-subkey-fingerprint"></a><h3>gnutls_openpgp_privkey_get_subkey_fingerprint ()</h3>
1447 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_subkey_fingerprint
1448                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1449                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1450                                                          <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
1451                                                          <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
1452 <p>
1453 Get the fingerprint of an OpenPGP subkey.  Depends on the
1454 algorithm, the fingerprint can be 16 or 20 bytes.
1455 </p>
1456 <div class="variablelist"><table border="0">
1457 <col align="left" valign="top">
1458 <tbody>
1459 <tr>
1460 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1461 <td>the raw data that contains the OpenPGP secret key.</td>
1462 </tr>
1463 <tr>
1464 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1465 <td>the subkey index</td>
1466 </tr>
1467 <tr>
1468 <td><p><span class="term"><em class="parameter"><code>fpr</code></em> :</span></p></td>
1469 <td>the buffer to save the fingerprint, must hold at least 20 bytes.</td>
1470 </tr>
1471 <tr>
1472 <td><p><span class="term"><em class="parameter"><code>fprlen</code></em> :</span></p></td>
1473 <td>the integer to save the length of the fingerprint.</td>
1474 </tr>
1475 <tr>
1476 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1477 <td>On success, 0 is returned, or an error code.</td>
1478 </tr>
1479 </tbody>
1480 </table></div>
1481 <p class="since">Since 2.4.0</p>
1482 </div>
1483 <hr>
1484 <div class="refsect2">
1485 <a name="gnutls-openpgp-privkey-get-key-id"></a><h3>gnutls_openpgp_privkey_get_key_id ()</h3>
1486 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_key_id   (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1487                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
1488 <p>
1489 Get key-id.
1490 </p>
1491 <div class="variablelist"><table border="0">
1492 <col align="left" valign="top">
1493 <tbody>
1494 <tr>
1495 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1496 <td>the structure that contains the OpenPGP secret key.</td>
1497 </tr>
1498 <tr>
1499 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
1500 <td>the buffer to save the keyid.</td>
1501 </tr>
1502 <tr>
1503 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1504 <td>the 64-bit keyID of the OpenPGP key.</td>
1505 </tr>
1506 </tbody>
1507 </table></div>
1508 <p class="since">Since 2.4.0</p>
1509 </div>
1510 <hr>
1511 <div class="refsect2">
1512 <a name="gnutls-openpgp-privkey-get-subkey-count"></a><h3>gnutls_openpgp_privkey_get_subkey_count ()</h3>
1513 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_subkey_count
1514                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
1515 <p>
1516 This function will return the number of subkeys present in the
1517 given OpenPGP certificate.
1518 </p>
1519 <div class="variablelist"><table border="0">
1520 <col align="left" valign="top">
1521 <tbody>
1522 <tr>
1523 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1524 <td>is an OpenPGP key</td>
1525 </tr>
1526 <tr>
1527 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1528 <td>the number of subkeys, or a negative value on error.</td>
1529 </tr>
1530 </tbody>
1531 </table></div>
1532 <p class="since">Since 2.4.0</p>
1533 </div>
1534 <hr>
1535 <div class="refsect2">
1536 <a name="gnutls-openpgp-privkey-get-subkey-idx"></a><h3>gnutls_openpgp_privkey_get_subkey_idx ()</h3>
1537 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_subkey_idx
1538                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1539                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
1540 <p>
1541 Get index of subkey.
1542 </p>
1543 <div class="variablelist"><table border="0">
1544 <col align="left" valign="top">
1545 <tbody>
1546 <tr>
1547 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1548 <td>the structure that contains the OpenPGP private key.</td>
1549 </tr>
1550 <tr>
1551 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
1552 <td>the keyid.</td>
1553 </tr>
1554 <tr>
1555 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1556 <td>the index of the subkey or a negative error value.</td>
1557 </tr>
1558 </tbody>
1559 </table></div>
1560 <p class="since">Since 2.4.0</p>
1561 </div>
1562 <hr>
1563 <div class="refsect2">
1564 <a name="gnutls-openpgp-privkey-get-subkey-revoked-status"></a><h3>gnutls_openpgp_privkey_get_subkey_revoked_status ()</h3>
1565 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_subkey_revoked_status
1566                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1567                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);</pre>
1568 <p>
1569 Get revocation status of key.
1570 </p>
1571 <div class="variablelist"><table border="0">
1572 <col align="left" valign="top">
1573 <tbody>
1574 <tr>
1575 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1576 <td>the structure that contains the OpenPGP private key.</td>
1577 </tr>
1578 <tr>
1579 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1580 <td>is the subkey index</td>
1581 </tr>
1582 <tr>
1583 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1584 <td>true (1) if the key has been revoked, or false (0) if it
1585 has not, or a negative value indicates an error.</td>
1586 </tr>
1587 </tbody>
1588 </table></div>
1589 <p class="since">Since 2.4.0</p>
1590 </div>
1591 <hr>
1592 <div class="refsect2">
1593 <a name="gnutls-openpgp-privkey-get-revoked-status"></a><h3>gnutls_openpgp_privkey_get_revoked_status ()</h3>
1594 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_revoked_status
1595                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
1596 <p>
1597 Get revocation status of key.
1598 </p>
1599 <div class="variablelist"><table border="0">
1600 <col align="left" valign="top">
1601 <tbody>
1602 <tr>
1603 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1604 <td>the structure that contains the OpenPGP private key.</td>
1605 </tr>
1606 <tr>
1607 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1608 <td>true (1) if the key has been revoked, or false (0) if it
1609 has not, or a negative value indicates an error.</td>
1610 </tr>
1611 </tbody>
1612 </table></div>
1613 <p class="since">Since 2.4.0</p>
1614 </div>
1615 <hr>
1616 <div class="refsect2">
1617 <a name="gnutls-openpgp-privkey-get-subkey-pk-algorithm"></a><h3>gnutls_openpgp_privkey_get_subkey_pk_algorithm ()</h3>
1618 <pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a> gnutls_openpgp_privkey_get_subkey_pk_algorithm
1619                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1620                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1621                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);</pre>
1622 <p>
1623 This function will return the public key algorithm of a subkey of an OpenPGP
1624 certificate.
1625 </p>
1626 <p>
1627 If bits is non null, it should have enough size to hold the parameters
1628 size in bits. For RSA the bits returned is the modulus.
1629 For DSA the bits returned are of the public exponent.
1630 </p>
1631 <div class="variablelist"><table border="0">
1632 <col align="left" valign="top">
1633 <tbody>
1634 <tr>
1635 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1636 <td>is an OpenPGP key</td>
1637 </tr>
1638 <tr>
1639 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1640 <td>is the subkey index</td>
1641 </tr>
1642 <tr>
1643 <td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
1644 <td>if bits is non null it will hold the size of the parameters' in bits</td>
1645 </tr>
1646 <tr>
1647 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1648 <td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="type">gnutls_pk_algorithm_t</span></a> enumeration on
1649 success, or a negative value on error.</td>
1650 </tr>
1651 </tbody>
1652 </table></div>
1653 <p class="since">Since 2.4.0</p>
1654 </div>
1655 <hr>
1656 <div class="refsect2">
1657 <a name="gnutls-openpgp-privkey-get-subkey-expiration-time"></a><h3>gnutls_openpgp_privkey_get_subkey_expiration_time ()</h3>
1658 <pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_privkey_get_subkey_expiration_time
1659                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1660                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);</pre>
1661 <p>
1662 Get subkey expiration time.  A value of '0' means that the key
1663 doesn't expire at all.
1664 </p>
1665 <div class="variablelist"><table border="0">
1666 <col align="left" valign="top">
1667 <tbody>
1668 <tr>
1669 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1670 <td>the structure that contains the OpenPGP private key.</td>
1671 </tr>
1672 <tr>
1673 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1674 <td>the subkey index</td>
1675 </tr>
1676 <tr>
1677 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1678 <td>the time when the OpenPGP key expires.</td>
1679 </tr>
1680 </tbody>
1681 </table></div>
1682 <p class="since">Since 2.4.0</p>
1683 </div>
1684 <hr>
1685 <div class="refsect2">
1686 <a name="gnutls-openpgp-privkey-get-subkey-id"></a><h3>gnutls_openpgp_privkey_get_subkey_id ()</h3>
1687 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_subkey_id
1688                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1689                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1690                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
1691 <p>
1692 Get the key-id for the subkey.
1693 </p>
1694 <div class="variablelist"><table border="0">
1695 <col align="left" valign="top">
1696 <tbody>
1697 <tr>
1698 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1699 <td>the structure that contains the OpenPGP secret key.</td>
1700 </tr>
1701 <tr>
1702 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1703 <td>the subkey index</td>
1704 </tr>
1705 <tr>
1706 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
1707 <td>the buffer to save the keyid.</td>
1708 </tr>
1709 <tr>
1710 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1711 <td>the 64-bit keyID of the OpenPGP key.</td>
1712 </tr>
1713 </tbody>
1714 </table></div>
1715 <p class="since">Since 2.4.0</p>
1716 </div>
1717 <hr>
1718 <div class="refsect2">
1719 <a name="gnutls-openpgp-privkey-get-subkey-creation-time"></a><h3>gnutls_openpgp_privkey_get_subkey_creation_time ()</h3>
1720 <pre class="programlisting"><span class="returnvalue">time_t</span>              gnutls_openpgp_privkey_get_subkey_creation_time
1721                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1722                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>);</pre>
1723 <p>
1724 Get subkey creation time.
1725 </p>
1726 <div class="variablelist"><table border="0">
1727 <col align="left" valign="top">
1728 <tbody>
1729 <tr>
1730 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1731 <td>the structure that contains the OpenPGP private key.</td>
1732 </tr>
1733 <tr>
1734 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1735 <td>the subkey index</td>
1736 </tr>
1737 <tr>
1738 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1739 <td>the timestamp when the OpenPGP key was created.</td>
1740 </tr>
1741 </tbody>
1742 </table></div>
1743 <p class="since">Since 2.4.0</p>
1744 </div>
1745 <hr>
1746 <div class="refsect2">
1747 <a name="gnutls-openpgp-privkey-export-subkey-dsa-raw"></a><h3>gnutls_openpgp_privkey_export_subkey_dsa_raw ()</h3>
1748 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_export_subkey_dsa_raw
1749                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
1750                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1751                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
1752                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
1753                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
1754                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
1755                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);</pre>
1756 <p>
1757 This function will export the DSA private key's parameters found
1758 in the given certificate.  The new parameters will be allocated
1759 using <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1760 </p>
1761 <div class="variablelist"><table border="0">
1762 <col align="left" valign="top">
1763 <tbody>
1764 <tr>
1765 <td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
1766 <td>Holds the certificate</td>
1767 </tr>
1768 <tr>
1769 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1770 <td>Is the subkey index</td>
1771 </tr>
1772 <tr>
1773 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
1774 <td>will hold the p</td>
1775 </tr>
1776 <tr>
1777 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
1778 <td>will hold the q</td>
1779 </tr>
1780 <tr>
1781 <td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
1782 <td>will hold the g</td>
1783 </tr>
1784 <tr>
1785 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
1786 <td>will hold the y</td>
1787 </tr>
1788 <tr>
1789 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
1790 <td>will hold the x</td>
1791 </tr>
1792 <tr>
1793 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1794 <td>
1795 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1796 </tr>
1797 </tbody>
1798 </table></div>
1799 <p class="since">Since 2.4.0</p>
1800 </div>
1801 <hr>
1802 <div class="refsect2">
1803 <a name="gnutls-openpgp-privkey-export-subkey-rsa-raw"></a><h3>gnutls_openpgp_privkey_export_subkey_rsa_raw ()</h3>
1804 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_export_subkey_rsa_raw
1805                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
1806                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
1807                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
1808                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
1809                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
1810                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
1811                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
1812                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);</pre>
1813 <p>
1814 This function will export the RSA private key's parameters found in
1815 the given structure.  The new parameters will be allocated using
1816 <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1817 </p>
1818 <div class="variablelist"><table border="0">
1819 <col align="left" valign="top">
1820 <tbody>
1821 <tr>
1822 <td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
1823 <td>Holds the certificate</td>
1824 </tr>
1825 <tr>
1826 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
1827 <td>Is the subkey index</td>
1828 </tr>
1829 <tr>
1830 <td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
1831 <td>will hold the modulus</td>
1832 </tr>
1833 <tr>
1834 <td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
1835 <td>will hold the public exponent</td>
1836 </tr>
1837 <tr>
1838 <td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
1839 <td>will hold the private exponent</td>
1840 </tr>
1841 <tr>
1842 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
1843 <td>will hold the first prime (p)</td>
1844 </tr>
1845 <tr>
1846 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
1847 <td>will hold the second prime (q)</td>
1848 </tr>
1849 <tr>
1850 <td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
1851 <td>will hold the coefficient</td>
1852 </tr>
1853 <tr>
1854 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1855 <td>
1856 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1857 </tr>
1858 </tbody>
1859 </table></div>
1860 <p class="since">Since 2.4.0</p>
1861 </div>
1862 <hr>
1863 <div class="refsect2">
1864 <a name="gnutls-openpgp-privkey-export-dsa-raw"></a><h3>gnutls_openpgp_privkey_export_dsa_raw ()</h3>
1865 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_export_dsa_raw
1866                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
1867                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
1868                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
1869                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
1870                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>,
1871                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *x</code></em>);</pre>
1872 <p>
1873 This function will export the DSA private key's parameters found in
1874 the given certificate.  The new parameters will be allocated using
1875 <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1876 </p>
1877 <div class="variablelist"><table border="0">
1878 <col align="left" valign="top">
1879 <tbody>
1880 <tr>
1881 <td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
1882 <td>Holds the certificate</td>
1883 </tr>
1884 <tr>
1885 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
1886 <td>will hold the p</td>
1887 </tr>
1888 <tr>
1889 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
1890 <td>will hold the q</td>
1891 </tr>
1892 <tr>
1893 <td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
1894 <td>will hold the g</td>
1895 </tr>
1896 <tr>
1897 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
1898 <td>will hold the y</td>
1899 </tr>
1900 <tr>
1901 <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
1902 <td>will hold the x</td>
1903 </tr>
1904 <tr>
1905 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1906 <td>
1907 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1908 </tr>
1909 </tbody>
1910 </table></div>
1911 <p class="since">Since 2.4.0</p>
1912 </div>
1913 <hr>
1914 <div class="refsect2">
1915 <a name="gnutls-openpgp-privkey-export-rsa-raw"></a><h3>gnutls_openpgp_privkey_export_rsa_raw ()</h3>
1916 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_export_rsa_raw
1917                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
1918                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
1919                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>,
1920                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *d</code></em>,
1921                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
1922                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
1923                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *u</code></em>);</pre>
1924 <p>
1925 This function will export the RSA private key's parameters found in
1926 the given structure.  The new parameters will be allocated using
1927 <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a> and will be stored in the appropriate datum.
1928 </p>
1929 <div class="variablelist"><table border="0">
1930 <col align="left" valign="top">
1931 <tbody>
1932 <tr>
1933 <td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
1934 <td>Holds the certificate</td>
1935 </tr>
1936 <tr>
1937 <td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
1938 <td>will hold the modulus</td>
1939 </tr>
1940 <tr>
1941 <td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
1942 <td>will hold the public exponent</td>
1943 </tr>
1944 <tr>
1945 <td><p><span class="term"><em class="parameter"><code>d</code></em> :</span></p></td>
1946 <td>will hold the private exponent</td>
1947 </tr>
1948 <tr>
1949 <td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
1950 <td>will hold the first prime (p)</td>
1951 </tr>
1952 <tr>
1953 <td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
1954 <td>will hold the second prime (q)</td>
1955 </tr>
1956 <tr>
1957 <td><p><span class="term"><em class="parameter"><code>u</code></em> :</span></p></td>
1958 <td>will hold the coefficient</td>
1959 </tr>
1960 <tr>
1961 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1962 <td>
1963 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, otherwise an error.</td>
1964 </tr>
1965 </tbody>
1966 </table></div>
1967 <p class="since">Since 2.4.0</p>
1968 </div>
1969 <hr>
1970 <div class="refsect2">
1971 <a name="gnutls-openpgp-privkey-export"></a><h3>gnutls_openpgp_privkey_export ()</h3>
1972 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_export       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
1973                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
1974                                                          <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
1975                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
1976                                                          <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
1977                                                          <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
1978 <p>
1979 This function will convert the given key to RAW or Base64 format.
1980 If the buffer provided is not long enough to hold the output, then
1981 GNUTLS_E_SHORT_MEMORY_BUFFER will be returned.
1982 </p>
1983 <div class="variablelist"><table border="0">
1984 <col align="left" valign="top">
1985 <tbody>
1986 <tr>
1987 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
1988 <td>Holds the key.</td>
1989 </tr>
1990 <tr>
1991 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1992 <td>One of gnutls_openpgp_crt_fmt_t elements.</td>
1993 </tr>
1994 <tr>
1995 <td><p><span class="term"><em class="parameter"><code>password</code></em> :</span></p></td>
1996 <td>the password that will be used to encrypt the key. (unused for now)</td>
1997 </tr>
1998 <tr>
1999 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
2000 <td>zero for future compatibility</td>
2001 </tr>
2002 <tr>
2003 <td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
2004 <td>will contain the key base64 encoded or raw</td>
2005 </tr>
2006 <tr>
2007 <td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
2008 <td>holds the size of output_data (and will be
2009 replaced by the actual size of parameters)</td>
2010 </tr>
2011 <tr>
2012 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2013 <td>
2014 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
2015 </tr>
2016 </tbody>
2017 </table></div>
2018 <p class="since">Since 2.4.0</p>
2019 </div>
2020 <hr>
2021 <div class="refsect2">
2022 <a name="gnutls-openpgp-privkey-set-preferred-key-id"></a><h3>gnutls_openpgp_privkey_set_preferred_key_id ()</h3>
2023 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_set_preferred_key_id
2024                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
2025                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
2026 <p>
2027 This allows setting a preferred key id for the given certificate.
2028 This key will be used by functions that involve key handling.
2029 </p>
2030 <div class="variablelist"><table border="0">
2031 <col align="left" valign="top">
2032 <tbody>
2033 <tr>
2034 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2035 <td>the structure that contains the OpenPGP public key.</td>
2036 </tr>
2037 <tr>
2038 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
2039 <td>the selected keyid</td>
2040 </tr>
2041 <tr>
2042 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2043 <td>On success, 0 is returned, or an error code.</td>
2044 </tr>
2045 </tbody>
2046 </table></div>
2047 </div>
2048 <hr>
2049 <div class="refsect2">
2050 <a name="gnutls-openpgp-privkey-get-preferred-key-id"></a><h3>gnutls_openpgp_privkey_get_preferred_key_id ()</h3>
2051 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_privkey_get_preferred_key_id
2052                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
2053                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>);</pre>
2054 <p>
2055 Get the preferred key-id for the key.
2056 </p>
2057 <div class="variablelist"><table border="0">
2058 <col align="left" valign="top">
2059 <tbody>
2060 <tr>
2061 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2062 <td>the structure that contains the OpenPGP public key.</td>
2063 </tr>
2064 <tr>
2065 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
2066 <td>the struct to save the keyid.</td>
2067 </tr>
2068 <tr>
2069 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2070 <td>the 64-bit preferred keyID of the OpenPGP key, or if it
2071 hasn't been set it returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>.</td>
2072 </tr>
2073 </tbody>
2074 </table></div>
2075 </div>
2076 <hr>
2077 <div class="refsect2">
2078 <a name="gnutls-openpgp-crt-get-auth-subkey"></a><h3>gnutls_openpgp_crt_get_auth_subkey ()</h3>
2079 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_get_auth_subkey  (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
2080                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
2081                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flag</code></em>);</pre>
2082 <p>
2083 Returns the 64-bit keyID of the first valid OpenPGP subkey marked
2084 for authentication.  If flag is non zero and no authentication
2085 subkey exists, then a valid subkey will be returned even if it is
2086 not marked for authentication.
2087 Returns the 64-bit keyID of the first valid OpenPGP subkey marked
2088 for authentication.  If flag is non zero and no authentication
2089 subkey exists, then a valid subkey will be returned even if it is
2090 not marked for authentication.
2091 </p>
2092 <div class="variablelist"><table border="0">
2093 <col align="left" valign="top">
2094 <tbody>
2095 <tr>
2096 <td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
2097 <td>the structure that contains the OpenPGP public key.</td>
2098 </tr>
2099 <tr>
2100 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
2101 <td>the struct to save the keyid.</td>
2102 </tr>
2103 <tr>
2104 <td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
2105 <td>Non zero indicates that a valid subkey is always returned.</td>
2106 </tr>
2107 <tr>
2108 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2109 <td>
2110 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
2111 </tr>
2112 </tbody>
2113 </table></div>
2114 </div>
2115 <hr>
2116 <div class="refsect2">
2117 <a name="gnutls-openpgp-keyring-init"></a><h3>gnutls_openpgp_keyring_init ()</h3>
2118 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_keyring_init         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> *keyring</code></em>);</pre>
2119 <p>
2120 This function will initialize an keyring structure.
2121 </p>
2122 <div class="variablelist"><table border="0">
2123 <col align="left" valign="top">
2124 <tbody>
2125 <tr>
2126 <td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
2127 <td>The structure to be initialized</td>
2128 </tr>
2129 <tr>
2130 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2131 <td>
2132 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
2133 </tr>
2134 </tbody>
2135 </table></div>
2136 </div>
2137 <hr>
2138 <div class="refsect2">
2139 <a name="gnutls-openpgp-keyring-deinit"></a><h3>gnutls_openpgp_keyring_deinit ()</h3>
2140 <pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_keyring_deinit       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>);</pre>
2141 <p>
2142 This function will deinitialize a keyring structure.
2143 </p>
2144 <div class="variablelist"><table border="0">
2145 <col align="left" valign="top">
2146 <tbody><tr>
2147 <td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
2148 <td>The structure to be initialized</td>
2149 </tr></tbody>
2150 </table></div>
2151 </div>
2152 <hr>
2153 <div class="refsect2">
2154 <a name="gnutls-openpgp-keyring-import"></a><h3>gnutls_openpgp_keyring_import ()</h3>
2155 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_keyring_import       (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
2156                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
2157                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
2158 <p>
2159 This function will convert the given RAW or Base64 encoded keyring
2160 to the native <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> format.  The output will be
2161 stored in 'keyring'.
2162 </p>
2163 <div class="variablelist"><table border="0">
2164 <col align="left" valign="top">
2165 <tbody>
2166 <tr>
2167 <td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
2168 <td>The structure to store the parsed key.</td>
2169 </tr>
2170 <tr>
2171 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2172 <td>The RAW or BASE64 encoded keyring.</td>
2173 </tr>
2174 <tr>
2175 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2176 <td>One of <span class="type">gnutls_openpgp_keyring_fmt</span> elements.</td>
2177 </tr>
2178 <tr>
2179 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2180 <td>
2181 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
2182 </tr>
2183 </tbody>
2184 </table></div>
2185 </div>
2186 <hr>
2187 <div class="refsect2">
2188 <a name="gnutls-openpgp-keyring-check-id"></a><h3>gnutls_openpgp_keyring_check_id ()</h3>
2189 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_keyring_check_id     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
2190                                                          <em class="parameter"><code>const <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyid-t" title="gnutls_openpgp_keyid_t"><span class="type">gnutls_openpgp_keyid_t</span></a> keyid</code></em>,
2191                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
2192 <p>
2193 Check if a given key ID exists in the keyring.
2194 </p>
2195 <div class="variablelist"><table border="0">
2196 <col align="left" valign="top">
2197 <tbody>
2198 <tr>
2199 <td><p><span class="term"><em class="parameter"><code>ring</code></em> :</span></p></td>
2200 <td>holds the keyring to check against</td>
2201 </tr>
2202 <tr>
2203 <td><p><span class="term"><em class="parameter"><code>keyid</code></em> :</span></p></td>
2204 <td>will hold the keyid to check for.</td>
2205 </tr>
2206 <tr>
2207 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
2208 <td>unused (should be 0)</td>
2209 </tr>
2210 <tr>
2211 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2212 <td>
2213 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success (if keyid exists) and a
2214 negative error code on failure.</td>
2215 </tr>
2216 </tbody>
2217 </table></div>
2218 </div>
2219 <hr>
2220 <div class="refsect2">
2221 <a name="gnutls-openpgp-crt-verify-ring"></a><h3>gnutls_openpgp_crt_verify_ring ()</h3>
2222 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_verify_ring      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
2223                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
2224                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
2225                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *verify</code></em>);</pre>
2226 <p>
2227 Verify all signatures in the key, using the given set of keys
2228 (keyring).
2229 </p>
2230 <p>
2231 The key verification output will be put in <em class="parameter"><code>verify</code></em> and will be one
2232 or more of the <a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t"><span class="type">gnutls_certificate_status_t</span></a> enumerated elements
2233 bitwise or'd.
2234 </p>
2235 <p>
2236 <a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-INVALID:CAPS"><code class="literal">GNUTLS_CERT_INVALID</code></a>: A signature on the key is invalid.
2237 </p>
2238 <p>
2239 <a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-REVOKED:CAPS"><code class="literal">GNUTLS_CERT_REVOKED</code></a>: The key has been revoked.
2240 </p>
2241 <p>
2242 Note that this function does not verify using any "web of trust".
2243 You may use GnuPG for that purpose, or any other external PGP
2244 application.
2245 </p>
2246 <div class="variablelist"><table border="0">
2247 <col align="left" valign="top">
2248 <tbody>
2249 <tr>
2250 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2251 <td>the structure that holds the key.</td>
2252 </tr>
2253 <tr>
2254 <td><p><span class="term"><em class="parameter"><code>keyring</code></em> :</span></p></td>
2255 <td>holds the keyring to check against</td>
2256 </tr>
2257 <tr>
2258 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
2259 <td>unused (should be 0)</td>
2260 </tr>
2261 <tr>
2262 <td><p><span class="term"><em class="parameter"><code>verify</code></em> :</span></p></td>
2263 <td>will hold the certificate verification output.</td>
2264 </tr>
2265 <tr>
2266 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2267 <td>
2268 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
2269 </tr>
2270 </tbody>
2271 </table></div>
2272 </div>
2273 <hr>
2274 <div class="refsect2">
2275 <a name="gnutls-openpgp-crt-verify-self"></a><h3>gnutls_openpgp_crt_verify_self ()</h3>
2276 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_crt_verify_self      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
2277                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
2278                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *verify</code></em>);</pre>
2279 <p>
2280 Verifies the self signature in the key.  The key verification
2281 output will be put in <em class="parameter"><code>verify</code></em> and will be one or more of the
2282 gnutls_certificate_status_t enumerated elements bitwise or'd.
2283 </p>
2284 <p>
2285 <a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-INVALID:CAPS"><code class="literal">GNUTLS_CERT_INVALID</code></a>: The self signature on the key is invalid.
2286 </p>
2287 <div class="variablelist"><table border="0">
2288 <col align="left" valign="top">
2289 <tbody>
2290 <tr>
2291 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2292 <td>the structure that holds the key.</td>
2293 </tr>
2294 <tr>
2295 <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
2296 <td>unused (should be 0)</td>
2297 </tr>
2298 <tr>
2299 <td><p><span class="term"><em class="parameter"><code>verify</code></em> :</span></p></td>
2300 <td>will hold the key verification output.</td>
2301 </tr>
2302 <tr>
2303 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2304 <td>
2305 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
2306 </tr>
2307 </tbody>
2308 </table></div>
2309 </div>
2310 <hr>
2311 <div class="refsect2">
2312 <a name="gnutls-openpgp-keyring-get-crt"></a><h3>gnutls_openpgp_keyring_get_crt ()</h3>
2313 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_keyring_get_crt      (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
2314                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
2315                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *cert</code></em>);</pre>
2316 <p>
2317 This function will extract an OpenPGP certificate from the given
2318 keyring.  If the index given is out of range
2319 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned. The
2320 returned structure needs to be deinited.
2321 </p>
2322 <div class="variablelist"><table border="0">
2323 <col align="left" valign="top">
2324 <tbody>
2325 <tr>
2326 <td><p><span class="term"><em class="parameter"><code>ring</code></em> :</span></p></td>
2327 <td>Holds the keyring.</td>
2328 </tr>
2329 <tr>
2330 <td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
2331 <td>the index of the certificate to export</td>
2332 </tr>
2333 <tr>
2334 <td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
2335 <td>An uninitialized <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> structure</td>
2336 </tr>
2337 <tr>
2338 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2339 <td>
2340 <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</td>
2341 </tr>
2342 </tbody>
2343 </table></div>
2344 </div>
2345 <hr>
2346 <div class="refsect2">
2347 <a name="gnutls-openpgp-keyring-get-crt-count"></a><h3>gnutls_openpgp_keyring_get_crt_count ()</h3>
2348 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_openpgp_keyring_get_crt_count
2349                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>);</pre>
2350 <p>
2351 This function will return the number of OpenPGP certificates
2352 present in the given keyring.
2353 </p>
2354 <div class="variablelist"><table border="0">
2355 <col align="left" valign="top">
2356 <tbody>
2357 <tr>
2358 <td><p><span class="term"><em class="parameter"><code>ring</code></em> :</span></p></td>
2359 <td>is an OpenPGP key ring</td>
2360 </tr>
2361 <tr>
2362 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2363 <td>the number of subkeys, or a negative value on error.</td>
2364 </tr>
2365 </tbody>
2366 </table></div>
2367 </div>
2368 <hr>
2369 <div class="refsect2">
2370 <a name="gnutls-openpgp-recv-key-func"></a><h3>gnutls_openpgp_recv_key_func ()</h3>
2371 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (*gnutls_openpgp_recv_key_func)     (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
2372                                                          <em class="parameter"><code>const unsigned <span class="type">char</span> *keyfpr</code></em>,
2373                                                          <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> keyfpr_length</code></em>,
2374                                                          <em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>);</pre>
2375 <p>
2376 A callback of this type is used to retrieve OpenPGP keys.  Only
2377 useful on the server, and will only be used if the peer send a key
2378 fingerprint instead of a full key.  See also
2379 <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()"><code class="function">gnutls_openpgp_set_recv_key_function()</code></a>.
2380 </p>
2381 <div class="variablelist"><table border="0">
2382 <col align="left" valign="top">
2383 <tbody>
2384 <tr>
2385 <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
2386 <td>a TLS session</td>
2387 </tr>
2388 <tr>
2389 <td><p><span class="term"><em class="parameter"><code>keyfpr</code></em> :</span></p></td>
2390 <td>key fingerprint</td>
2391 </tr>
2392 <tr>
2393 <td><p><span class="term"><em class="parameter"><code>keyfpr_length</code></em> :</span></p></td>
2394 <td>length of key fingerprint</td>
2395 </tr>
2396 <tr>
2397 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2398 <td>output key.</td>
2399 </tr>
2400 <tr>
2401 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2402 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (zero) is returned,
2403 otherwise an error code is returned.</td>
2404 </tr>
2405 </tbody>
2406 </table></div>
2407 </div>
2408 <hr>
2409 <div class="refsect2">
2410 <a name="gnutls-openpgp-set-recv-key-function"></a><h3>gnutls_openpgp_set_recv_key_function ()</h3>
2411 <pre class="programlisting"><span class="returnvalue">void</span>                gnutls_openpgp_set_recv_key_function
2412                                                         (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
2413                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()"><span class="type">gnutls_openpgp_recv_key_func</span></a> func</code></em>);</pre>
2414 <p>
2415 This funtion will set a key retrieval function for OpenPGP keys. This
2416 callback is only useful in server side, and will be used if the peer
2417 sent a key fingerprint instead of a full key.
2418 </p>
2419 <div class="variablelist"><table border="0">
2420 <col align="left" valign="top">
2421 <tbody>
2422 <tr>
2423 <td><p><span class="term"><em class="parameter"><code>session</code></em> :</span></p></td>
2424 <td>a TLS session</td>
2425 </tr>
2426 <tr>
2427 <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
2428 <td>the callback</td>
2429 </tr>
2430 </tbody>
2431 </table></div>
2432 </div>
2433 <hr>
2434 <div class="refsect2">
2435 <a name="gnutls-certificate-set-openpgp-key"></a><h3>gnutls_certificate_set_openpgp_key ()</h3>
2436 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_certificate_set_openpgp_key  (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
2437                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
2438                                                          <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>);</pre>
2439 <p>
2440 This function sets a certificate/private key pair in the
2441 gnutls_certificate_credentials_t structure.  This function may be
2442 called more than once (in case multiple keys/certificates exist
2443 for the server).
2444 </p>
2445 <p>
2446 Note that this function requires that the preferred key ids have
2447 been set and be used. See <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" title="gnutls_openpgp_crt_set_preferred_key_id ()"><code class="function">gnutls_openpgp_crt_set_preferred_key_id()</code></a>.
2448 Otherwise the master key will be used.
2449 </p>
2450 <div class="variablelist"><table border="0">
2451 <col align="left" valign="top">
2452 <tbody>
2453 <tr>
2454 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
2455 <td>is a <span class="type">gnutls_certificate_credentials_t</span> structure.</td>
2456 </tr>
2457 <tr>
2458 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2459 <td>contains an openpgp public key</td>
2460 </tr>
2461 <tr>
2462 <td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
2463 <td>is an openpgp private key</td>
2464 </tr>
2465 <tr>
2466 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2467 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (zero) is returned,
2468 otherwise an error code is returned.</td>
2469 </tr>
2470 </tbody>
2471 </table></div>
2472 </div>
2473 <hr>
2474 <div class="refsect2">
2475 <a name="gnutls-certificate-set-openpgp-key-file"></a><h3>gnutls_certificate_set_openpgp_key_file ()</h3>
2476 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_certificate_set_openpgp_key_file
2477                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
2478                                                          <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
2479                                                          <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
2480                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
2481 <p>
2482 This funtion is used to load OpenPGP keys into the GnuTLS
2483 credentials structure. The file should contain at least one valid non encrypted subkey.
2484 </p>
2485 <div class="variablelist"><table border="0">
2486 <col align="left" valign="top">
2487 <tbody>
2488 <tr>
2489 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
2490 <td>the destination context to save the data.</td>
2491 </tr>
2492 <tr>
2493 <td><p><span class="term"><em class="parameter"><code>certfile</code></em> :</span></p></td>
2494 <td>the file that contains the public key.</td>
2495 </tr>
2496 <tr>
2497 <td><p><span class="term"><em class="parameter"><code>keyfile</code></em> :</span></p></td>
2498 <td>the file that contains the secret key.</td>
2499 </tr>
2500 <tr>
2501 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2502 <td>the format of the keys</td>
2503 </tr>
2504 <tr>
2505 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2506 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
2507 negative error value.</td>
2508 </tr>
2509 </tbody>
2510 </table></div>
2511 </div>
2512 <hr>
2513 <div class="refsect2">
2514 <a name="gnutls-certificate-set-openpgp-key-mem"></a><h3>gnutls_certificate_set_openpgp_key_mem ()</h3>
2515 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_certificate_set_openpgp_key_mem
2516                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
2517                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
2518                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
2519                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
2520 <p>
2521 This funtion is used to load OpenPGP keys into the GnuTLS credential 
2522 structure. The datum should contain at least one valid non encrypted subkey.
2523 </p>
2524 <div class="variablelist"><table border="0">
2525 <col align="left" valign="top">
2526 <tbody>
2527 <tr>
2528 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
2529 <td>the destination context to save the data.</td>
2530 </tr>
2531 <tr>
2532 <td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
2533 <td>the datum that contains the public key.</td>
2534 </tr>
2535 <tr>
2536 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2537 <td>the datum that contains the secret key.</td>
2538 </tr>
2539 <tr>
2540 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2541 <td>the format of the keys</td>
2542 </tr>
2543 <tr>
2544 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2545 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
2546 negative error value.</td>
2547 </tr>
2548 </tbody>
2549 </table></div>
2550 </div>
2551 <hr>
2552 <div class="refsect2">
2553 <a name="gnutls-certificate-set-openpgp-key-file2"></a><h3>gnutls_certificate_set_openpgp_key_file2 ()</h3>
2554 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_certificate_set_openpgp_key_file2
2555                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
2556                                                          <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
2557                                                          <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
2558                                                          <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
2559                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
2560 <p>
2561 This funtion is used to load OpenPGP keys into the GnuTLS credential 
2562 structure. The file should contain at least one valid non encrypted subkey.
2563 </p>
2564 <p>
2565 The special keyword "auto" is also accepted as <em class="parameter"><code>subkey_id</code></em>.  In that
2566 case the <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()"><code class="function">gnutls_openpgp_crt_get_auth_subkey()</code></a> will be used to
2567 retrieve the subkey.
2568 </p>
2569 <div class="variablelist"><table border="0">
2570 <col align="left" valign="top">
2571 <tbody>
2572 <tr>
2573 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
2574 <td>the destination context to save the data.</td>
2575 </tr>
2576 <tr>
2577 <td><p><span class="term"><em class="parameter"><code>certfile</code></em> :</span></p></td>
2578 <td>the file that contains the public key.</td>
2579 </tr>
2580 <tr>
2581 <td><p><span class="term"><em class="parameter"><code>keyfile</code></em> :</span></p></td>
2582 <td>the file that contains the secret key.</td>
2583 </tr>
2584 <tr>
2585 <td><p><span class="term"><em class="parameter"><code>subkey_id</code></em> :</span></p></td>
2586 <td>a hex encoded subkey id</td>
2587 </tr>
2588 <tr>
2589 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2590 <td>the format of the keys</td>
2591 </tr>
2592 <tr>
2593 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2594 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
2595 negative error value.</td>
2596 </tr>
2597 </tbody>
2598 </table></div>
2599 <p class="since">Since 2.4.0</p>
2600 </div>
2601 <hr>
2602 <div class="refsect2">
2603 <a name="gnutls-certificate-set-openpgp-key-mem2"></a><h3>gnutls_certificate_set_openpgp_key_mem2 ()</h3>
2604 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_certificate_set_openpgp_key_mem2
2605                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
2606                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *cert</code></em>,
2607                                                          <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *key</code></em>,
2608                                                          <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
2609                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
2610 <p>
2611 This funtion is used to load OpenPGP keys into the GnuTLS
2612 credentials structure. The datum should contain at least one valid non encrypted subkey.
2613 </p>
2614 <p>
2615 The special keyword "auto" is also accepted as <em class="parameter"><code>subkey_id</code></em>.  In that
2616 case the <a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()"><code class="function">gnutls_openpgp_crt_get_auth_subkey()</code></a> will be used to
2617 retrieve the subkey.
2618 </p>
2619 <div class="variablelist"><table border="0">
2620 <col align="left" valign="top">
2621 <tbody>
2622 <tr>
2623 <td><p><span class="term"><em class="parameter"><code>res</code></em> :</span></p></td>
2624 <td>the destination context to save the data.</td>
2625 </tr>
2626 <tr>
2627 <td><p><span class="term"><em class="parameter"><code>cert</code></em> :</span></p></td>
2628 <td>the datum that contains the public key.</td>
2629 </tr>
2630 <tr>
2631 <td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
2632 <td>the datum that contains the secret key.</td>
2633 </tr>
2634 <tr>
2635 <td><p><span class="term"><em class="parameter"><code>subkey_id</code></em> :</span></p></td>
2636 <td>a hex encoded subkey id</td>
2637 </tr>
2638 <tr>
2639 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2640 <td>the format of the keys</td>
2641 </tr>
2642 <tr>
2643 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2644 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
2645 negative error value.</td>
2646 </tr>
2647 </tbody>
2648 </table></div>
2649 <p class="since">Since 2.4.0</p>
2650 </div>
2651 <hr>
2652 <div class="refsect2">
2653 <a name="gnutls-certificate-set-openpgp-keyring-mem"></a><h3>gnutls_certificate_set_openpgp_keyring_mem ()</h3>
2654 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_certificate_set_openpgp_keyring_mem
2655                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
2656                                                          <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
2657                                                          <em class="parameter"><code><span class="type">size_t</span> dlen</code></em>,
2658                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
2659 <p>
2660 The function is used to set keyrings that will be used internally
2661 by various OpenPGP functions. For example to find a key when it
2662 is needed for an operations. The keyring will also be used at the
2663 verification functions.
2664 </p>
2665 <div class="variablelist"><table border="0">
2666 <col align="left" valign="top">
2667 <tbody>
2668 <tr>
2669 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
2670 <td>A certificate credentials structure</td>
2671 </tr>
2672 <tr>
2673 <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2674 <td>buffer with keyring data.</td>
2675 </tr>
2676 <tr>
2677 <td><p><span class="term"><em class="parameter"><code>dlen</code></em> :</span></p></td>
2678 <td>length of data buffer.</td>
2679 </tr>
2680 <tr>
2681 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2682 <td>the format of the keyring</td>
2683 </tr>
2684 <tr>
2685 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2686 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
2687 negative error value.</td>
2688 </tr>
2689 </tbody>
2690 </table></div>
2691 </div>
2692 <hr>
2693 <div class="refsect2">
2694 <a name="gnutls-certificate-set-openpgp-keyring-file"></a><h3>gnutls_certificate_set_openpgp_keyring_file ()</h3>
2695 <pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_certificate_set_openpgp_keyring_file
2696                                                         (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
2697                                                          <em class="parameter"><code>const <span class="type">char</span> *file</code></em>,
2698                                                          <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
2699 <p>
2700 The function is used to set keyrings that will be used internally
2701 by various OpenPGP functions. For example to find a key when it
2702 is needed for an operations. The keyring will also be used at the
2703 verification functions.
2704 </p>
2705 <div class="variablelist"><table border="0">
2706 <col align="left" valign="top">
2707 <tbody>
2708 <tr>
2709 <td><p><span class="term"><em class="parameter"><code>c</code></em> :</span></p></td>
2710 <td>A certificate credentials structure</td>
2711 </tr>
2712 <tr>
2713 <td><p><span class="term"><em class="parameter"><code>file</code></em> :</span></p></td>
2714 <td>filename of the keyring.</td>
2715 </tr>
2716 <tr>
2717 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
2718 <td>format of keyring.</td>
2719 </tr>
2720 <tr>
2721 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2722 <td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
2723 negative error value.</td>
2724 </tr>
2725 </tbody>
2726 </table></div>
2727 </div>
2728 </div>
2729 </div>
2730 <div class="footer">
2731 <hr>
2732           Generated by GTK-Doc V1.18</div>
2733 </body>
2734 </html>