~ubuntu-branches/ubuntu/precise/gnutls28/precise

« back to all changes in this revision

Viewing changes to doc/reference/html/gnutls-abstract.html

  • Committer: Package Import Robot
  • Author(s): Andreas Metzler
  • Date: 2011-09-20 19:37:06 UTC
  • mfrom: (1.1.3)
  • Revision ID: package-import@ubuntu.com-20110920193706-a9phjijvddzg3nkl
Tags: 3.0.3-1
* New upstream version. (Includes a fix for #640639)
* Bump shlibs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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>abstract</title>
 
6
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 
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-gnutls.html" title="gnutls">
 
10
<link rel="next" href="gnutls-extra.html" title="extra">
 
11
<meta name="generator" content="GTK-Doc V1.17 (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-gnutls.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-extra.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-abstract.synopsis" class="shortcut">Top</a>
 
25
                   | 
 
26
                  <a href="#gnutls-abstract.description" class="shortcut">Description</a>
 
27
</td></tr>
 
28
</table>
 
29
<div class="refentry">
 
30
<a name="gnutls-abstract"></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-abstract.top_of_page"></a>abstract</span></h2>
 
34
<p>abstract</p>
 
35
</td>
 
36
<td valign="top" align="right"></td>
 
37
</tr></table></div>
 
38
<div class="refsynopsisdiv">
 
39
<a name="gnutls-abstract.synopsis"></a><h2>Synopsis</h2>
 
40
<pre class="synopsis">struct              <a class="link" href="gnutls-abstract.html#gnutls-pubkey-st" title="struct gnutls_pubkey_st">gnutls_pubkey_st</a>;
 
41
typedef             <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t">gnutls_pubkey_t</a>;
 
42
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-init" title="gnutls_pubkey_init ()">gnutls_pubkey_init</a>                  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> *key</code></em>);
 
43
<span class="returnvalue">void</span>                <a class="link" href="gnutls-abstract.html#gnutls-pubkey-deinit" title="gnutls_pubkey_deinit ()">gnutls_pubkey_deinit</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);
 
44
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm" title="gnutls_pubkey_get_pk_algorithm ()">gnutls_pubkey_get_pk_algorithm</a>      (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
45
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
 
46
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()">gnutls_pubkey_import_x509</a>           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
47
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
 
48
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
49
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11" title="gnutls_pubkey_import_pkcs11 ()">gnutls_pubkey_import_pkcs11</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
50
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
 
51
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
52
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-openpgp" title="gnutls_pubkey_import_openpgp ()">gnutls_pubkey_import_openpgp</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
53
                                                         <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>,
 
54
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
55
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()">gnutls_pubkey_get_preferred_hash_algorithm</a>
 
56
                                                        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
57
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>,
 
58
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *mand</code></em>);
 
59
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw" title="gnutls_pubkey_get_pk_rsa_raw ()">gnutls_pubkey_get_pk_rsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
60
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
 
61
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);
 
62
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw" title="gnutls_pubkey_get_pk_dsa_raw ()">gnutls_pubkey_get_pk_dsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
63
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
 
64
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
 
65
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
 
66
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);
 
67
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-export" title="gnutls_pubkey_export ()">gnutls_pubkey_export</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
68
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
 
69
                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
 
70
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
 
71
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-id" title="gnutls_pubkey_get_key_id ()">gnutls_pubkey_get_key_id</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
72
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
73
                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
 
74
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
 
75
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-usage" title="gnutls_pubkey_get_key_usage ()">gnutls_pubkey_get_key_usage</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
76
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *usage</code></em>);
 
77
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-set-key-usage" title="gnutls_pubkey_set_key_usage ()">gnutls_pubkey_set_key_usage</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
78
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);
 
79
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import" title="gnutls_pubkey_import ()">gnutls_pubkey_import</a>                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
80
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
 
81
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);
 
82
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" title="gnutls_pubkey_import_pkcs11_url ()">gnutls_pubkey_import_pkcs11_url</a>     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
83
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
84
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
85
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw" title="gnutls_pubkey_import_dsa_raw ()">gnutls_pubkey_import_dsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
86
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
 
87
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
 
88
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *g</code></em>,
 
89
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *y</code></em>);
 
90
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw" title="gnutls_pubkey_import_rsa_raw ()">gnutls_pubkey_import_rsa_raw</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
91
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
 
92
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>);
 
93
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crt-set-pubkey" title="gnutls_x509_crt_set_pubkey ()">gnutls_x509_crt_set_pubkey</a>          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
 
94
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);
 
95
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crq-set-pubkey" title="gnutls_x509_crq_set_pubkey ()">gnutls_x509_crq_set_pubkey</a>          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
 
96
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);
 
97
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-verify-hash" title="gnutls_pubkey_verify_hash ()">gnutls_pubkey_verify_hash</a>           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
98
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
99
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash</code></em>,
 
100
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>);
 
101
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-verify-algorithm" title="gnutls_pubkey_get_verify_algorithm ()">gnutls_pubkey_get_verify_algorithm</a>  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
102
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>,
 
103
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>);
 
104
struct              <a class="link" href="gnutls-abstract.html#gnutls-privkey-st" title="struct gnutls_privkey_st">gnutls_privkey_st</a>;
 
105
typedef             <a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t">gnutls_privkey_t</a>;
 
106
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-init" title="gnutls_privkey_init ()">gnutls_privkey_init</a>                 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> *key</code></em>);
 
107
<span class="returnvalue">void</span>                <a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit" title="gnutls_privkey_deinit ()">gnutls_privkey_deinit</a>               (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);
 
108
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm" title="gnutls_privkey_get_pk_algorithm ()">gnutls_privkey_get_pk_algorithm</a>     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
 
109
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);
 
110
<a class="link" href="gnutls-gnutls.html#gnutls-privkey-type-t" title="enum gnutls_privkey_type_t"><span class="returnvalue">gnutls_privkey_type_t</span></a>  <a class="link" href="gnutls-abstract.html#gnutls-privkey-get-type" title="gnutls_privkey_get_type ()">gnutls_privkey_get_type</a>          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);
 
111
#define             <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</a>
 
112
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-pkcs11" title="gnutls_privkey_import_pkcs11 ()">gnutls_privkey_import_pkcs11</a>        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
 
113
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
 
114
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
115
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-x509" title="gnutls_privkey_import_x509 ()">gnutls_privkey_import_x509</a>          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
 
116
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
 
117
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
118
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-openpgp" title="gnutls_privkey_import_openpgp ()">gnutls_privkey_import_openpgp</a>       (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
 
119
                                                         <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>,
 
120
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
121
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()">gnutls_privkey_sign_data</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
 
122
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash</code></em>,
 
123
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
124
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
 
125
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);
 
126
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()">gnutls_privkey_sign_hash</a>            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
 
127
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash_algo</code></em>,
 
128
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
129
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash_data</code></em>,
 
