~ubuntu-branches/ubuntu/trusty/gnutls26/trusty

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Andreas Metzler
  • Date: 2011-10-01 15:28:13 UTC
  • mfrom: (12.1.20 sid)
  • Revision ID: package-import@ubuntu.com-20111001152813-yygm1c4cxonfxhzy
* New upstream version.
  + Allow CA importing of 0 certificates to succeed. Closes: #640639
* Add libp11-kit-dev to libgnutls-dev dependencies. (see #643811)
* [20_guiledocstring.diff] guile: Fix docstring extraction with CPP 4.5+.

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>pkcs11</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-x509.html" title="x509">
 
10
<link rel="next" href="gnutls-pkcs12.html" title="pkcs12">
 
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-x509.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-pkcs12.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-pkcs11.synopsis" class="shortcut">Top</a>
 
25
                   | 
 
26
                  <a href="#gnutls-pkcs11.description" class="shortcut">Description</a>
 
27
</td></tr>
 
28
</table>
 
29
<div class="refentry">
 
30
<a name="gnutls-pkcs11"></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-pkcs11.top_of_page"></a>pkcs11</span></h2>
 
34
<p>pkcs11</p>
 
35
</td>
 
36
<td valign="top" align="right"></td>
 
37
</tr></table></div>
 
38
<div class="refsynopsisdiv">
 
39
<a name="gnutls-pkcs11.synopsis"></a><h2>Synopsis</h2>
 
40
<pre class="synopsis">#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-MAX-PIN-LEN:CAPS" title="GNUTLS_PKCS11_MAX_PIN_LEN">GNUTLS_PKCS11_MAX_PIN_LEN</a>
 
41
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()">*gnutls_pkcs11_token_callback_t</a>)   (<em class="parameter"><code><span class="type">void</span> *const global_data</code></em>,
 
42
                                                         <em class="parameter"><code>const <span class="type">char</span> *const label</code></em>,
 
43
                                                         <em class="parameter"><code>const unsigned <span class="type">retry</span> Param3</code></em>);
 
44
enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-flag-t" title="enum gnutls_pkcs11_pin_flag_t">gnutls_pkcs11_pin_flag_t</a>;
 
45
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()">*gnutls_pkcs11_pin_callback_t</a>)     (<em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
 
46
                                                         <em class="parameter"><code><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> attempt</code></em>,
 
47
                                                         <em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
48
                                                         <em class="parameter"><code>const <span class="type">char</span> *token_label</code></em>,
 
49
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
50
struct              <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-st" title="struct gnutls_pkcs11_obj_st">gnutls_pkcs11_obj_st</a>;
 
51
typedef             <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t">gnutls_pkcs11_obj_t</a>;
 
52
#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL">GNUTLS_PKCS11_FLAG_MANUAL</a>
 
53
#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO">GNUTLS_PKCS11_FLAG_AUTO</a>
 
54
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-init" title="gnutls_pkcs11_init ()">gnutls_pkcs11_init</a>                  (<em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
 
55
                                                         <em class="parameter"><code>const <span class="type">char</span> *deprecated_config_file</code></em>);
 
56
<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-deinit" title="gnutls_pkcs11_deinit ()">gnutls_pkcs11_deinit</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
 
57
<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" title="gnutls_pkcs11_set_token_function ()">gnutls_pkcs11_set_token_function</a>    (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()"><span class="type">gnutls_pkcs11_token_callback_t</span></a> fn</code></em>,
 
58
                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);
 
59
<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()">gnutls_pkcs11_set_pin_function</a>      (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()"><span class="type">gnutls_pkcs11_pin_callback_t</span></a> fn</code></em>,
 
60
                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);
 
61
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" title="gnutls_pkcs11_add_provider ()">gnutls_pkcs11_add_provider</a>          (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
 
62
                                                         <em class="parameter"><code>const <span class="type">char</span> *params</code></em>);
 
63
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-init" title="gnutls_pkcs11_obj_init ()">gnutls_pkcs11_obj_init</a>              (<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>);
 
64
#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_LOGIN">GNUTLS_PKCS11_OBJ_FLAG_LOGIN</a>
 
65
#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</a>
 
66
#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE">GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</a>
 
67
enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t" title="enum gnutls_pkcs11_url_type_t">gnutls_pkcs11_url_type_t</a>;
 
68
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url" title="gnutls_pkcs11_obj_import_url ()">gnutls_pkcs11_obj_import_url</a>        (<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> Param1</code></em>,
 
69
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
70
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
71
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url" title="gnutls_pkcs11_obj_export_url ()">gnutls_pkcs11_obj_export_url</a>        (<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>,
 
72
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t" title="enum gnutls_pkcs11_url_type_t"><span class="type">gnutls_pkcs11_url_type_t</span></a> detailed</code></em>,
 
73
                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);
 
74
<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" title="gnutls_pkcs11_obj_deinit ()">gnutls_pkcs11_obj_deinit</a>            (<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>);
 
75
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export" title="gnutls_pkcs11_obj_export ()">gnutls_pkcs11_obj_export</a>            (<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>,
 
76
                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
 
77
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);
 
78
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt" title="gnutls_pkcs11_copy_x509_crt ()">gnutls_pkcs11_copy_x509_crt</a>         (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
79
                                                         <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>,
 
80
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
 
81
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
82
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey" title="gnutls_pkcs11_copy_x509_privkey ()">gnutls_pkcs11_copy_x509_privkey</a>     (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
83
                                                         <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>,
 
84
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
 
85
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> key_usage</code></em>,
 
86
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
87
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-delete-url" title="gnutls_pkcs11_delete_url ()">gnutls_pkcs11_delete_url</a>            (<em class="parameter"><code>const <span class="type">char</span> *object_url</code></em>,
 
88
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
89
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-secret-key" title="gnutls_pkcs11_copy_secret_key ()">gnutls_pkcs11_copy_secret_key</a>       (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
90
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>,
 
91
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
 
92
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> key_usage</code></em>,
 
93
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
94
enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t">gnutls_pkcs11_obj_info_t</a>;
 
95
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info" title="gnutls_pkcs11_obj_get_info ()">gnutls_pkcs11_obj_get_info</a>          (<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> crt</code></em>,
 
96
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
 
97
                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
 
98
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);
 
99
enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t">gnutls_pkcs11_obj_attr_t</a>;
 
100
enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t">gnutls_pkcs11_token_info_t</a>;
 
101
enum                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t">gnutls_pkcs11_obj_type_t</a>;
 
102
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-init" title="gnutls_pkcs11_token_init ()">gnutls_pkcs11_token_init</a>            (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
103
                                                         <em class="parameter"><code>const <span class="type">char</span> *so_pin</code></em>,
 
104
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>);
 
105
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-mechanism" title="gnutls_pkcs11_token_get_mechanism ()">gnutls_pkcs11_token_get_mechanism</a>   (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
106
                                                         <em class="parameter"><code><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
 
107
                                                         <em class="parameter"><code>unsigned <span class="type">long</span> *mechanism</code></em>);
 
108
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-set-pin" title="gnutls_pkcs11_token_set_pin ()">gnutls_pkcs11_token_set_pin</a>         (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
109
                                                         <em class="parameter"><code>const <span class="type">char</span> *oldpin</code></em>,
 
110
                                                         <em class="parameter"><code>const <span class="type">char</span> *newpin</code></em>,
 
111
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
112
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url" title="gnutls_pkcs11_token_get_url ()">gnutls_pkcs11_token_get_url</a>         (<em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> seq</code></em>,
 
113
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t" title="enum gnutls_pkcs11_url_type_t"><span class="type">gnutls_pkcs11_url_type_t</span></a> detailed</code></em>,
 
114
                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);
 
115
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info" title="gnutls_pkcs11_token_get_info ()">gnutls_pkcs11_token_get_info</a>        (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
116
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t"><span class="type">gnutls_pkcs11_token_info_t</span></a> ttype</code></em>,
 
117
                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
 
118
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);
 
119
#define             <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS" title="GNUTLS_PKCS11_TOKEN_HW">GNUTLS_PKCS11_TOKEN_HW</a>
 
120
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags" title="gnutls_pkcs11_token_get_flags ()">gnutls_pkcs11_token_get_flags</a>       (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
121
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *flags</code></em>);
 
122
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url" title="gnutls_pkcs11_obj_list_import_url ()">gnutls_pkcs11_obj_list_import_url</a>   (<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> *p_list</code></em>,
 
123
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *const n_list</code></em>,
 
124
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
125
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t"><span class="type">gnutls_pkcs11_obj_attr_t</span></a> attrs</code></em>,
 
126
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
127
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11" title="gnutls_x509_crt_import_pkcs11 ()">gnutls_x509_crt_import_pkcs11</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>,
 
128
                                                         <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> pkcs11_crt</code></em>);
 
129
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11-url" title="gnutls_x509_crt_import_pkcs11_url ()">gnutls_x509_crt_import_pkcs11_url</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>,
 
130
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
131
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
132
<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="returnvalue">gnutls_pkcs11_obj_type_t</span></a>  <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-type" title="gnutls_pkcs11_obj_get_type ()">gnutls_pkcs11_obj_get_type</a>    (<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> certificate</code></em>);
 
133
const <span class="returnvalue">char</span> *        <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name" title="gnutls_pkcs11_type_get_name ()">gnutls_pkcs11_type_get_name</a>         (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="type">gnutls_pkcs11_obj_type_t</span></a> Param1</code></em>);
 