130
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);
 
131
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-data" title="gnutls_privkey_decrypt_data ()">gnutls_privkey_decrypt_data</a>         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
 
132
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
133
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *ciphertext</code></em>,
 
134
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *plaintext</code></em>);
 
135
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crt-privkey-sign" title="gnutls_x509_crt_privkey_sign ()">gnutls_x509_crt_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
 
136
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
 
137
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
 
138
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
 
139
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
140
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crl-privkey-sign" title="gnutls_x509_crl_privkey_sign ()">gnutls_x509_crl_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
 
141
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
 
142
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
 
143
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
 
144
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
145
<span class="returnvalue">int</span>                 <a class="link" href="gnutls-abstract.html#gnutls-x509-crq-privkey-sign" title="gnutls_x509_crq_privkey_sign ()">gnutls_x509_crq_privkey_sign</a>        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
 
146
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
 
147
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
 
148
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);
 
149
</pre>
 
150
</div>
 
151
<div class="refsect1">
 
152
<a name="gnutls-abstract.description"></a><h2>Description</h2>
 
153
<p>
 
154
</p>
 
155
</div>
 
156
<div class="refsect1">
 
157
<a name="gnutls-abstract.details"></a><h2>Details</h2>
 
158
<div class="refsect2">
 
159
<a name="gnutls-pubkey-st"></a><h3>struct gnutls_pubkey_st</h3>
 
160
<pre class="programlisting">struct gnutls_pubkey_st;</pre>
 
161
<p>
 
162
</p>
 
163
</div>
 
164
<hr>
 
165
<div class="refsect2">
 
166
<a name="gnutls-pubkey-t"></a><h3>gnutls_pubkey_t</h3>
 
167
<pre class="programlisting">typedef struct gnutls_pubkey_st *gnutls_pubkey_t;
 
168
</pre>
 
169
<p>
 
170
</p>
 
171
</div>
 
172
<hr>
 
173
<div class="refsect2">
 
174
<a name="gnutls-pubkey-init"></a><h3>gnutls_pubkey_init ()</h3>
 
175
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_init                  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> *key</code></em>);</pre>
 
176
<p>
 
177
This function will initialize an public key structure.
 
178
</p>
 
179
<div class="variablelist"><table border="0">
 
180
<col align="left" valign="top">
 
181
<tbody>
 
182
<tr>
 
183
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
184
<td>The structure to be initialized</td>
 
185
</tr>
 
186
<tr>
 
187
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
188
<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> (0) is returned, otherwise a
 
189
negative error value.</td>
 
190
</tr>
 
191
</tbody>
 
192
</table></div>
 
193
<p class="since">Since 2.12.0</p>
 
194
</div>
 
195
<hr>
 
196
<div class="refsect2">
 
197
<a name="gnutls-pubkey-deinit"></a><h3>gnutls_pubkey_deinit ()</h3>
 
198
<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pubkey_deinit                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);</pre>
 
199
<p>
 
200
This function will deinitialize a public key structure.
 
201
</p>
 
202
<div class="variablelist"><table border="0">
 
203
<col align="left" valign="top">
 
204
<tbody><tr>
 
205
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
206
<td>The structure to be deinitialized</td>
 
207
</tr></tbody>
 
208
</table></div>
 
209
<p class="since">Since 2.12.0</p>
 
210
</div>
 
211
<hr>
 
212
<div class="refsect2">
 
213
<a name="gnutls-pubkey-get-pk-algorithm"></a><h3>gnutls_pubkey_get_pk_algorithm ()</h3>
 
214
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_pk_algorithm      (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
215
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
 
216
<p>
 
217
This function will return the public key algorithm of a public
 
218
key and if possible will return a number of bits that indicates
 
219
the security parameter of the key.
 
220
</p>
 
221
<div class="variablelist"><table border="0">
 
222
<col align="left" valign="top">
 
223
<tbody>
 
224
<tr>
 
225
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
226
<td>should contain a <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> structure</td>
 
227
</tr>
 
228
<tr>
 
229
<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
 
230
<td>If set will return the number of bits of the parameters (may be NULL)</td>
 
231
</tr>
 
232
<tr>
 
233
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
234
<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
 
235
success, or a negative error code on error.</td>
 
236
</tr>
 
237
</tbody>
 
238
</table></div>
 
239
<p class="since">Since 2.12.0</p>
 
240
</div>
 
241
<hr>
 
242
<div class="refsect2">
 
243
<a name="gnutls-pubkey-import-x509"></a><h3>gnutls_pubkey_import_x509 ()</h3>
 
244
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_x509           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
245
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
 
246
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
247
<p>
 
248
This function will import the given public key to the abstract
 
249
<a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> structure.
 
250
</p>
 
251
<div class="variablelist"><table border="0">
 
252
<col align="left" valign="top">
 
253
<tbody>
 
254
<tr>
 
255
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
256
<td>The public key</td>
 
257
</tr>
 
258
<tr>
 
259
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
260
<td>The certificate to be imported</td>
 
261
</tr>
 
262
<tr>
 
263
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
264
<td>should be zero</td>
 
265
</tr>
 
266
<tr>
 
267
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
268
<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> (0) is returned, otherwise a
 
269
negative error value.</td>
 
270
</tr>
 
271
</tbody>
 
272
</table></div>
 
273
<p class="since">Since 2.12.0</p>
 
274
</div>
 
275
<hr>
 
276
<div class="refsect2">
 
277
<a name="gnutls-pubkey-import-pkcs11"></a><h3>gnutls_pubkey_import_pkcs11 ()</h3>
 
278
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_pkcs11         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
279
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t"><span class="type">gnutls_pkcs11_obj_t</span></a> obj</code></em>,
 
280
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
281
<p>
 
282
Imports a public key from a pkcs11 key. This function will import
 
283
the given public key to the abstract <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> structure.
 
284
</p>
 
285
<div class="variablelist"><table border="0">
 
286
<col align="left" valign="top">
 
287
<tbody>
 
288
<tr>
 
289
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
290
<td>The public key</td>
 
291
</tr>
 
292
<tr>
 
293
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 
294
<td>The parameters to be imported</td>
 
295
</tr>
 
296
<tr>
 
297
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
298
<td>should be zero</td>
 
299
</tr>
 
300
<tr>
 
301
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
302
<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> (0) is returned, otherwise a
 
303
negative error value.</td>
 
304
</tr>
 
305
</tbody>
 
306
</table></div>
 
307
<p class="since">Since 2.12.0</p>
 
308
</div>
 
309
<hr>
 
310
<div class="refsect2">
 
311
<a name="gnutls-pubkey-import-openpgp"></a><h3>gnutls_pubkey_import_openpgp ()</h3>
 
312
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_openpgp        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
313
                                                         <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>,
 
314
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
315
<p>
 
316
Imports a public key from an openpgp key. This function will import
 
317
the given public key to the abstract <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>
 
318
structure. The subkey set as preferred will be imported or the
 
319
master key otherwise.
 
320
</p>
 
321
<div class="variablelist"><table border="0">
 
322
<col align="left" valign="top">
 
323
<tbody>
 
324
<tr>
 
325
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
326
<td>The public key</td>
 
327
</tr>
 
328
<tr>
 
329
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
330
<td>The certificate to be imported</td>
 
331
</tr>
 
332
<tr>
 
333
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
334
<td>should be zero</td>
 
335
</tr>
 
336
<tr>
 
337
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
338
<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> (0) is returned, otherwise a
 
339
negative error value.</td>
 
340
</tr>
 
341
</tbody>
 
342
</table></div>
 
343
<p class="since">Since 2.12.0</p>
 
344
</div>
 
345
<hr>
 
346
<div class="refsect2">
 
347
<a name="gnutls-pubkey-get-preferred-hash-algorithm"></a><h3>gnutls_pubkey_get_preferred_hash_algorithm ()</h3>
 
348
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_preferred_hash_algorithm
 
349
                                                        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
350
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>,
 
351
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *mand</code></em>);</pre>
 
352
<p>
 
353
This function will read the certifcate and return the appropriate digest
 
354
algorithm to use for signing with this certificate. Some certificates (i.e.
 
355
DSA might not be able to sign without the preferred algorithm).
 
356
</p>
 
357
<div class="variablelist"><table border="0">
 
358
<col align="left" valign="top">
 
359
<tbody>
 
360
<tr>
 
361
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
362
<td>Holds the certificate</td>
 
363
</tr>
 
364
<tr>
 
365
<td><p><span class="term"><em class="parameter"><code>hash</code></em> :</span></p></td>
 
366
<td>The result of the call with the hash algorithm used for signature</td>
 
367
</tr>
 
368
<tr>
 
369
<td><p><span class="term"><em class="parameter"><code>mand</code></em> :</span></p></td>
 
370
<td>If non zero it means that the algorithm MUST use this hash. May be NULL.</td>
 
371
</tr>
 
372
<tr>
 
373
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
374
<td>the 0 if the hash algorithm is found. A negative error code is
 
375
returned on error.</td>
 
376
</tr>
 
377
</tbody>
 
378
</table></div>
 
379
<p class="since">Since 2.12.0</p>
 
380
</div>
 
381
<hr>
 
382
<div class="refsect2">
 
383
<a name="gnutls-pubkey-get-pk-rsa-raw"></a><h3>gnutls_pubkey_get_pk_rsa_raw ()</h3>
 
384
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_pk_rsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
385
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *m</code></em>,
 
386
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
 
387
<p>
 
388
This function will export the RSA public key's parameters found in
 
389
the given structure.  The new parameters will be allocated using
 
390
<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.
 
391
</p>
 
392
<div class="variablelist"><table border="0">
 
393
<col align="left" valign="top">
 
394
<tbody>
 
395
<tr>
 
396
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
397
<td>Holds the certificate</td>
 
398
</tr>
 
399
<tr>
 
400
<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
 
401
<td>will hold the modulus</td>
 
402
</tr>
 
403
<tr>
 
404
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
 
405
<td>will hold the public exponent</td>
 
406
</tr>
 
407
<tr>
 
408
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
409
<td>
 
410
<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 a negative error code.</td>
 
411
</tr>
 
412
</tbody>
 
413
</table></div>
 
414
<p class="since">Since 2.12.0</p>
 
415
</div>
 
416
<hr>
 
417
<div class="refsect2">
 
418
<a name="gnutls-pubkey-get-pk-dsa-raw"></a><h3>gnutls_pubkey_get_pk_dsa_raw ()</h3>
 
419
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_pk_dsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
420
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *p</code></em>,
 
421
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *q</code></em>,
 
422
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *g</code></em>,
 
423
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
 
424
<p>
 
425
This function will export the DSA public key's parameters found in
 
426
the given certificate.  The new parameters will be allocated using
 
427
<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.
 
428
</p>
 
429
<div class="variablelist"><table border="0">
 
430
<col align="left" valign="top">
 
431
<tbody>
 
432
<tr>
 
433
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
434
<td>Holds the public key</td>
 
435
</tr>
 
436
<tr>
 
437
<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
 
438
<td>will hold the p</td>
 
439
</tr>
 
440
<tr>
 
441
<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
 
442
<td>will hold the q</td>
 
443
</tr>
 
444
<tr>
 
445
<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
 
446
<td>will hold the g</td>
 
447
</tr>
 
448
<tr>
 
449
<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
 
450
<td>will hold the y</td>
 
451
</tr>
 
452
<tr>
 
453
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
454
<td>
 
455
<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 a negative error code.</td>
 
456
</tr>
 
457
</tbody>
 
458
</table></div>
 
459
<p class="since">Since 2.12.0</p>
 
460
</div>
 
461
<hr>
 
462
<div class="refsect2">
 
463
<a name="gnutls-pubkey-export"></a><h3>gnutls_pubkey_export ()</h3>
 
464
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_export                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
465
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
 
466
                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
 
467
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
 
468
<p>
 
469
This function will export the certificate to DER or PEM format.
 
470
</p>
 
471
<p>
 
472
If the buffer provided is not long enough to hold the output, then
 
473
*output_data_size is updated and <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
 
474
be returned.
 
475
</p>
 
476
<p>
 
477
If the structure is PEM encoded, it will have a header
 
478
of "BEGIN CERTIFICATE".
 
479
</p>
 
480
<div class="variablelist"><table border="0">
 
481
<col align="left" valign="top">
 
482
<tbody>
 
483
<tr>
 
484
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
485
<td>Holds the certificate</td>
 
486
</tr>
 
487
<tr>
 
488
<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
 
489
<td>the format of output params. One of PEM or DER.</td>
 
490
</tr>
 
491
<tr>
 
492
<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
 
493
<td>will contain a certificate PEM or DER encoded</td>
 
494
</tr>
 
495
<tr>
 
496
<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
 
497
<td>holds the size of output_data (and will be
 
498
replaced by the actual size of parameters)</td>
 
499
</tr>
 
500
<tr>
 
501
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
502
<td>In case of failure a negative error code will be
 
503
returned, and 0 on success.</td>
 
504
</tr>
 
505
</tbody>
 
506
</table></div>
 
507
<p class="since">Since 2.12.0</p>
 
508
</div>
 
509
<hr>
 
510
<div class="refsect2">
 
511
<a name="gnutls-pubkey-get-key-id"></a><h3>gnutls_pubkey_get_key_id ()</h3>
 
512
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_key_id            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
513
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
514
                                                         <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
 
515
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
 
516
<p>
 
517
This function will return a unique ID the depends on the public
 
518
key parameters. This ID can be used in checking whether a
 
519
certificate corresponds to the given public key.
 
520
</p>
 
521
<p>
 