134
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-list-import-pkcs11" title="gnutls_x509_crt_list_import_pkcs11 ()">gnutls_x509_crt_list_import_pkcs11</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> *certs</code></em>,
 
135
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> cert_max</code></em>,
 
136
                                                         <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> * const objs</code></em>,
 
137
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
138
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init" title="gnutls_pkcs11_privkey_init ()">gnutls_pkcs11_privkey_init</a>          (<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>);
 
139
<span class="returnvalue">void</span>                <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit" title="gnutls_pkcs11_privkey_deinit ()">gnutls_pkcs11_privkey_deinit</a>        (<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>);
 
140
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-pk-algorithm" title="gnutls_pkcs11_privkey_get_pk_algorithm ()">gnutls_pkcs11_privkey_get_pk_algorithm</a>
 
141
                                                        (<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>,
 
142
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);
 
143
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info" title="gnutls_pkcs11_privkey_get_info ()">gnutls_pkcs11_privkey_get_info</a>      (<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> pkey</code></em>,
 
144
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
 
145
                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
 
146
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);
 
147
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url" title="gnutls_pkcs11_privkey_import_url ()">gnutls_pkcs11_privkey_import_url</a>    (<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> pkey</code></em>,
 
148
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
149
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);
 
150
<a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url" title="gnutls_pkcs11_privkey_export_url ()">gnutls_pkcs11_privkey_export_url</a>    (<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>,
 
151
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t" title="enum gnutls_pkcs11_url_type_t"><span class="type">gnutls_pkcs11_url_type_t</span></a> detailed</code></em>,
 
152
                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);
 
153
</pre>
 
154
</div>
 
155
<div class="refsect1">
 
156
<a name="gnutls-pkcs11.description"></a><h2>Description</h2>
 
157
<p>
 
158
</p>
 
159
</div>
 
160
<div class="refsect1">
 
161
<a name="gnutls-pkcs11.details"></a><h2>Details</h2>
 
162
<div class="refsect2">
 
163
<a name="GNUTLS-PKCS11-MAX-PIN-LEN:CAPS"></a><h3>GNUTLS_PKCS11_MAX_PIN_LEN</h3>
 
164
<pre class="programlisting">#define GNUTLS_PKCS11_MAX_PIN_LEN 32
 
165
</pre>
 
166
<p>
 
167
</p>
 
168
</div>
 
169
<hr>
 
170
<div class="refsect2">
 
171
<a name="gnutls-pkcs11-token-callback-t"></a><h3>gnutls_pkcs11_token_callback_t ()</h3>
 
172
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (*gnutls_pkcs11_token_callback_t)   (<em class="parameter"><code><span class="type">void</span> *const global_data</code></em>,
 
173
                                                         <em class="parameter"><code>const <span class="type">char</span> *const label</code></em>,
 
174
                                                         <em class="parameter"><code>const unsigned <span class="type">retry</span> Param3</code></em>);</pre>
 
175
<p>
 
176
</p>
 
177
</div>
 
178
<hr>
 
179
<div class="refsect2">
 
180
<a name="gnutls-pkcs11-pin-flag-t"></a><h3>enum gnutls_pkcs11_pin_flag_t</h3>
 
181
<pre class="programlisting">typedef enum
 
182
  {
 
183
    GNUTLS_PKCS11_PIN_USER = (1 &lt;&lt; 0),
 
184
    GNUTLS_PKCS11_PIN_SO = (1 &lt;&lt; 1),
 
185
    GNUTLS_PKCS11_PIN_FINAL_TRY = (1 &lt;&lt; 2),
 
186
    GNUTLS_PKCS11_PIN_COUNT_LOW = (1 &lt;&lt; 3),
 
187
    GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC = (1 &lt;&lt; 4),
 
188
    GNUTLS_PKCS11_PIN_WRONG = (1 &lt;&lt; 5),
 
189
  } gnutls_pkcs11_pin_flag_t;
 
190
</pre>
 
191
<p>
 
192
Enumeration of different PIN flags.
 
193
</p>
 
194
<div class="variablelist"><table border="0">
 
195
<col align="left" valign="top">
 
196
<tbody>
 
197
<tr>
 
198
<td><p><a name="GNUTLS-PKCS11-PIN-USER:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_PIN_USER</code></span></p></td>
 
199
<td>The PIN for the user.
 
200
</td>
 
201
</tr>
 
202
<tr>
 
203
<td><p><a name="GNUTLS-PKCS11-PIN-SO:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_PIN_SO</code></span></p></td>
 
204
<td>The PIN for the security officer.
 
205
</td>
 
206
</tr>
 
207
<tr>
 
208
<td><p><a name="GNUTLS-PKCS11-PIN-FINAL-TRY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_PIN_FINAL_TRY</code></span></p></td>
 
209
<td>This is the final try before blocking.
 
210
</td>
 
211
</tr>
 
212
<tr>
 
213
<td><p><a name="GNUTLS-PKCS11-PIN-COUNT-LOW:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_PIN_COUNT_LOW</code></span></p></td>
 
214
<td>Few tries remain before token blocks.
 
215
</td>
 
216
</tr>
 
217
<tr>
 
218
<td><p><a name="GNUTLS-PKCS11-PIN-CONTEXT-SPECIFIC:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC</code></span></p></td>
 
219
<td>The PIN is for a specific action and key like signing.
 
220
</td>
 
221
</tr>
 
222
<tr>
 
223
<td><p><a name="GNUTLS-PKCS11-PIN-WRONG:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_PIN_WRONG</code></span></p></td>
 
224
<td>Last given PIN was not correct.
 
225
</td>
 
226
</tr>
 
227
</tbody>
 
228
</table></div>
 
229
</div>
 
230
<hr>
 
231
<div class="refsect2">
 
232
<a name="gnutls-pkcs11-pin-callback-t"></a><h3>gnutls_pkcs11_pin_callback_t ()</h3>
 
233
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 (*gnutls_pkcs11_pin_callback_t)     (<em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
 
234
                                                         <em class="parameter"><code><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> attempt</code></em>,
 
235
                                                         <em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
236
                                                         <em class="parameter"><code>const <span class="type">char</span> *token_label</code></em>,
 
237
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
238
<p>
 
239
Callback function type for PKCS<span class="type">11</span> PIN entry.  It is set by
 
240
<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()"><code class="function">gnutls_pkcs11_set_pin_function()</code></a>.
 
241
</p>
 
242
<p>
 
243
The callback should provides the PIN code to unlock the token with
 
244
label <em class="parameter"><code>token_label</code></em>, specified by the URL <em class="parameter"><code>token_url</code></em>.
 
245
</p>
 
246
<p>
 
247
The PIN code, as a NUL-terminated ASCII string, should be copied
 
248
into the <em class="parameter"><code>pin</code></em> buffer (of maximum size <em class="parameter"><code>pin_max</code></em>), and return 0 to
 
249
indicate success.  Alternatively, the callback may return a
 
250
negative gnutls error code to indicate failure and cancel PIN entry
 
251
(in which case, the contents of the <em class="parameter"><code>pin</code></em> parameter are ignored).
 
252
</p>
 
253
<p>
 
254
When a PIN is required, the callback will be invoked repeatedly
 
255
(and indefinitely) until either the returned PIN code is correct,
 
256
the callback returns failure, or the token refuses login (e.g. when
 
257
the token is locked due to too many incorrect PINs!).  For the
 
258
first such invocation, the <em class="parameter"><code>attempt</code></em> counter will have value zero;
 
259
it will increase by one for each subsequent attempt.
 
260
</p>
 
261
<div class="variablelist"><table border="0">
 
262
<col align="left" valign="top">
 
263
<tbody>
 
264
<tr>
 
265
<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
 
266
<td>user-controlled data from <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()"><code class="function">gnutls_pkcs11_set_pin_function()</code></a>.</td>
 
267
</tr>
 
268
<tr>
 
269
<td><p><span class="term"><em class="parameter"><code>attempt</code></em> :</span></p></td>
 
270
<td>pin-attempt counter, initially 0.</td>
 
271
</tr>
 
272
<tr>
 
273
<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
 
274
<td>PKCS11 URL.</td>
 
275
</tr>
 
276
<tr>
 
277
<td><p><span class="term"><em class="parameter"><code>token_label</code></em> :</span></p></td>
 
278
<td>label of PKCS11 token.</td>
 
279
</tr>
 
280
<tr>
 
281
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
282
<td>a <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-flag-t" title="enum gnutls_pkcs11_pin_flag_t"><span class="type">gnutls_pkcs11_pin_flag_t</span></a> flag.</td>
 
283
</tr>
 
284
<tr>
 
285
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
286
<td>
 
287
<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) on success or a negative error code on error.</td>
 
288
</tr>
 
289
</tbody>
 
290
</table></div>
 
291
<p class="since">Since 2.12.0</p>
 
292
</div>
 
293
<hr>
 
294
<div class="refsect2">
 
295
<a name="gnutls-pkcs11-obj-st"></a><h3>struct gnutls_pkcs11_obj_st</h3>
 
296
<pre class="programlisting">struct gnutls_pkcs11_obj_st;</pre>
 
297
<p>
 
298
</p>
 
299
</div>
 
300
<hr>
 