522
If the buffer provided is not long enough to hold the output, then
 
523
*output_data_size is updated and <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
 
524
be returned.  The output will normally be a SHA-1 hash output,
 
525
which is 20 bytes.
 
526
</p>
 
527
<div class="variablelist"><table border="0">
 
528
<col align="left" valign="top">
 
529
<tbody>
 
530
<tr>
 
531
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
532
<td>Holds the public key</td>
 
533
</tr>
 
534
<tr>
 
535
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
536
<td>should be 0 for now</td>
 
537
</tr>
 
538
<tr>
 
539
<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
 
540
<td>will contain the key ID</td>
 
541
</tr>
 
542
<tr>
 
543
<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
 
544
<td>holds the size of output_data (and will be
 
545
replaced by the actual size of parameters)</td>
 
546
</tr>
 
547
<tr>
 
548
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
549
<td>In case of failure a negative error code will be
 
550
returned, and 0 on success.</td>
 
551
</tr>
 
552
</tbody>
 
553
</table></div>
 
554
<p class="since">Since 2.12.0</p>
 
555
</div>
 
556
<hr>
 
557
<div class="refsect2">
 
558
<a name="gnutls-pubkey-get-key-usage"></a><h3>gnutls_pubkey_get_key_usage ()</h3>
 
559
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_key_usage         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
560
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *usage</code></em>);</pre>
 
561
<p>
 
562
This function will return the key usage of the public key.
 
563
</p>
 
564
<div class="variablelist"><table border="0">
 
565
<col align="left" valign="top">
 
566
<tbody>
 
567
<tr>
 
568
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
569
<td>should contain a <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> structure</td>
 
570
</tr>
 
571
<tr>
 
572
<td><p><span class="term"><em class="parameter"><code>usage</code></em> :</span></p></td>
 
573
<td>If set will return the number of bits of the parameters (may be NULL)</td>
 
574
</tr>
 
575
<tr>
 
576
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
577
<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> (0) is returned, otherwise a
 
578
negative error value.</td>
 
579
</tr>
 
580
</tbody>
 
581
</table></div>
 
582
<p class="since">Since 2.12.0</p>
 
583
</div>
 
584
<hr>
 
585
<div class="refsect2">
 
586
<a name="gnutls-pubkey-set-key-usage"></a><h3>gnutls_pubkey_set_key_usage ()</h3>
 
587
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_set_key_usage         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
588
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);</pre>
 
589
<p>
 
590
This function will set the key usage flags of the public key. This
 
591
is only useful if the key is to be exported to a certificate or
 
592
certificate request.
 
593
</p>
 
594
<div class="variablelist"><table border="0">
 
595
<col align="left" valign="top">
 
596
<tbody>
 
597
<tr>
 
598
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
599
<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
 
600
</td>
 
601
</tr>
 
602
<tr>
 
603
<td><p><span class="term"><em class="parameter"><code>usage</code></em> :</span></p></td>
 
604
<td>an ORed sequence of the GNUTLS_KEY_* elements.</td>
 
605
</tr>
 
606
<tr>
 
607
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
608
<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> (0) is returned, otherwise a
 
609
negative error value.</td>
 
610
</tr>
 
611
</tbody>
 
612
</table></div>
 
613
<p class="since">Since 2.12.0</p>
 
614
</div>
 
615
<hr>
 
616
<div class="refsect2">
 
617
<a name="gnutls-pubkey-import"></a><h3>gnutls_pubkey_import ()</h3>
 
618
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import                (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
619
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
 
620
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
 
621
<p>
 
622
This function will convert the given DER or PEM encoded Public key 
 
623
to the native gnutls_pubkey_t format.The output will be stored 
 
624
in <em class="parameter"><code>key</code></em>. 
 
625
If the Certificate is PEM encoded it should have a header of "PUBLIC KEY".
 
626
</p>
 
627
<div class="variablelist"><table border="0">
 
628
<col align="left" valign="top">
 
629
<tbody>
 
630
<tr>
 
631
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
632
<td>The structure to store the parsed public key.</td>
 
633
</tr>
 
634
<tr>
 
635
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 
636
<td>The DER or PEM encoded certificate.</td>
 
637
</tr>
 
638
<tr>
 
639
<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
 
640
<td>One of DER or PEM</td>
 
641
</tr>
 
642
<tr>
 
643
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
644
<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> (0) is returned, otherwise a
 
645
negative error value.</td>
 
646
</tr>
 
647
</tbody>
 
648
</table></div>
 
649
<p class="since">Since 2.12.0</p>
 
650
</div>
 
651
<hr>
 
652
<div class="refsect2">
 
653
<a name="gnutls-pubkey-import-pkcs11-url"></a><h3>gnutls_pubkey_import_pkcs11_url ()</h3>
 
654
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_pkcs11_url     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
655
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
656
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
657
<p>
 
658
This function will import a PKCS 11 certificate to a <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>
 
659
structure.
 
660
</p>
 
661
<div class="variablelist"><table border="0">
 
662
<col align="left" valign="top">
 
663
<tbody>
 
664
<tr>
 
665
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
666
<td>A key of type <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>
 
667
</td>
 
668
</tr>
 
669
<tr>
 
670
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
671
<td>A PKCS 11 url</td>
 
672
</tr>
 
673
<tr>
 
674
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
675
<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
 
676
</tr>
 
677
<tr>
 
678
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
679
<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> (0) is returned, otherwise a
 
680
negative error value.</td>
 
681
</tr>
 
682
</tbody>
 
683
</table></div>
 
684
<p class="since">Since 2.12.0</p>
 
685
</div>
 
686
<hr>
 
687
<div class="refsect2">
 
688
<a name="gnutls-pubkey-import-dsa-raw"></a><h3>gnutls_pubkey_import_dsa_raw ()</h3>
 
689
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_dsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
690
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *p</code></em>,
 
691
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *q</code></em>,
 
692
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *g</code></em>,
 
693
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *y</code></em>);</pre>
 
694
<p>
 
695
This function will convert the given DSA raw parameters to the
 
696
native <a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> format.  The output will be stored
 
697
in <em class="parameter"><code>key</code></em>.
 
698
</p>
 
699
<div class="variablelist"><table border="0">
 
700
<col align="left" valign="top">
 
701
<tbody>
 
702
<tr>
 
703
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
704
<td>The structure to store the parsed key</td>
 
705
</tr>
 
706
<tr>
 
707
<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
 
708
<td>holds the p</td>
 
709
</tr>
 
710
<tr>
 
711
<td><p><span class="term"><em class="parameter"><code>q</code></em> :</span></p></td>
 
712
<td>holds the q</td>
 
713
</tr>
 
714
<tr>
 
715
<td><p><span class="term"><em class="parameter"><code>g</code></em> :</span></p></td>
 
716
<td>holds the g</td>
 
717
</tr>
 
718
<tr>
 
719
<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
 