301
<div class="refsect2">
 
302
<a name="gnutls-pkcs11-obj-t"></a><h3>gnutls_pkcs11_obj_t</h3>
 
303
<pre class="programlisting">typedef struct gnutls_pkcs11_obj_st *gnutls_pkcs11_obj_t;
 
304
</pre>
 
305
<p>
 
306
</p>
 
307
</div>
 
308
<hr>
 
309
<div class="refsect2">
 
310
<a name="GNUTLS-PKCS11-FLAG-MANUAL:CAPS"></a><h3>GNUTLS_PKCS11_FLAG_MANUAL</h3>
 
311
<pre class="programlisting">#define GNUTLS_PKCS11_FLAG_MANUAL 0     /* Manual loading of libraries */
 
312
</pre>
 
313
<p>
 
314
</p>
 
315
</div>
 
316
<hr>
 
317
<div class="refsect2">
 
318
<a name="GNUTLS-PKCS11-FLAG-AUTO:CAPS"></a><h3>GNUTLS_PKCS11_FLAG_AUTO</h3>
 
319
<pre class="programlisting">#define GNUTLS_PKCS11_FLAG_AUTO 1       /* Automatically load libraries by reading /etc/gnutls/pkcs11.conf */
 
320
</pre>
 
321
<p>
 
322
</p>
 
323
</div>
 
324
<hr>
 
325
<div class="refsect2">
 
326
<a name="gnutls-pkcs11-init"></a><h3>gnutls_pkcs11_init ()</h3>
 
327
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_init                  (<em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>,
 
328
                                                         <em class="parameter"><code>const <span class="type">char</span> *deprecated_config_file</code></em>);</pre>
 
329
<p>
 
330
This function will initialize the PKCS 11 subsystem in gnutls. It will
 
331
read configuration files if <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO"><code class="literal">GNUTLS_PKCS11_FLAG_AUTO</code></a> is used or allow
 
332
you to independently load PKCS 11 modules using <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" title="gnutls_pkcs11_add_provider ()"><code class="function">gnutls_pkcs11_add_provider()</code></a>
 
333
if <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL"><code class="literal">GNUTLS_PKCS11_FLAG_MANUAL</code></a> is specified.
 
334
</p>
 
335
<p>
 
336
Using a custom configfile is deprecated and will not be supported in future
 
337
versions of gnutls.
 
338
</p>
 
339
<p>
 
340
Normally you don't need to call this function since it is being called
 
341
by <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()"><code class="function">gnutls_global_init()</code></a> using the <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO"><code class="literal">GNUTLS_PKCS11_FLAG_AUTO</code></a>. If you need to
 
342
call this function, you must call it before <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()"><code class="function">gnutls_global_init()</code></a>.
 
343
</p>
 
344
<div class="variablelist"><table border="0">
 
345
<col align="left" valign="top">
 
346
<tbody>
 
347
<tr>
 
348
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
349
<td>
 
350
<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL"><code class="literal">GNUTLS_PKCS11_FLAG_MANUAL</code></a> or <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO"><code class="literal">GNUTLS_PKCS11_FLAG_AUTO</code></a>
 
351
</td>
 
352
</tr>
 
353
<tr>
 
354
<td><p><span class="term"><em class="parameter"><code>deprecated_config_file</code></em> :</span></p></td>
 
355
<td>either NULL or the location of a deprecated
 
356
configuration file</td>
 
357
</tr>
 
358
<tr>
 
359
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
360
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
361
negative error value.</td>
 
362
</tr>
 
363
</tbody>
 
364
</table></div>
 
365
</div>
 
366
<hr>
 
367
<div class="refsect2">
 
368
<a name="gnutls-pkcs11-deinit"></a><h3>gnutls_pkcs11_deinit ()</h3>
 
369
<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_deinit                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
 
370
<p>
 
371
This function will deinitialize the PKCS 11 subsystem in gnutls.
 
372
</p>
 
373
</div>
 
374
<hr>
 
375
<div class="refsect2">
 
376
<a name="gnutls-pkcs11-set-token-function"></a><h3>gnutls_pkcs11_set_token_function ()</h3>
 