720
<td>holds the y</td>
 
721
</tr>
 
722
<tr>
 
723
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
724
<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> (0) is returned, otherwise a
 
725
negative error value.</td>
 
726
</tr>
 
727
</tbody>
 
728
</table></div>
 
729
<p class="since">Since 2.12.0</p>
 
730
</div>
 
731
<hr>
 
732
<div class="refsect2">
 
733
<a name="gnutls-pubkey-import-rsa-raw"></a><h3>gnutls_pubkey_import_rsa_raw ()</h3>
 
734
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_import_rsa_raw        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
735
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *m</code></em>,
 
736
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *e</code></em>);</pre>
 
737
<p>
 
738
This function will replace the parameters in the given structure.
 
739
The new parameters should be stored in the appropriate
 
740
gnutls_datum.
 
741
</p>
 
742
<div class="variablelist"><table border="0">
 
743
<col align="left" valign="top">
 
744
<tbody>
 
745
<tr>
 
746
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
747
<td>Is a structure will hold the parameters</td>
 
748
</tr>
 
749
<tr>
 
750
<td><p><span class="term"><em class="parameter"><code>m</code></em> :</span></p></td>
 
751
<td>holds the modulus</td>
 
752
</tr>
 
753
<tr>
 
754
<td><p><span class="term"><em class="parameter"><code>e</code></em> :</span></p></td>
 
755
<td>holds the public exponent</td>
 
756
</tr>
 
757
<tr>
 
758
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
759
<td>
 
760
<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 negative error code.</td>
 
761
</tr>
 
762
</tbody>
 
763
</table></div>
 
764
<p class="since">Since 2.12.0</p>
 
765
</div>
 
766
<hr>
 
767
<div class="refsect2">
 
768
<a name="gnutls-x509-crt-set-pubkey"></a><h3>gnutls_x509_crt_set_pubkey ()</h3>
 
769
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_set_pubkey          (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
 
770
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);</pre>
 
771
<p>
 
772
This function will set the public parameters from the given public
 
773
key to the request.
 
774
</p>
 
775
<div class="variablelist"><table border="0">
 
776
<col align="left" valign="top">
 
777
<tbody>
 
778
<tr>
 
779
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
780
<td>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> structure</td>
 
781
</tr>
 
782
<tr>
 
783
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
784
<td>holds a public key</td>
 
785
</tr>
 
786
<tr>
 
787
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
788
<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> (0) is returned, otherwise a
 
789
negative error value.</td>
 
790
</tr>
 
791
</tbody>
 
792
</table></div>
 
793
<p class="since">Since 2.12.0</p>
 
794
</div>
 
795
<hr>
 
796
<div class="refsect2">
 
797
<a name="gnutls-x509-crq-set-pubkey"></a><h3>gnutls_x509_crq_set_pubkey ()</h3>
 
798
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_set_pubkey          (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
 
799
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>);</pre>
 
800
<p>
 
801
This function will set the public parameters from the given public
 
802
key to the request.
 
803
</p>
 
804
<div class="variablelist"><table border="0">
 
805
<col align="left" valign="top">
 
806
<tbody>
 
807
<tr>
 
808
<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
 
809
<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
 
810
</tr>
 
811
<tr>
 
812
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
813
<td>holds a public key</td>
 
814
</tr>
 
815
<tr>
 
816
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
817
<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> (0) is returned, otherwise a
 
818
negative error value.</td>
 
819
</tr>
 
820
</tbody>
 
821
</table></div>
 
822
<p class="since">Since 2.12.0</p>
 
823
</div>
 
824
<hr>
 
825
<div class="refsect2">
 
826
<a name="gnutls-pubkey-verify-hash"></a><h3>gnutls_pubkey_verify_hash ()</h3>
 
827
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_verify_hash           (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
828
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
829
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash</code></em>,
 
830
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>);</pre>
 
831
<p>
 
832
This function will verify the given signed digest, using the
 
833
parameters from the certificate.
 
834
</p>
 
835
<div class="variablelist"><table border="0">
 
836
<col align="left" valign="top">
 
837
<tbody>
 
838
<tr>
 
839
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
840
<td>Holds the certificate</td>
 
841
</tr>
 
842
<tr>
 
843
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
844
<td>should be 0 for now</td>
 
845
</tr>
 
846
<tr>
 
847
<td><p><span class="term"><em class="parameter"><code>hash</code></em> :</span></p></td>
 
848
<td>holds the hash digest to be verified</td>
 
849
</tr>
 
850
<tr>
 
851
<td><p><span class="term"><em class="parameter"><code>signature</code></em> :</span></p></td>
 
852
<td>contains the signature</td>
 
853
</tr>
 
854
<tr>
 
855
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
856
<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> (0) is returned, otherwise a
 
857
negative error value (<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED"><code class="literal">GNUTLS_E_PK_SIG_VERIFY_FAILED</code></a> in verification failure).</td>
 
858
</tr>
 
859
</tbody>
 
860
</table></div>
 
861
<p class="since">Since 2.12.0</p>
 
862
</div>
 
863
<hr>
 
864
<div class="refsect2">
 
865
<a name="gnutls-pubkey-get-verify-algorithm"></a><h3>gnutls_pubkey_get_verify_algorithm ()</h3>
 
866
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_pubkey_get_verify_algorithm  (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> key</code></em>,
 
867
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *signature</code></em>,
 
868
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>);</pre>
 
869
<p>
 
870
This function will read the certifcate and the signed data to
 
871
determine the hash algorithm used to generate the signature.
 
872
</p>
 
873
<div class="variablelist"><table border="0">
 
874
<col align="left" valign="top">
 
875
<tbody>
 
876
<tr>
 
877
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
878
<td>Holds the certificate</td>
 
879
</tr>
 
880
<tr>
 
881
<td><p><span class="term"><em class="parameter"><code>signature</code></em> :</span></p></td>
 
882
<td>contains the signature</td>
 
883
</tr>
 
884
<tr>
 
885
<td><p><span class="term"><em class="parameter"><code>hash</code></em> :</span></p></td>
 
886
<td>The result of the call with the hash algorithm used for signature</td>
 
887
</tr>
 
888
<tr>
 
889
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
890
<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> (0) is returned, otherwise a
 
891
negative error value.</td>
 
892
</tr>
 
893
</tbody>
 
894
</table></div>
 
895
<p class="since">Since 2.12.0</p>
 
896
</div>
 
897
<hr>
 
898
<div class="refsect2">
 
899
<a name="gnutls-privkey-st"></a><h3>struct gnutls_privkey_st</h3>
 
900
<pre class="programlisting">struct gnutls_privkey_st;</pre>
 
901
<p>
 
902
</p>
 
903
</div>
 
904
<hr>
 
905
<div class="refsect2">
 
906
<a name="gnutls-privkey-t"></a><h3>gnutls_privkey_t</h3>
 
907
<pre class="programlisting">typedef struct gnutls_privkey_st *gnutls_privkey_t;
 
908
</pre>
 
909
<p>
 
910
</p>
 
911
</div>
 
912
<hr>
 
913
<div class="refsect2">
 
914
<a name="gnutls-privkey-init"></a><h3>gnutls_privkey_init ()</h3>
 
915
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_init                 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> *key</code></em>);</pre>
 
916
<p>
 
917
This function will initialize an private key structure.
 
918
</p>
 
919
<div class="variablelist"><table border="0">
 
920
<col align="left" valign="top">
 
921
<tbody>
 
922
<tr>
 
923
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
924
<td>The structure to be initialized</td>
 
925
</tr>
 
926
<tr>
 
927
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
928
<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> (0) is returned, otherwise a
 
929
negative error value.</td>
 
930
</tr>
 
931
</tbody>
 
932
</table></div>
 
933
<p class="since">Since 2.12.0</p>
 
934
</div>
 
935
<hr>
 
936
<div class="refsect2">
 
937
<a name="gnutls-privkey-deinit"></a><h3>gnutls_privkey_deinit ()</h3>
 
938
<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_privkey_deinit               (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
 
939
<p>
 
940
This function will deinitialize a private key structure.
 
941
</p>
 
942
<div class="variablelist"><table border="0">
 
943
<col align="left" valign="top">
 
944
<tbody><tr>
 
945
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
946
<td>The structure to be deinitialized</td>
 
947
</tr></tbody>
 
948
</table></div>
 
949
<p class="since">Since 2.12.0</p>
 
950
</div>
 
951
<hr>
 
952
<div class="refsect2">
 
953
<a name="gnutls-privkey-get-pk-algorithm"></a><h3>gnutls_privkey_get_pk_algorithm ()</h3>
 
954
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_get_pk_algorithm     (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
 
955
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
 
956
<p>
 
957
This function will return the public key algorithm of a private
 
958
key and if possible will return a number of bits that indicates
 
959
the security parameter of the key.
 
960
</p>
 
961
<div class="variablelist"><table border="0">
 
962
<col align="left" valign="top">
 
963
<tbody>
 
964
<tr>
 
965
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
966
<td>should contain a <a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure</td>
 
967
</tr>
 
968
<tr>
 
969
<td><p><span class="term"><em class="parameter"><code>bits</code></em> :</span></p></td>
 
970
<td>If set will return the number of bits of the parameters (may be NULL)</td>
 
971
</tr>
 
972
<tr>
 
973
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
974
<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
 
975
success, or a negative error code on error.</td>
 
976
</tr>
 
977
</tbody>
 
978
</table></div>
 
979
<p class="since">Since 2.12.0</p>
 
980
</div>
 
981
<hr>
 
982
<div class="refsect2">
 
983
<a name="gnutls-privkey-get-type"></a><h3>gnutls_privkey_get_type ()</h3>
 
984
<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-privkey-type-t" title="enum gnutls_privkey_type_t"><span class="returnvalue">gnutls_privkey_type_t</span></a>  gnutls_privkey_get_type          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
 
985
<p>
 
986
This function will return the type of the private key. This is
 
987
actually the type of the subsystem used to set this private key.
 
988
</p>
 
989
<div class="variablelist"><table border="0">
 
990
<col align="left" valign="top">
 
991
<tbody>
 
992
<tr>
 
993
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
994
<td>should contain a <a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure</td>
 
995
</tr>
 
996
<tr>
 
997
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
998
<td>a member of the <a class="link" href="gnutls-gnutls.html#gnutls-privkey-type-t" title="enum gnutls_privkey_type_t"><span class="type">gnutls_privkey_type_t</span></a> enumeration on
 
999
success, or a negative error code on error.</td>
 
1000
</tr>
 
1001
</tbody>
 
1002
</table></div>
 
1003
<p class="since">Since 2.12.0</p>
 
1004
</div>
 
1005
<hr>
 
1006
<div class="refsect2">
 
1007
<a name="GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"></a><h3>GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</h3>
 
1008
<pre class="programlisting">#define GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE (1&lt;&lt;0)
 
1009
</pre>
 
1010
<p>
 
1011
</p>
 
1012
</div>
 
1013
<hr>
 
1014
<div class="refsect2">
 
1015
<a name="gnutls-privkey-import-pkcs11"></a><h3>gnutls_privkey_import_pkcs11 ()</h3>
 
1016
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_import_pkcs11        (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
 
1017
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> key</code></em>,
 
1018
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
1019
<p>
 
1020
This function will import the given private key to the abstract
 
1021
<a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure.
 
1022
</p>
 
1023
<p>
 
1024
The <a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> object must not be deallocated
 
1025
during the lifetime of this structure.
 
1026
</p>
 
1027
<p>
 
1028
<em class="parameter"><code>flags</code></em> might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
 
1029
and <code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code>.
 
1030
</p>
 
1031
<div class="variablelist"><table border="0">
 
1032
<col align="left" valign="top">
 
1033
<tbody>
 
1034
<tr>
 
1035
<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
 
1036
<td>The private key</td>
 
1037
</tr>
 
1038
<tr>
 
1039
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1040
<td>The private key to be imported</td>
 
1041
</tr>
 
1042
<tr>
 
1043
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1044
<td>Flags for the import</td>
 
1045
</tr>
 
1046
<tr>
 
1047
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1048
<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> (0) is returned, otherwise a
 
1049
negative error value.</td>
 
1050
</tr>
 
1051
</tbody>
 
1052
</table></div>
 
1053
<p class="since">Since 2.12.0</p>
 
1054
</div>
 
1055
<hr>
 
1056
<div class="refsect2">
 
1057
<a name="gnutls-privkey-import-x509"></a><h3>gnutls_privkey_import_x509 ()</h3>
 
1058
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_import_x509          (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
 
1059
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>,
 
1060
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
1061
<p>
 
1062
This function will import the given private key to the abstract
 
1063
<a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure.
 
1064
</p>
 
1065
<p>
 
1066
The <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> object must not be deallocated
 
1067
during the lifetime of this structure.
 
1068
</p>
 
1069
<p>
 
1070
<em class="parameter"><code>flags</code></em> might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
 
1071
and <code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code>.
 
1072
</p>
 
1073
<div class="variablelist"><table border="0">
 
1074
<col align="left" valign="top">
 
1075
<tbody>
 
1076
<tr>
 
1077
<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
 
1078
<td>The private key</td>
 
1079
</tr>
 
1080
<tr>
 
1081
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1082
<td>The private key to be imported</td>
 
1083
</tr>
 
1084
<tr>
 
1085
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1086
<td>Flags for the import</td>
 
1087
</tr>
 
1088
<tr>
 
1089
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1090
<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> (0) is returned, otherwise a
 
1091
negative error value.</td>
 
1092
</tr>
 
1093
</tbody>
 
1094
</table></div>
 
1095
<p class="since">Since 2.12.0</p>
 
1096
</div>
 
1097
<hr>
 
1098
<div class="refsect2">
 
1099
<a name="gnutls-privkey-import-openpgp"></a><h3>gnutls_privkey_import_openpgp ()</h3>
 
1100
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_import_openpgp       (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
 
1101
                                                         <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>,
 
1102
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
1103
<p>
 
1104
This function will import the given private key to the abstract
 
1105
<a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> structure.
 
1106
</p>
 
1107
<p>
 
1108
The <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> object must not be deallocated
 
1109
during the lifetime of this structure. The subkey set as
 
1110
preferred will be used, or the master key otherwise.
 
1111
</p>
 
1112
<p>
 
1113
<em class="parameter"><code>flags</code></em> might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS" title="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
 
1114
and <code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code>.
 
1115
</p>
 
1116
<div class="variablelist"><table border="0">
 
1117
<col align="left" valign="top">
 
1118
<tbody>
 
1119
<tr>
 
1120
<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
 
1121
<td>The private key</td>
 
1122
</tr>
 
1123
<tr>
 
1124
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1125
<td>The private key to be imported</td>
 
1126
</tr>
 
1127
<tr>
 
1128
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1129
<td>Flags for the import</td>
 
1130
</tr>
 
1131
<tr>
 
1132
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1133
<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> (0) is returned, otherwise a
 
1134
negative error value.</td>
 
1135
</tr>
 
1136
</tbody>
 
1137
</table></div>
 
1138
<p class="since">Since 2.12.0</p>
 
1139
</div>
 
1140
<hr>
 
1141
<div class="refsect2">
 
1142
<a name="gnutls-privkey-sign-data"></a><h3>gnutls_privkey_sign_data ()</h3>
 
1143
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_sign_data            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
 
1144
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash</code></em>,
 
1145
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
1146
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *data</code></em>,
 
1147
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);</pre>
 
1148
<p>
 
1149
This function will sign the given data using a signature algorithm
 
1150
supported by the private key. Signature algorithms are always used
 
1151
together with a hash functions.  Different hash functions may be
 
1152
used for the RSA algorithm, but only the SHA family for the DSA keys.
 
1153
</p>
 
1154
<p>
 
1155
Use <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()"><code class="function">gnutls_pubkey_get_preferred_hash_algorithm()</code></a> to determine
 
1156
the hash algorithm.
 
1157
</p>
 
1158
<div class="variablelist"><table border="0">
 
1159
<col align="left" valign="top">
 
1160
<tbody>
 
1161
<tr>
 
1162
<td><p><span class="term"><em class="parameter"><code>signer</code></em> :</span></p></td>
 
1163
<td>Holds the key</td>
 
1164
</tr>
 
1165
<tr>
 
1166
<td><p><span class="term"><em class="parameter"><code>hash</code></em> :</span></p></td>
 
1167
<td>should be a digest algorithm</td>
 
1168
</tr>
 
1169
<tr>
 
1170
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1171
<td>should be 0 for now</td>
 
1172
</tr>
 
1173
<tr>
 
1174
<td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
 
1175
<td>holds the data to be signed</td>
 
1176
</tr>
 
1177
<tr>
 
1178
<td><p><span class="term"><em class="parameter"><code>signature</code></em> :</span></p></td>
 
1179
<td>will contain the signature allocate with <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a>
 
1180
</td>
 
1181
</tr>
 
1182
<tr>
 
1183
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1184
<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> (0) is returned, otherwise a
 
1185
negative error value.</td>
 
1186
</tr>
 
1187
</tbody>
 
1188
</table></div>
 
1189
<p class="since">Since 2.12.0</p>
 
1190
</div>
 
1191
<hr>
 
1192
<div class="refsect2">
 
1193
<a name="gnutls-privkey-sign-hash"></a><h3>gnutls_privkey_sign_hash ()</h3>
 
1194
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_sign_hash            (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
 
1195
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash_algo</code></em>,
 
1196
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
1197
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *hash_data</code></em>,
 
1198
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *signature</code></em>);</pre>
 
1199
<p>
 
1200
This function will sign the given hashed data using a signature algorithm
 
1201
supported by the private key. Signature algorithms are always used
 
1202
together with a hash functions.  Different hash functions may be
 
1203
used for the RSA algorithm, but only SHA-XXX for the DSA keys.
 
1204
</p>
 
1205
<p>
 
1206
Use <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()"><code class="function">gnutls_pubkey_get_preferred_hash_algorithm()</code></a> to determine
 
1207
the hash algorithm.
 
1208
</p>
 
1209
<div class="variablelist"><table border="0">
 
1210
<col align="left" valign="top">
 
1211
<tbody>
 
1212
<tr>
 
1213
<td><p><span class="term"><em class="parameter"><code>signer</code></em> :</span></p></td>
 
1214
<td>Holds the signer's key</td>
 
1215
</tr>
 
1216
<tr>
 
1217
<td><p><span class="term"><em class="parameter"><code>hash_algo</code></em> :</span></p></td>
 
1218
<td>The hash algorithm used</td>
 
1219
</tr>
 
1220
<tr>
 
1221
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1222
<td>zero for now</td>
 
1223
</tr>
 
1224
<tr>
 
1225
<td><p><span class="term"><em class="parameter"><code>hash_data</code></em> :</span></p></td>
 
1226
<td>holds the data to be signed</td>
 
1227
</tr>
 
1228
<tr>
 
1229
<td><p><span class="term"><em class="parameter"><code>signature</code></em> :</span></p></td>
 
1230
<td>will contain newly allocated signature</td>
 
1231
</tr>
 
1232
<tr>
 
1233
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1234
<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> (0) is returned, otherwise a
 
1235
negative error value.</td>
 
1236
</tr>
 
1237
</tbody>
 
1238
</table></div>
 
1239
<p class="since">Since 2.12.0</p>
 
1240
</div>
 
1241
<hr>
 
1242
<div class="refsect2">
 
1243
<a name="gnutls-privkey-decrypt-data"></a><h3>gnutls_privkey_decrypt_data ()</h3>
 
1244
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_privkey_decrypt_data         (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
 
1245
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
 
1246
                                                         <em class="parameter"><code>const <span class="type">gnutls_datum_t</span> *ciphertext</code></em>,
 
1247
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *plaintext</code></em>);</pre>
 
1248
<p>
 
1249
This function will decrypt the given data using the algorithm
 
1250
supported by the private key.
 
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>Holds the key</td>
 
1258
</tr>
 
1259
<tr>
 
1260
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1261
<td>zero for now</td>
 
1262
</tr>
 
1263
<tr>
 
1264
<td><p><span class="term"><em class="parameter"><code>ciphertext</code></em> :</span></p></td>
 
1265
<td>holds the data to be decrypted</td>
 
1266
</tr>
 
1267
<tr>
 
1268
<td><p><span class="term"><em class="parameter"><code>plaintext</code></em> :</span></p></td>
 
1269
<td>will contain the decrypted data, allocated with <a class="link" href="gnutls-gnutls.html#gnutls-malloc" title="gnutls_malloc"><code class="function">gnutls_malloc()</code></a>
 
1270
</td>
 
1271
</tr>
 
1272
<tr>
 
1273
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1274
<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> (0) is returned, otherwise a
 
1275
negative error value.</td>
 
1276
</tr>
 
1277
</tbody>
 
1278
</table></div>
 
1279
<p class="since">Since 2.12.0</p>
 
1280
</div>
 
1281
<hr>
 
1282
<div class="refsect2">
 
1283
<a name="gnutls-x509-crt-privkey-sign"></a><h3>gnutls_x509_crt_privkey_sign ()</h3>
 
1284
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crt_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
 
1285
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
 
1286
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
 
1287
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
 
1288
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
1289
<p>
 
1290
This function will sign the certificate with the issuer's private key, and
 
1291
will copy the issuer's information into the certificate.
 
1292
</p>
 
1293
<p>
 
1294
This must be the last step in a certificate generation since all
 
1295
the previously set parameters are now signed.
 
1296
</p>
 
1297
<div class="variablelist"><table border="0">
 
1298
<col align="left" valign="top">
 
1299
<tbody>
 
1300
<tr>
 
1301
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
1302
<td>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a>
 
1303
</td>
 
1304
</tr>
 
1305
<tr>
 
1306
<td><p><span class="term"><em class="parameter"><code>issuer</code></em> :</span></p></td>
 
1307
<td>is the certificate of the certificate issuer</td>
 
1308
</tr>
 
1309
<tr>
 
1310
<td><p><span class="term"><em class="parameter"><code>issuer_key</code></em> :</span></p></td>
 
1311
<td>holds the issuer's private key</td>
 
1312
</tr>
 
1313
<tr>
 
1314
<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
 
1315
<td>The message digest to use, <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS"><code class="literal">GNUTLS_DIG_SHA1</code></a> is a safe choice</td>
 
1316
</tr>
 
1317
<tr>
 
1318
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1319
<td>must be 0</td>
 
1320
</tr>
 
1321
<tr>
 
1322
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1323
<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> (0) is returned, otherwise a
 
1324
negative error value.</td>
 
1325
</tr>
 
1326
</tbody>
 
1327
</table></div>
 
1328
</div>
 
1329
<hr>
 
1330
<div class="refsect2">
 
1331
<a name="gnutls-x509-crl-privkey-sign"></a><h3>gnutls_x509_crl_privkey_sign ()</h3>
 
1332
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crl_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
 
1333
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
 
1334
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
 
1335
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
 
1336
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
1337
<p>
 
1338
This function will sign the CRL with the issuer's private key, and
 
1339
will copy the issuer's information into the CRL.
 
1340
</p>
 
1341
<p>
 
1342
This must be the last step in a certificate CRL since all
 
1343
the previously set parameters are now signed.
 
1344
</p>
 
1345
<div class="variablelist"><table border="0">
 
1346
<col align="left" valign="top">
 
1347
<tbody>
 
1348
<tr>
 
1349
<td><p><span class="term"><em class="parameter"><code>crl</code></em> :</span></p></td>
 
1350
<td>should contain a gnutls_x509_crl_t structure</td>
 
1351
</tr>
 
1352
<tr>
 
1353
<td><p><span class="term"><em class="parameter"><code>issuer</code></em> :</span></p></td>
 
1354
<td>is the certificate of the certificate issuer</td>
 
1355
</tr>
 
1356
<tr>
 
1357
<td><p><span class="term"><em class="parameter"><code>issuer_key</code></em> :</span></p></td>
 
1358
<td>holds the issuer's private key</td>
 
1359
</tr>
 
1360
<tr>
 
1361
<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
 
1362
<td>The message digest to use. GNUTLS_DIG_SHA1 is the safe choice unless you know what you're doing.</td>
 
1363
</tr>
 
1364
<tr>
 
1365
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1366
<td>must be 0</td>
 
1367
</tr>
 
1368
<tr>
 
1369
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1370
<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> (0) is returned, otherwise a
 
1371
negative error value.
 
1372
Since 2.12.0</td>
 
1373
</tr>
 
1374
</tbody>
 
1375
</table></div>
 
1376
</div>
 
1377
<hr>
 
1378
<div class="refsect2">
 
1379
<a name="gnutls-x509-crq-privkey-sign"></a><h3>gnutls_x509_crq_privkey_sign ()</h3>
 
1380
<pre class="programlisting"><span class="returnvalue">int</span>                 gnutls_x509_crq_privkey_sign        (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
 
1381
                                                         <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
 
1382
                                                         <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
 
1383
                                                         <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
 
1384
<p>
 
1385
This function will sign the certificate request with a private key.
 
1386
This must be the same key as the one used in
 
1387
<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()"><code class="function">gnutls_x509_crt_set_key()</code></a> since a certificate request is self
 
1388
signed.
 
1389
</p>
 
1390
<p>
 
1391
This must be the last step in a certificate request generation
 
1392
since all the previously set parameters are now signed.
 
1393
</p>
 
1394
<div class="variablelist"><table border="0">
 
1395
<col align="left" valign="top">
 
1396
<tbody>
 
1397
<tr>
 
1398
<td><p><span class="term"><em class="parameter"><code>crq</code></em> :</span></p></td>
 
1399
<td>should contain a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> structure</td>
 
1400
</tr>
 
1401
<tr>
 
1402
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1403
<td>holds a private key</td>
 
1404
</tr>
 
1405
<tr>
 
1406
<td><p><span class="term"><em class="parameter"><code>dig</code></em> :</span></p></td>
 
1407
<td>The message digest to use, i.e., <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS"><code class="literal">GNUTLS_DIG_SHA1</code></a>
 
1408
</td>
 
1409
</tr>
 
1410
<tr>
 
1411
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1412
<td>must be 0</td>
 
1413
</tr>
 
1414
<tr>
 
1415
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1416
<td>
 
1417
<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 a negative error code.
 
1418
<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_FOUND"><code class="literal">GNUTLS_E_ASN1_VALUE_NOT_FOUND</code></a> is returned if you didn't set all
 
1419
information in the certificate request (e.g., the version using
 
1420
<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()"><code class="function">gnutls_x509_crq_set_version()</code></a>).</td>
 
1421
</tr>
 
1422
</tbody>
 
1423
</table></div>
 
1424
<p class="since">Since 2.12.0</p>
 
1425
</div>
 
1426
</div>
 
1427
</div>
 
1428
<div class="footer">
 
1429
<hr>
 
1430
          Generated by GTK-Doc V1.17</div>
 
1431
</body>
 
1432
</html>
 
 
b'\\ No newline at end of file'