377
<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_set_token_function    (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()"><span class="type">gnutls_pkcs11_token_callback_t</span></a> fn</code></em>,
 
378
                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
 
379
<p>
 
380
This function will set a callback function to be used when a token
 
381
needs to be inserted to continue PKCS 11 operations.
 
382
</p>
 
383
<div class="variablelist"><table border="0">
 
384
<col align="left" valign="top">
 
385
<tbody>
 
386
<tr>
 
387
<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
 
388
<td>The token callback</td>
 
389
</tr>
 
390
<tr>
 
391
<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
 
392
<td>data to be supplied to callback</td>
 
393
</tr>
 
394
</tbody>
 
395
</table></div>
 
396
</div>
 
397
<hr>
 
398
<div class="refsect2">
 
399
<a name="gnutls-pkcs11-set-pin-function"></a><h3>gnutls_pkcs11_set_pin_function ()</h3>
 
400
<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_set_pin_function      (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-pin-callback-t" title="gnutls_pkcs11_pin_callback_t ()"><span class="type">gnutls_pkcs11_pin_callback_t</span></a> fn</code></em>,
 
401
                                                         <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
 
402
<p>
 
403
This function will set a callback function to be used when a PIN
 
404
is required for PKCS 11 operations.
 
405
</p>
 
406
<p>
 
407
Callback for PKCS<span class="type">11</span> PIN entry.  The callback provides the PIN code
 
408
to unlock the token with label 'token_label', specified by the URL 
 
409
'token_url'.
 
410
</p>
 
411
<p>
 
412
The PIN code, as a NUL-terminated ASCII string, should be copied
 
413
into the 'pin' buffer (of maximum size pin_max), and
 
414
return 0 to indicate success. Alternatively, the callback may
 
415
return a negative gnutls error code to indicate failure and cancel
 
416
PIN entry (in which case, the contents of the 'pin' parameter are ignored).
 
417
</p>
 
418
<p>
 
419
When a PIN is required, the callback will be invoked repeatedly
 
420
(and indefinitely) until either the returned PIN code is correct,
 
421
the callback returns failure, or the token refuses login (e.g. when
 
422
the token is locked due to too many incorrect PINs!).  For the
 
423
first such invocation, the 'attempt' counter will have value zero;
 
424
it will increase by one for each subsequent attempt.
 
425
</p>
 
426
<div class="variablelist"><table border="0">
 
427
<col align="left" valign="top">
 
428
<tbody>
 
429
<tr>
 
430
<td><p><span class="term"><em class="parameter"><code>fn</code></em> :</span></p></td>
 
431
<td>The PIN callback</td>
 
432
</tr>
 
433
<tr>
 
434
<td><p><span class="term"><em class="parameter"><code>userdata</code></em> :</span></p></td>
 
435
<td>data to be supplied to callback</td>
 
436
</tr>
 
437
</tbody>
 
438
</table></div>
 
439
</div>
 
440
<hr>
 
441
<div class="refsect2">
 
442
<a name="gnutls-pkcs11-add-provider"></a><h3>gnutls_pkcs11_add_provider ()</h3>
 
443
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_add_provider          (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
 
444
                                                         <em class="parameter"><code>const <span class="type">char</span> *params</code></em>);</pre>
 
445
<p>
 
446
This function will load and add a PKCS 11 module to the module
 
447
list used in gnutls. After this function is called the module will
 
448
be used for PKCS 11 operations.
 
449
</p>
 
450
<div class="variablelist"><table border="0">
 
451
<col align="left" valign="top">
 
452
<tbody>
 
453
<tr>
 
454
<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
 
455
<td>The filename of the module</td>
 
456
</tr>
 
457
<tr>
 
458
<td><p><span class="term"><em class="parameter"><code>params</code></em> :</span></p></td>
 
459
<td>should be NULL</td>
 
460
</tr>
 
461
<tr>
 
462
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
463
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
464
negative error value.</td>
 
465
</tr>
 
466
</tbody>
 
467
</table></div>
 
468
</div>
 
469
<hr>
 
470
<div class="refsect2">
 
471
<a name="gnutls-pkcs11-obj-init"></a><h3>gnutls_pkcs11_obj_init ()</h3>
 
472
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_obj_init              (<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>);</pre>
 
473
<p>
 
474
This function will initialize a pkcs11 certificate structure.
 
475
</p>
 
476
<div class="variablelist"><table border="0">
 
477
<col align="left" valign="top">
 
478
<tbody>
 
479
<tr>
 
480
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 
481
<td>The structure to be initialized</td>
 
482
</tr>
 
483
<tr>
 
484
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
485
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
486
negative error value.</td>
 
487
</tr>
 
488
</tbody>
 
489
</table></div>
 
490
</div>
 
491
<hr>
 
492
<div class="refsect2">
 
493
<a name="GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_FLAG_LOGIN</h3>
 
494
<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_FLAG_LOGIN (1&lt;&lt;0)     /* force login in the token for the operation */
 
495
</pre>
 
496
<p>
 
497
</p>
 
498
</div>
 
499
<hr>
 
500
<div class="refsect2">
 
501
<a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</h3>
 
502
<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED (1&lt;&lt;1)      /* object marked as trusted */
 
503
</pre>
 
504
<p>
 
505
</p>
 
506
</div>
 
507
<hr>
 
508
<div class="refsect2">
 
509
<a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</h3>
 
510
<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE (1&lt;&lt;2)    /* object marked as sensitive (unexportable) */
 
511
</pre>
 
512
<p>
 
513
</p>
 
514
</div>
 
515
<hr>
 
516
<div class="refsect2">
 
517
<a name="gnutls-pkcs11-url-type-t"></a><h3>enum gnutls_pkcs11_url_type_t</h3>
 
518
<pre class="programlisting">typedef enum
 
519
{
 
520
  GNUTLS_PKCS11_URL_GENERIC,    /* URL specifies the object on token level */
 
521
  GNUTLS_PKCS11_URL_LIB,        /* URL specifies the object on module level */
 
522
  GNUTLS_PKCS11_URL_LIB_VERSION /* URL specifies the object on module and version level */
 
523
} gnutls_pkcs11_url_type_t;
 
524
</pre>
 
525
<p>
 
526
Enumeration of different URL extraction flags.
 
527
</p>
 
528
<div class="variablelist"><table border="0">
 
529
<col align="left" valign="top">
 
530
<tbody>
 
531
<tr>
 
532
<td><p><a name="GNUTLS-PKCS11-URL-GENERIC:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_URL_GENERIC</code></span></p></td>
 
533
<td>A generic-purpose URL.
 
534
</td>
 
535
</tr>
 
536
<tr>
 
537
<td><p><a name="GNUTLS-PKCS11-URL-LIB:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_URL_LIB</code></span></p></td>
 
538
<td>A URL that specifies the library used as well.
 
539
</td>
 
540
</tr>
 
541
<tr>
 
542
<td><p><a name="GNUTLS-PKCS11-URL-LIB-VERSION:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_URL_LIB_VERSION</code></span></p></td>
 
543
<td>A URL that specifies the library and its version.
 
544
</td>
 
545
</tr>
 
546
</tbody>
 
547
</table></div>
 
548
</div>
 
549
<hr>
 
550
<div class="refsect2">
 
551
<a name="gnutls-pkcs11-obj-import-url"></a><h3>gnutls_pkcs11_obj_import_url ()</h3>
 
552
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_obj_import_url        (<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> Param1</code></em>,
 
553
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
554
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
555
<p>
 
556
</p>
 
557
</div>
 
558
<hr>
 
559
<div class="refsect2">
 
560
<a name="gnutls-pkcs11-obj-export-url"></a><h3>gnutls_pkcs11_obj_export_url ()</h3>
 
561
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_obj_export_url        (<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>,
 
562
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t" title="enum gnutls_pkcs11_url_type_t"><span class="type">gnutls_pkcs11_url_type_t</span></a> detailed</code></em>,
 
563
                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
 
564
<p>
 
565
This function will export a URL identifying the given certificate.
 
566
</p>
 
567
<div class="variablelist"><table border="0">
 
568
<col align="left" valign="top">
 
569
<tbody>
 
570
<tr>
 
571
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 
572
<td>Holds the PKCS 11 certificate</td>
 
573
</tr>
 
574
<tr>
 
575
<td><p><span class="term"><em class="parameter"><code>detailed</code></em> :</span></p></td>
 
576
<td>non zero if a detailed URL is required</td>
 
577
</tr>
 
578
<tr>
 
579
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
580
<td>will contain an allocated url</td>
 
581
</tr>
 
582
<tr>
 
583
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
584
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
585
negative error value.</td>
 
586
</tr>
 
587
</tbody>
 
588
</table></div>
 
589
</div>
 
590
<hr>
 
591
<div class="refsect2">
 
592
<a name="gnutls-pkcs11-obj-deinit"></a><h3>gnutls_pkcs11_obj_deinit ()</h3>
 
593
<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_obj_deinit            (<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>);</pre>
 
594
<p>
 
595
This function will deinitialize a certificate structure.
 
596
</p>
 
597
<div class="variablelist"><table border="0">
 
598
<col align="left" valign="top">
 
599
<tbody><tr>
 
600
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 
601
<td>The structure to be initialized</td>
 
602
</tr></tbody>
 
603
</table></div>
 
604
</div>
 
605
<hr>
 
606
<div class="refsect2">
 
607
<a name="gnutls-pkcs11-obj-export"></a><h3>gnutls_pkcs11_obj_export ()</h3>
 
608
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_obj_export            (<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>,
 
609
                                                         <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
 
610
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
 
611
<p>
 
612
This function will export the pkcs11 object data. It is normal
 
613
for PKCS <span class="type">11</span> data to be inaccesible and in that case <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>
 
614
will be returned.
 
615
</p>
 
616
<p>
 
617
If the buffer provided is not long enough to hold the output, then
 
618
*output_data_size is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
 
619
be returned.
 
620
</p>
 
621
<p>
 
622
If the structure is PEM encoded, it will have a header
 
623
of "BEGIN CERTIFICATE".
 
624
</p>
 
625
<div class="variablelist"><table border="0">
 
626
<col align="left" valign="top">
 
627
<tbody>
 
628
<tr>
 
629
<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
 
630
<td>Holds the object</td>
 
631
</tr>
 
632
<tr>
 
633
<td><p><span class="term"><em class="parameter"><code>output_data</code></em> :</span></p></td>
 
634
<td>will contain a certificate PEM or DER encoded</td>
 
635
</tr>
 
636
<tr>
 
637
<td><p><span class="term"><em class="parameter"><code>output_data_size</code></em> :</span></p></td>
 
638
<td>holds the size of output_data (and will be
 
639
replaced by the actual size of parameters)</td>
 
640
</tr>
 
641
<tr>
 
642
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
643
<td>In case of failure a negative value will be
 
644
returned, and 0 on success.</td>
 
645
</tr>
 
646
</tbody>
 
647
</table></div>
 
648
</div>
 
649
<hr>
 
650
<div class="refsect2">
 
651
<a name="gnutls-pkcs11-copy-x509-crt"></a><h3>gnutls_pkcs11_copy_x509_crt ()</h3>
 
652
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_copy_x509_crt         (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
653
                                                         <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>,
 
654
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
 
655
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
656
<p>
 
657
This function will copy a certificate into a PKCS <span class="type">11</span> token specified by
 
658
a URL. The certificate can be marked as trusted or not.
 
659
</p>
 
660
<div class="variablelist"><table border="0">
 
661
<col align="left" valign="top">
 
662
<tbody>
 
663
<tr>
 
664
<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
 
665
<td>A PKCS <span class="type">11</span> URL specifying a token</td>
 
666
</tr>
 
667
<tr>
 
668
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
669
<td>A certificate</td>
 
670
</tr>
 
671
<tr>
 
672
<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
 
673
<td>A name to be used for the stored data</td>
 
674
</tr>
 
675
<tr>
 
676
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
677
<td>One of GNUTLS_PKCS11_OBJ_FLAG_*</td>
 
678
</tr>
 
679
<tr>
 
680
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
681
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
682
negative error value.</td>
 
683
</tr>
 
684
</tbody>
 
685
</table></div>
 
686
</div>
 
687
<hr>
 
688
<div class="refsect2">
 
689
<a name="gnutls-pkcs11-copy-x509-privkey"></a><h3>gnutls_pkcs11_copy_x509_privkey ()</h3>
 
690
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_copy_x509_privkey     (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
691
                                                         <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>,
 
692
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
 
693
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> key_usage</code></em>,
 
694
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
695
<p>
 
696
This function will copy a private key into a PKCS <span class="type">11</span> token specified by
 
697
a URL. It is highly recommended flags to contain <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS" title="GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</code></a>
 
698
unless there is a strong reason not to.
 
699
</p>
 
700
<div class="variablelist"><table border="0">
 
701
<col align="left" valign="top">
 
702
<tbody>
 
703
<tr>
 
704
<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
 
705
<td>A PKCS <span class="type">11</span> URL specifying a token</td>
 
706
</tr>
 
707
<tr>
 
708
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
709
<td>A private key</td>
 
710
</tr>
 
711
<tr>
 
712
<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
 
713
<td>A name to be used for the stored data</td>
 
714
</tr>
 
715
<tr>
 
716
<td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
 
717
<td>One of GNUTLS_KEY_*</td>
 
718
</tr>
 
719
<tr>
 
720
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
721
<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
 
722
</tr>
 
723
<tr>
 
724
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
725
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
726
negative error value.</td>
 
727
</tr>
 
728
</tbody>
 
729
</table></div>
 
730
</div>
 
731
<hr>
 
732
<div class="refsect2">
 
733
<a name="gnutls-pkcs11-delete-url"></a><h3>gnutls_pkcs11_delete_url ()</h3>
 
734
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_delete_url            (<em class="parameter"><code>const <span class="type">char</span> *object_url</code></em>,
 
735
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
736
<p>
 
737
This function will delete objects matching the given URL.
 
738
</p>
 
739
<div class="variablelist"><table border="0">
 
740
<col align="left" valign="top">
 
741
<tbody>
 
742
<tr>
 
743
<td><p><span class="term"><em class="parameter"><code>object_url</code></em> :</span></p></td>
 
744
<td>The URL of the object to delete.</td>
 
745
</tr>
 
746
<tr>
 
747
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
748
<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
 
749
</tr>
 
750
<tr>
 
751
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
752
<td>On success, the number of objects deleted is returned, otherwise a
 
753
negative error value.</td>
 
754
</tr>
 
755
</tbody>
 
756
</table></div>
 
757
</div>
 
758
<hr>
 
759
<div class="refsect2">
 
760
<a name="gnutls-pkcs11-copy-secret-key"></a><h3>gnutls_pkcs11_copy_secret_key ()</h3>
 
761
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_copy_secret_key       (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
762
                                                         <em class="parameter"><code><span class="type">gnutls_datum_t</span> *key</code></em>,
 
763
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
 
764
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> key_usage</code></em>,
 
765
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
766
<p>
 
767
This function will copy a raw secret (symmetric) key into a PKCS <span class="type">11</span> 
 
768
token specified by a URL. The key can be marked as sensitive or not.
 
769
</p>
 
770
<div class="variablelist"><table border="0">
 
771
<col align="left" valign="top">
 
772
<tbody>
 
773
<tr>
 
774
<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
 
775
<td>A PKCS <span class="type">11</span> URL specifying a token</td>
 
776
</tr>
 
777
<tr>
 
778
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
779
<td>The raw key</td>
 
780
</tr>
 
781
<tr>
 
782
<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
 
783
<td>A name to be used for the stored data</td>
 
784
</tr>
 
785
<tr>
 
786
<td><p><span class="term"><em class="parameter"><code>key_usage</code></em> :</span></p></td>
 
787
<td>One of GNUTLS_KEY_*</td>
 
788
</tr>
 
789
<tr>
 
790
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
791
<td>One of GNUTLS_PKCS11_OBJ_FLAG_*</td>
 
792
</tr>
 
793
<tr>
 
794
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
795
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
796
negative error value.</td>
 
797
</tr>
 
798
</tbody>
 
799
</table></div>
 
800
</div>
 
801
<hr>
 
802
<div class="refsect2">
 
803
<a name="gnutls-pkcs11-obj-info-t"></a><h3>enum gnutls_pkcs11_obj_info_t</h3>
 
804
<pre class="programlisting">typedef enum
 
805
{
 
806
  GNUTLS_PKCS11_OBJ_ID_HEX = 1,
 
807
  GNUTLS_PKCS11_OBJ_LABEL,
 
808
  GNUTLS_PKCS11_OBJ_TOKEN_LABEL,
 
809
  GNUTLS_PKCS11_OBJ_TOKEN_SERIAL,
 
810
  GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER,
 
811
  GNUTLS_PKCS11_OBJ_TOKEN_MODEL,
 
812
  GNUTLS_PKCS11_OBJ_ID,
 
813
  /* the pkcs11 provider library info  */
 
814
  GNUTLS_PKCS11_OBJ_LIBRARY_VERSION,
 
815
  GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION,
 
816
  GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER
 
817
} gnutls_pkcs11_obj_info_t;
 
818
</pre>
 
819
<p>
 
820
Enumeration of several object information types.
 
821
</p>
 
822
<div class="variablelist"><table border="0">
 
823
<col align="left" valign="top">
 
824
<tbody>
 
825
<tr>
 
826
<td><p><a name="GNUTLS-PKCS11-OBJ-ID-HEX:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ID_HEX</code></span></p></td>
 
827
<td>The object ID in hex.
 
828
</td>
 
829
</tr>
 
830
<tr>
 
831
<td><p><a name="GNUTLS-PKCS11-OBJ-LABEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LABEL</code></span></p></td>
 
832
<td>The object label.
 
833
</td>
 
834
</tr>
 
835
<tr>
 
836
<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-LABEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_LABEL</code></span></p></td>
 
837
<td>The token's label.
 
838
</td>
 
839
</tr>
 
840
<tr>
 
841
<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-SERIAL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_SERIAL</code></span></p></td>
 
842
<td>The token's serial number.
 
843
</td>
 
844
</tr>
 
845
<tr>
 
846
<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-MANUFACTURER:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER</code></span></p></td>
 
847
<td>The token's manufacturer.
 
848
</td>
 
849
</tr>
 
850
<tr>
 
851
<td><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-MODEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_TOKEN_MODEL</code></span></p></td>
 
852
<td>The token's model.
 
853
</td>
 
854
</tr>
 
855
<tr>
 
856
<td><p><a name="GNUTLS-PKCS11-OBJ-ID:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ID</code></span></p></td>
 
857
<td>The object ID.
 
858
</td>
 
859
</tr>
 
860
<tr>
 
861
<td><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-VERSION:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LIBRARY_VERSION</code></span></p></td>
 
862
<td>The library's used to access the object version.
 
863
</td>
 
864
</tr>
 
865
<tr>
 
866
<td><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-DESCRIPTION:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION</code></span></p></td>
 
867
<td>The library's used to access the object description (name).
 
868
</td>
 
869
</tr>
 
870
<tr>
 
871
<td><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-MANUFACTURER:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER</code></span></p></td>
 
872
<td>The library's used to access the object manufacturer name.
 
873
</td>
 
874
</tr>
 
875
</tbody>
 
876
</table></div>
 
877
</div>
 
878
<hr>
 
879
<div class="refsect2">
 
880
<a name="gnutls-pkcs11-obj-get-info"></a><h3>gnutls_pkcs11_obj_get_info ()</h3>
 
881
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_obj_get_info          (<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> crt</code></em>,
 
882
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
 
883
                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
 
884
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
 
885
<p>
 
886
This function will return information about the PKCS 11 certificatesuch
 
887
as the label, id as well as token information where the key is stored. When
 
888
output is text it returns null terminated string although <code class="literal">output_size</code> contains
 
889
the size of the actual data only.
 
890
</p>
 
891
<div class="variablelist"><table border="0">
 
892
<col align="left" valign="top">
 
893
<tbody>
 
894
<tr>
 
895
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
896
<td>should contain a <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> structure</td>
 
897
</tr>
 
898
<tr>
 
899
<td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td>
 
900
<td>Denotes the type of information requested</td>
 
901
</tr>
 
902
<tr>
 
903
<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
 
904
<td>where output will be stored</td>
 
905
</tr>
 
906
<tr>
 
907
<td><p><span class="term"><em class="parameter"><code>output_size</code></em> :</span></p></td>
 
908
<td>contains the maximum size of the output and will be overwritten with actual</td>
 
909
</tr>
 
910
<tr>
 
911
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
912
<td>zero on success or a negative value on error.</td>
 
913
</tr>
 
914
</tbody>
 
915
</table></div>
 
916
</div>
 
917
<hr>
 
918
<div class="refsect2">
 
919
<a name="gnutls-pkcs11-obj-attr-t"></a><h3>enum gnutls_pkcs11_obj_attr_t</h3>
 
920
<pre class="programlisting">typedef enum
 
921
{
 
922
  GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL = 1,   /* all certificates */
 
923
  GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED,   /* certificates marked as trusted */
 
924
  GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY,      /* certificates with corresponding private key */
 
925
  GNUTLS_PKCS11_OBJ_ATTR_PUBKEY,        /* public keys */
 
926
  GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY,       /* private keys */
 
927
  GNUTLS_PKCS11_OBJ_ATTR_ALL    /* everything! */
 
928
} gnutls_pkcs11_obj_attr_t;
 
929
</pre>
 
930
<p>
 
931
Enumeration of several attributes for object enumeration.
 
932
</p>
 
933
<div class="variablelist"><table border="0">
 
934
<col align="left" valign="top">
 
935
<tbody>
 
936
<tr>
 
937
<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL</code></span></p></td>
 
938
<td>Specify all certificates.
 
939
</td>
 
940
</tr>
 
941
<tr>
 
942
<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED</code></span></p></td>
 
943
<td>Specify all certificates marked as trusted.
 
944
</td>
 
945
</tr>
 
946
<tr>
 
947
<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY</code></span></p></td>
 
948
<td>Specify all certificates with a corresponding private key.
 
949
</td>
 
950
</tr>
 
951
<tr>
 
952
<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_PUBKEY</code></span></p></td>
 
953
<td>Specify all public keys.
 
954
</td>
 
955
</tr>
 
956
<tr>
 
957
<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY</code></span></p></td>
 
958
<td>Specify all private keys.
 
959
</td>
 
960
</tr>
 
961
<tr>
 
962
<td><p><a name="GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_ATTR_ALL</code></span></p></td>
 
963
<td>Specify all objects.
 
964
</td>
 
965
</tr>
 
966
</tbody>
 
967
</table></div>
 
968
</div>
 
969
<hr>
 
970
<div class="refsect2">
 
971
<a name="gnutls-pkcs11-token-info-t"></a><h3>enum gnutls_pkcs11_token_info_t</h3>
 
972
<pre class="programlisting">typedef enum
 
973
{
 
974
  GNUTLS_PKCS11_TOKEN_LABEL,
 
975
  GNUTLS_PKCS11_TOKEN_SERIAL,
 
976
  GNUTLS_PKCS11_TOKEN_MANUFACTURER,
 
977
  GNUTLS_PKCS11_TOKEN_MODEL
 
978
} gnutls_pkcs11_token_info_t;
 
979
</pre>
 
980
<p>
 
981
Enumeration of types for retrieving token information.
 
982
</p>
 
983
<div class="variablelist"><table border="0">
 
984
<col align="left" valign="top">
 
985
<tbody>
 
986
<tr>
 
987
<td><p><a name="GNUTLS-PKCS11-TOKEN-LABEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_LABEL</code></span></p></td>
 
988
<td>The token's label
 
989
</td>
 
990
</tr>
 
991
<tr>
 
992
<td><p><a name="GNUTLS-PKCS11-TOKEN-SERIAL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_SERIAL</code></span></p></td>
 
993
<td>The token's serial number
 
994
</td>
 
995
</tr>
 
996
<tr>
 
997
<td><p><a name="GNUTLS-PKCS11-TOKEN-MANUFACTURER:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_MANUFACTURER</code></span></p></td>
 
998
<td>The token's manufacturer
 
999
</td>
 
1000
</tr>
 
1001
<tr>
 
1002
<td><p><a name="GNUTLS-PKCS11-TOKEN-MODEL:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_TOKEN_MODEL</code></span></p></td>
 
1003
<td>The token's model
 
1004
</td>
 
1005
</tr>
 
1006
</tbody>
 
1007
</table></div>
 
1008
</div>
 
1009
<hr>
 
1010
<div class="refsect2">
 
1011
<a name="gnutls-pkcs11-obj-type-t"></a><h3>enum gnutls_pkcs11_obj_type_t</h3>
 
1012
<pre class="programlisting">typedef enum
 
1013
{
 
1014
  GNUTLS_PKCS11_OBJ_UNKNOWN,
 
1015
  GNUTLS_PKCS11_OBJ_X509_CRT,
 
1016
  GNUTLS_PKCS11_OBJ_PUBKEY,
 
1017
  GNUTLS_PKCS11_OBJ_PRIVKEY,
 
1018
  GNUTLS_PKCS11_OBJ_SECRET_KEY,
 
1019
  GNUTLS_PKCS11_OBJ_DATA
 
1020
} gnutls_pkcs11_obj_type_t;
 
1021
</pre>
 
1022
<p>
 
1023
Enumeration of object types.
 
1024
</p>
 
1025
<div class="variablelist"><table border="0">
 
1026
<col align="left" valign="top">
 
1027
<tbody>
 
1028
<tr>
 
1029
<td><p><a name="GNUTLS-PKCS11-OBJ-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_UNKNOWN</code></span></p></td>
 
1030
<td>Unknown PKCS11 object.
 
1031
</td>
 
1032
</tr>
 
1033
<tr>
 
1034
<td><p><a name="GNUTLS-PKCS11-OBJ-X509-CRT:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_X509_CRT</code></span></p></td>
 
1035
<td>X.509 certificate.
 
1036
</td>
 
1037
</tr>
 
1038
<tr>
 
1039
<td><p><a name="GNUTLS-PKCS11-OBJ-PUBKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_PUBKEY</code></span></p></td>
 
1040
<td>Public key.
 
1041
</td>
 
1042
</tr>
 
1043
<tr>
 
1044
<td><p><a name="GNUTLS-PKCS11-OBJ-PRIVKEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_PRIVKEY</code></span></p></td>
 
1045
<td>Private key.
 
1046
</td>
 
1047
</tr>
 
1048
<tr>
 
1049
<td><p><a name="GNUTLS-PKCS11-OBJ-SECRET-KEY:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_SECRET_KEY</code></span></p></td>
 
1050
<td>Secret key.
 
1051
</td>
 
1052
</tr>
 
1053
<tr>
 
1054
<td><p><a name="GNUTLS-PKCS11-OBJ-DATA:CAPS"></a><span class="term"><code class="literal">GNUTLS_PKCS11_OBJ_DATA</code></span></p></td>
 
1055
<td>Data object.
 
1056
</td>
 
1057
</tr>
 
1058
</tbody>
 
1059
</table></div>
 
1060
</div>
 
1061
<hr>
 
1062
<div class="refsect2">
 
1063
<a name="gnutls-pkcs11-token-init"></a><h3>gnutls_pkcs11_token_init ()</h3>
 
1064
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_token_init            (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
1065
                                                         <em class="parameter"><code>const <span class="type">char</span> *so_pin</code></em>,
 
1066
                                                         <em class="parameter"><code>const <span class="type">char</span> *label</code></em>);</pre>
 
1067
<p>
 
1068
This function will initialize (format) a token. If the token is
 
1069
at a factory defaults state the security officer's PIN given will be
 
1070
set to be the default. Otherwise it should match the officer's PIN.
 
1071
</p>
 
1072
<div class="variablelist"><table border="0">
 
1073
<col align="left" valign="top">
 
1074
<tbody>
 
1075
<tr>
 
1076
<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
 
1077
<td>A PKCS <span class="type">11</span> URL specifying a token</td>
 
1078
</tr>
 
1079
<tr>
 
1080
<td><p><span class="term"><em class="parameter"><code>so_pin</code></em> :</span></p></td>
 
1081
<td>Security Officer's PIN</td>
 
1082
</tr>
 
1083
<tr>
 
1084
<td><p><span class="term"><em class="parameter"><code>label</code></em> :</span></p></td>
 
1085
<td>A name to be used for the token</td>
 
1086
</tr>
 
1087
<tr>
 
1088
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1089
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1090
negative error value.</td>
 
1091
</tr>
 
1092
</tbody>
 
1093
</table></div>
 
1094
</div>
 
1095
<hr>
 
1096
<div class="refsect2">
 
1097
<a name="gnutls-pkcs11-token-get-mechanism"></a><h3>gnutls_pkcs11_token_get_mechanism ()</h3>
 
1098
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_token_get_mechanism   (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
1099
                                                         <em class="parameter"><code><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> idx</code></em>,
 
1100
                                                         <em class="parameter"><code>unsigned <span class="type">long</span> *mechanism</code></em>);</pre>
 
1101
<p>
 
1102
This function will return the names of the supported mechanisms
 
1103
by the token. It should be called with an increasing index until
 
1104
it return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE.
 
1105
</p>
 
1106
<div class="variablelist"><table border="0">
 
1107
<col align="left" valign="top">
 
1108
<tbody>
 
1109
<tr>
 
1110
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1111
<td>should contain a PKCS 11 URL</td>
 
1112
</tr>
 
1113
<tr>
 
1114
<td><p><span class="term"><em class="parameter"><code>idx</code></em> :</span></p></td>
 
1115
<td>The index of the mechanism</td>
 
1116
</tr>
 
1117
<tr>
 
1118
<td><p><span class="term"><em class="parameter"><code>mechanism</code></em> :</span></p></td>
 
1119
<td>The PKCS <span class="type">11</span> mechanism ID</td>
 
1120
</tr>
 
1121
<tr>
 
1122
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1123
<td>zero on success or a negative value on error.</td>
 
1124
</tr>
 
1125
</tbody>
 
1126
</table></div>
 
1127
</div>
 
1128
<hr>
 
1129
<div class="refsect2">
 
1130
<a name="gnutls-pkcs11-token-set-pin"></a><h3>gnutls_pkcs11_token_set_pin ()</h3>
 
1131
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_token_set_pin         (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
 
1132
                                                         <em class="parameter"><code>const <span class="type">char</span> *oldpin</code></em>,
 
1133
                                                         <em class="parameter"><code>const <span class="type">char</span> *newpin</code></em>,
 
1134
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
1135
<p>
 
1136
This function will modify or set a user's PIN for the given token. 
 
1137
If it is called to set a user pin for first time the oldpin must
 
1138
be NULL.
 
1139
</p>
 
1140
<div class="variablelist"><table border="0">
 
1141
<col align="left" valign="top">
 
1142
<tbody>
 
1143
<tr>
 
1144
<td><p><span class="term"><em class="parameter"><code>token_url</code></em> :</span></p></td>
 
1145
<td>A PKCS <span class="type">11</span> URL specifying a token</td>
 
1146
</tr>
 
1147
<tr>
 
1148
<td><p><span class="term"><em class="parameter"><code>oldpin</code></em> :</span></p></td>
 
1149
<td>old user's PIN</td>
 
1150
</tr>
 
1151
<tr>
 
1152
<td><p><span class="term"><em class="parameter"><code>newpin</code></em> :</span></p></td>
 
1153
<td>new user's PIN</td>
 
1154
</tr>
 
1155
<tr>
 
1156
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1157
<td>one of gnutls_pkcs11_pin_flag_t</td>
 
1158
</tr>
 
1159
<tr>
 
1160
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1161
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1162
negative error value.</td>
 
1163
</tr>
 
1164
</tbody>
 
1165
</table></div>
 
1166
</div>
 
1167
<hr>
 
1168
<div class="refsect2">
 
1169
<a name="gnutls-pkcs11-token-get-url"></a><h3>gnutls_pkcs11_token_get_url ()</h3>
 
1170
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_token_get_url         (<em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> seq</code></em>,
 
1171
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t" title="enum gnutls_pkcs11_url_type_t"><span class="type">gnutls_pkcs11_url_type_t</span></a> detailed</code></em>,
 
1172
                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
 
1173
<p>
 
1174
This function will return the URL for each token available
 
1175
in system. The url has to be released using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free"><code class="function">gnutls_free()</code></a>
 
1176
</p>
 
1177
<div class="variablelist"><table border="0">
 
1178
<col align="left" valign="top">
 
1179
<tbody>
 
1180
<tr>
 
1181
<td><p><span class="term"><em class="parameter"><code>seq</code></em> :</span></p></td>
 
1182
<td>sequence number starting from 0</td>
 
1183
</tr>
 
1184
<tr>
 
1185
<td><p><span class="term"><em class="parameter"><code>detailed</code></em> :</span></p></td>
 
1186
<td>non zero if a detailed URL is required</td>
 
1187
</tr>
 
1188
<tr>
 
1189
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1190
<td>will contain an allocated url</td>
 
1191
</tr>
 
1192
<tr>
 
1193
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1194
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
 
1195
if the sequence number exceeds the available tokens, otherwise a negative error value.</td>
 
1196
</tr>
 
1197
</tbody>
 
1198
</table></div>
 
1199
</div>
 
1200
<hr>
 
1201
<div class="refsect2">
 
1202
<a name="gnutls-pkcs11-token-get-info"></a><h3>gnutls_pkcs11_token_get_info ()</h3>
 
1203
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_token_get_info        (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
1204
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t" title="enum gnutls_pkcs11_token_info_t"><span class="type">gnutls_pkcs11_token_info_t</span></a> ttype</code></em>,
 
1205
                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
 
1206
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
 
1207
<p>
 
1208
This function will return information about the PKCS 11 token such
 
1209
as the label, id as well as token information where the key is stored.
 
1210
</p>
 
1211
<div class="variablelist"><table border="0">
 
1212
<col align="left" valign="top">
 
1213
<tbody>
 
1214
<tr>
 
1215
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1216
<td>should contain a PKCS 11 URL</td>
 
1217
</tr>
 
1218
<tr>
 
1219
<td><p><span class="term"><em class="parameter"><code>ttype</code></em> :</span></p></td>
 
1220
<td>Denotes the type of information requested</td>
 
1221
</tr>
 
1222
<tr>
 
1223
<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
 
1224
<td>where output will be stored</td>
 
1225
</tr>
 
1226
<tr>
 
1227
<td><p><span class="term"><em class="parameter"><code>output_size</code></em> :</span></p></td>
 
1228
<td>contains the maximum size of the output and will be overwritten with actual</td>
 
1229
</tr>
 
1230
<tr>
 
1231
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1232
<td>zero on success or a negative value on error.</td>
 
1233
</tr>
 
1234
</tbody>
 
1235
</table></div>
 
1236
</div>
 
1237
<hr>
 
1238
<div class="refsect2">
 
1239
<a name="GNUTLS-PKCS11-TOKEN-HW:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_HW</h3>
 
1240
<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_HW 1
 
1241
</pre>
 
1242
<p>
 
1243
</p>
 
1244
</div>
 
1245
<hr>
 
1246
<div class="refsect2">
 
1247
<a name="gnutls-pkcs11-token-get-flags"></a><h3>gnutls_pkcs11_token_get_flags ()</h3>
 
1248
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_token_get_flags       (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
1249
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *flags</code></em>);</pre>
 
1250
<p>
 
1251
This function will return information about the PKCS 11 token flags.
 
1252
</p>
 
1253
<div class="variablelist"><table border="0">
 
1254
<col align="left" valign="top">
 
1255
<tbody>
 
1256
<tr>
 
1257
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1258
<td>should contain a PKCS 11 URL</td>
 
1259
</tr>
 
1260
<tr>
 
1261
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1262
<td>The output flags (GNUTLS_PKCS11_TOKEN_*)</td>
 
1263
</tr>
 
1264
<tr>
 
1265
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1266
<td>zero on success or a negative value on error.</td>
 
1267
</tr>
 
1268
</tbody>
 
1269
</table></div>
 
1270
</div>
 
1271
<hr>
 
1272
<div class="refsect2">
 
1273
<a name="gnutls-pkcs11-obj-list-import-url"></a><h3>gnutls_pkcs11_obj_list_import_url ()</h3>
 
1274
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_obj_list_import_url   (<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> *p_list</code></em>,
 
1275
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *const n_list</code></em>,
 
1276
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
1277
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t"><span class="type">gnutls_pkcs11_obj_attr_t</span></a> attrs</code></em>,
 
1278
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
1279
<p>
 
1280
This function will initialize and set values to an object list
 
1281
by using all objects identified by a PKCS 11 URL.
 
1282
</p>
 
1283
<div class="variablelist"><table border="0">
 
1284
<col align="left" valign="top">
 
1285
<tbody>
 
1286
<tr>
 
1287
<td><p><span class="term"><em class="parameter"><code>p_list</code></em> :</span></p></td>
 
1288
<td>An uninitialized object list (may be NULL)</td>
 
1289
</tr>
 
1290
<tr>
 
1291
<td><p><span class="term"><em class="parameter"><code>n_list</code></em> :</span></p></td>
 
1292
<td>initially should hold the maximum size of the list. Will contain the actual size.</td>
 
1293
</tr>
 
1294
<tr>
 
1295
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1296
<td>A PKCS 11 url identifying a set of objects</td>
 
1297
</tr>
 
1298
<tr>
 
1299
<td><p><span class="term"><em class="parameter"><code>attrs</code></em> :</span></p></td>
 
1300
<td>Attributes of type <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="enum gnutls_pkcs11_obj_attr_t"><span class="type">gnutls_pkcs11_obj_attr_t</span></a> that can be used to limit output</td>
 
1301
</tr>
 
1302
<tr>
 
1303
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1304
<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
 
1305
</tr>
 
1306
<tr>
 
1307
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1308
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1309
negative error value.</td>
 
1310
</tr>
 
1311
</tbody>
 
1312
</table></div>
 
1313
</div>
 
1314
<hr>
 
1315
<div class="refsect2">
 
1316
<a name="gnutls-x509-crt-import-pkcs11"></a><h3>gnutls_x509_crt_import_pkcs11 ()</h3>
 
1317
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_x509_crt_import_pkcs11       (<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>,
 
1318
                                                         <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> pkcs11_crt</code></em>);</pre>
 
1319
<p>
 
1320
This function will import a PKCS 11 certificate to 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>
 
1321
structure.
 
1322
</p>
 
1323
<div class="variablelist"><table border="0">
 
1324
<col align="left" valign="top">
 
1325
<tbody>
 
1326
<tr>
 
1327
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
1328
<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>
 
1329
</td>
 
1330
</tr>
 
1331
<tr>
 
1332
<td><p><span class="term"><em class="parameter"><code>pkcs11_crt</code></em> :</span></p></td>
 
1333
<td>A PKCS 11 object that contains a certificate</td>
 
1334
</tr>
 
1335
<tr>
 
1336
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1337
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1338
negative error value.</td>
 
1339
</tr>
 
1340
</tbody>
 
1341
</table></div>
 
1342
</div>
 
1343
<hr>
 
1344
<div class="refsect2">
 
1345
<a name="gnutls-x509-crt-import-pkcs11-url"></a><h3>gnutls_x509_crt_import_pkcs11_url ()</h3>
 
1346
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_x509_crt_import_pkcs11_url   (<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>,
 
1347
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
1348
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
1349
<p>
 
1350
This function will import a PKCS 11 certificate directly from a token
 
1351
without involving the <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> structure. This function will
 
1352
fail if the certificate stored is not of X.509 type.
 
1353
</p>
 
1354
<div class="variablelist"><table border="0">
 
1355
<col align="left" valign="top">
 
1356
<tbody>
 
1357
<tr>
 
1358
<td><p><span class="term"><em class="parameter"><code>crt</code></em> :</span></p></td>
 
1359
<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>
 
1360
</td>
 
1361
</tr>
 
1362
<tr>
 
1363
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1364
<td>A PKCS 11 url</td>
 
1365
</tr>
 
1366
<tr>
 
1367
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1368
<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
 
1369
</tr>
 
1370
<tr>
 
1371
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1372
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1373
negative error value.</td>
 
1374
</tr>
 
1375
</tbody>
 
1376
</table></div>
 
1377
</div>
 
1378
<hr>
 
1379
<div class="refsect2">
 
1380
<a name="gnutls-pkcs11-obj-get-type"></a><h3>gnutls_pkcs11_obj_get_type ()</h3>
 
1381
<pre class="programlisting"><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="returnvalue">gnutls_pkcs11_obj_type_t</span></a>  gnutls_pkcs11_obj_get_type    (<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> certificate</code></em>);</pre>
 
1382
<p>
 
1383
This function will return the type of the certificate being
 
1384
stored in the structure.
 
1385
</p>
 
1386
<div class="variablelist"><table border="0">
 
1387
<col align="left" valign="top">
 
1388
<tbody>
 
1389
<tr>
 
1390
<td><p><span class="term"><em class="parameter"><code>certificate</code></em> :</span></p></td>
 
1391
<td>Holds the PKCS 11 certificate</td>
 
1392
</tr>
 
1393
<tr>
 
1394
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1395
<td>The type of the certificate.</td>
 
1396
</tr>
 
1397
</tbody>
 
1398
</table></div>
 
1399
</div>
 
1400
<hr>
 
1401
<div class="refsect2">
 
1402
<a name="gnutls-pkcs11-type-get-name"></a><h3>gnutls_pkcs11_type_get_name ()</h3>
 
1403
<pre class="programlisting">const <span class="returnvalue">char</span> *        gnutls_pkcs11_type_get_name         (<em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t" title="enum gnutls_pkcs11_obj_type_t"><span class="type">gnutls_pkcs11_obj_type_t</span></a> Param1</code></em>);</pre>
 
1404
<p>
 
1405
</p>
 
1406
</div>
 
1407
<hr>
 
1408
<div class="refsect2">
 
1409
<a name="gnutls-x509-crt-list-import-pkcs11"></a><h3>gnutls_x509_crt_list_import_pkcs11 ()</h3>
 
1410
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_x509_crt_list_import_pkcs11  (<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> *certs</code></em>,
 
1411
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> cert_max</code></em>,
 
1412
                                                         <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> * const objs</code></em>,
 
1413
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
1414
<p>
 
1415
This function will import a PKCS 11 certificate list to a list of 
 
1416
<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. These must not be initialized.
 
1417
</p>
 
1418
<div class="variablelist"><table border="0">
 
1419
<col align="left" valign="top">
 
1420
<tbody>
 
1421
<tr>
 
1422
<td><p><span class="term"><em class="parameter"><code>certs</code></em> :</span></p></td>
 
1423
<td>A list of certificates 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>
 
1424
</td>
 
1425
</tr>
 
1426
<tr>
 
1427
<td><p><span class="term"><em class="parameter"><code>cert_max</code></em> :</span></p></td>
 
1428
<td>The maximum size of the list</td>
 
1429
</tr>
 
1430
<tr>
 
1431
<td><p><span class="term"><em class="parameter"><code>objs</code></em> :</span></p></td>
 
1432
<td>A list of PKCS 11 objects</td>
 
1433
</tr>
 
1434
<tr>
 
1435
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1436
<td>0 for now</td>
 
1437
</tr>
 
1438
<tr>
 
1439
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1440
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1441
negative error value.</td>
 
1442
</tr>
 
1443
</tbody>
 
1444
</table></div>
 
1445
</div>
 
1446
<hr>
 
1447
<div class="refsect2">
 
1448
<a name="gnutls-pkcs11-privkey-init"></a><h3>gnutls_pkcs11_privkey_init ()</h3>
 
1449
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_privkey_init          (<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>);</pre>
 
1450
<p>
 
1451
This function will initialize an private key structure.
 
1452
</p>
 
1453
<div class="variablelist"><table border="0">
 
1454
<col align="left" valign="top">
 
1455
<tbody>
 
1456
<tr>
 
1457
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1458
<td>The structure to be initialized</td>
 
1459
</tr>
 
1460
<tr>
 
1461
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1462
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1463
negative error value.</td>
 
1464
</tr>
 
1465
</tbody>
 
1466
</table></div>
 
1467
</div>
 
1468
<hr>
 
1469
<div class="refsect2">
 
1470
<a name="gnutls-pkcs11-privkey-deinit"></a><h3>gnutls_pkcs11_privkey_deinit ()</h3>
 
1471
<pre class="programlisting"><span class="returnvalue">void</span>                gnutls_pkcs11_privkey_deinit        (<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>);</pre>
 
1472
<p>
 
1473
This function will deinitialize a private key structure.
 
1474
</p>
 
1475
<div class="variablelist"><table border="0">
 
1476
<col align="left" valign="top">
 
1477
<tbody><tr>
 
1478
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1479
<td>The structure to be initialized</td>
 
1480
</tr></tbody>
 
1481
</table></div>
 
1482
</div>
 
1483
<hr>
 
1484
<div class="refsect2">
 
1485
<a name="gnutls-pkcs11-privkey-get-pk-algorithm"></a><h3>gnutls_pkcs11_privkey_get_pk_algorithm ()</h3>
 
1486
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_privkey_get_pk_algorithm
 
1487
                                                        (<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>,
 
1488
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> *bits</code></em>);</pre>
 
1489
<p>
 
1490
This function will return the public key algorithm of a private
 
1491
key.
 
1492
</p>
 
1493
<div class="variablelist"><table border="0">
 
1494
<col align="left" valign="top">
 
1495
<tbody>
 
1496
<tr>
 
1497
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1498
<td>should contain a <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> structure</td>
 
1499
</tr>
 
1500
<tr>
 
1501
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1502
<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
 
1503
success, or a negative value on error.</td>
 
1504
</tr>
 
1505
</tbody>
 
1506
</table></div>
 
1507
</div>
 
1508
<hr>
 
1509
<div class="refsect2">
 
1510
<a name="gnutls-pkcs11-privkey-get-info"></a><h3>gnutls_pkcs11_privkey_get_info ()</h3>
 
1511
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_privkey_get_info      (<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> pkey</code></em>,
 
1512
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t" title="enum gnutls_pkcs11_obj_info_t"><span class="type">gnutls_pkcs11_obj_info_t</span></a> itype</code></em>,
 
1513
                                                         <em class="parameter"><code><span class="type">void</span> *output</code></em>,
 
1514
                                                         <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
 
1515
<p>
 
1516
This function will return information about the PKCS 11 private key such
 
1517
as the label, id as well as token information where the key is stored. When
 
1518
output is text it returns null terminated string although <span class="type">output_size</span> contains
 
1519
the size of the actual data only.
 
1520
</p>
 
1521
<div class="variablelist"><table border="0">
 
1522
<col align="left" valign="top">
 
1523
<tbody>
 
1524
<tr>
 
1525
<td><p><span class="term"><em class="parameter"><code>pkey</code></em> :</span></p></td>
 
1526
<td>should contain a <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> structure</td>
 
1527
</tr>
 
1528
<tr>
 
1529
<td><p><span class="term"><em class="parameter"><code>itype</code></em> :</span></p></td>
 
1530
<td>Denotes the type of information requested</td>
 
1531
</tr>
 
1532
<tr>
 
1533
<td><p><span class="term"><em class="parameter"><code>output</code></em> :</span></p></td>
 
1534
<td>where output will be stored</td>
 
1535
</tr>
 
1536
<tr>
 
1537
<td><p><span class="term"><em class="parameter"><code>output_size</code></em> :</span></p></td>
 
1538
<td>contains the maximum size of the output and will be overwritten with actual</td>
 
1539
</tr>
 
1540
<tr>
 
1541
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1542
<td>zero on success or a negative value on error.</td>
 
1543
</tr>
 
1544
</tbody>
 
1545
</table></div>
 
1546
</div>
 
1547
<hr>
 
1548
<div class="refsect2">
 
1549
<a name="gnutls-pkcs11-privkey-import-url"></a><h3>gnutls_pkcs11_privkey_import_url ()</h3>
 
1550
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_privkey_import_url    (<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> pkey</code></em>,
 
1551
                                                         <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
 
1552
                                                         <em class="parameter"><code>unsigned <a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="type">int</span></a> flags</code></em>);</pre>
 
1553
<p>
 
1554
This function will "import" a PKCS 11 URL identifying a certificate
 
1555
key to the <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> structure. This does not involve any
 
1556
parsing (such as X.509 or OpenPGP) since the <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> is
 
1557
format agnostic. Only data are transferred.
 
1558
</p>
 
1559
<div class="variablelist"><table border="0">
 
1560
<col align="left" valign="top">
 
1561
<tbody>
 
1562
<tr>
 
1563
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1564
<td>a PKCS 11 url identifying the key</td>
 
1565
</tr>
 
1566
<tr>
 
1567
<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
 
1568
<td>One of GNUTLS_PKCS11_OBJ_* flags</td>
 
1569
</tr>
 
1570
<tr>
 
1571
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1572
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1573
negative error value.</td>
 
1574
</tr>
 
1575
</tbody>
 
1576
</table></div>
 
1577
</div>
 
1578
<hr>
 
1579
<div class="refsect2">
 
1580
<a name="gnutls-pkcs11-privkey-export-url"></a><h3>gnutls_pkcs11_privkey_export_url ()</h3>
 
1581
<pre class="programlisting"><a class="link" href="gnutls-crypto.html#int" title="int ()"><span class="returnvalue">int</span></a>                 gnutls_pkcs11_privkey_export_url    (<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>,
 
1582
                                                         <em class="parameter"><code><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t" title="enum gnutls_pkcs11_url_type_t"><span class="type">gnutls_pkcs11_url_type_t</span></a> detailed</code></em>,
 
1583
                                                         <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
 
1584
<p>
 
1585
This function will export a URL identifying the given key.
 
1586
</p>
 
1587
<div class="variablelist"><table border="0">
 
1588
<col align="left" valign="top">
 
1589
<tbody>
 
1590
<tr>
 
1591
<td><p><span class="term"><em class="parameter"><code>key</code></em> :</span></p></td>
 
1592
<td>Holds the PKCS 11 key</td>
 
1593
</tr>
 
1594
<tr>
 
1595
<td><p><span class="term"><em class="parameter"><code>detailed</code></em> :</span></p></td>
 
1596
<td>non zero if a detailed URL is required</td>
 
1597
</tr>
 
1598
<tr>
 
1599
<td><p><span class="term"><em class="parameter"><code>url</code></em> :</span></p></td>
 
1600
<td>will contain an allocated url</td>
 
1601
</tr>
 
1602
<tr>
 
1603
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
 
1604
<td>On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> is returned, otherwise a
 
1605
negative error value.</td>
 
1606
</tr>
 
1607
</tbody>
 
1608
</table></div>
 
1609
</div>
 
1610
</div>
 
1611
</div>
 
1612
<div class="footer">
 
1613
<hr>
 
1614
          Generated by GTK-Doc V1.17</div>
 
1615
</body>
 
1616
</html>
 
 
b'\\ No newline at end of file'