summaryrefslogtreecommitdiffstats
path: root/doc/reference/html/gnutls-pkcs11.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/reference/html/gnutls-pkcs11.html')
-rw-r--r--doc/reference/html/gnutls-pkcs11.html4178
1 files changed, 4178 insertions, 0 deletions
diff --git a/doc/reference/html/gnutls-pkcs11.html b/doc/reference/html/gnutls-pkcs11.html
new file mode 100644
index 0000000..19bb391
--- /dev/null
+++ b/doc/reference/html/gnutls-pkcs11.html
@@ -0,0 +1,4178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>pkcs11: GnuTLS API Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
+<link rel="home" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="up" href="intro.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-crypto.html" title="crypto">
+<link rel="next" href="gnutls-pkcs12.html" title="pkcs12">
+<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+ <a href="#gnutls-pkcs11.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="intro.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gnutls-crypto.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-pkcs12.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-pkcs11"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-pkcs11.top_of_page"></a>pkcs11</span></h2>
+<p>pkcs11</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-pkcs11.functions"></a><h2>Functions</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="functions_proto_type">
+<col class="functions_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()">*gnutls_pkcs11_token_callback_t</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-init" title="gnutls_pkcs11_init ()">gnutls_pkcs11_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-reinit" title="gnutls_pkcs11_reinit ()">gnutls_pkcs11_reinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-deinit" title="gnutls_pkcs11_deinit ()">gnutls_pkcs11_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" title="gnutls_pkcs11_set_token_function ()">gnutls_pkcs11_set_token_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()">gnutls_pkcs11_set_pin_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()"><span class="returnvalue">gnutls_pin_callback_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-get-pin-function" title="gnutls_pkcs11_get_pin_function ()">gnutls_pkcs11_get_pin_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" title="gnutls_pkcs11_add_provider ()">gnutls_pkcs11_add_provider</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-init" title="gnutls_pkcs11_obj_init ()">gnutls_pkcs11_obj_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-set-pin-function" title="gnutls_pkcs11_obj_set_pin_function ()">gnutls_pkcs11_obj_set_pin_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url" title="gnutls_pkcs11_obj_import_url ()">gnutls_pkcs11_obj_import_url</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url" title="gnutls_pkcs11_obj_export_url ()">gnutls_pkcs11_obj_export_url</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" title="gnutls_pkcs11_obj_deinit ()">gnutls_pkcs11_obj_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export" title="gnutls_pkcs11_obj_export ()">gnutls_pkcs11_obj_export</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export2" title="gnutls_pkcs11_obj_export2 ()">gnutls_pkcs11_obj_export2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export3" title="gnutls_pkcs11_obj_export3 ()">gnutls_pkcs11_obj_export3</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer" title="gnutls_pkcs11_get_raw_issuer ()">gnutls_pkcs11_get_raw_issuer</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer-by-dn" title="gnutls_pkcs11_get_raw_issuer_by_dn ()">gnutls_pkcs11_get_raw_issuer_by_dn</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer-by-subject-key-id" title="gnutls_pkcs11_get_raw_issuer_by_subject_key_id ()">gnutls_pkcs11_get_raw_issuer_by_subject_key_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">unsigned</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-crt-is-known" title="gnutls_pkcs11_crt_is_known ()">gnutls_pkcs11_crt_is_known</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt" title="gnutls_pkcs11_copy_x509_crt ()">gnutls_pkcs11_copy_x509_crt</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey" title="gnutls_pkcs11_copy_x509_privkey ()">gnutls_pkcs11_copy_x509_privkey</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate2" title="gnutls_pkcs11_privkey_generate2 ()">gnutls_pkcs11_privkey_generate2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate" title="gnutls_pkcs11_privkey_generate ()">gnutls_pkcs11_privkey_generate</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-pubkey" title="gnutls_pkcs11_copy_pubkey ()">gnutls_pkcs11_copy_pubkey</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt2" title="gnutls_pkcs11_copy_x509_crt2 ()">gnutls_pkcs11_copy_x509_crt2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey2" title="gnutls_pkcs11_copy_x509_privkey2 ()">gnutls_pkcs11_copy_x509_privkey2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-delete-url" title="gnutls_pkcs11_delete_url ()">gnutls_pkcs11_delete_url</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-secret-key" title="gnutls_pkcs11_copy_secret_key ()">gnutls_pkcs11_copy_secret_key</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-ptr" title="gnutls_pkcs11_obj_get_ptr ()">gnutls_pkcs11_obj_get_ptr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info" title="gnutls_pkcs11_obj_get_info ()">gnutls_pkcs11_obj_get_info</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-set-info" title="gnutls_pkcs11_obj_set_info ()">gnutls_pkcs11_obj_set_info</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-init" title="gnutls_pkcs11_token_init ()">gnutls_pkcs11_token_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-ptr" title="gnutls_pkcs11_token_get_ptr ()">gnutls_pkcs11_token_get_ptr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-mechanism" title="gnutls_pkcs11_token_get_mechanism ()">gnutls_pkcs11_token_get_mechanism</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">unsigned</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-check-mechanism" title="gnutls_pkcs11_token_check_mechanism ()">gnutls_pkcs11_token_check_mechanism</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-set-pin" title="gnutls_pkcs11_token_set_pin ()">gnutls_pkcs11_token_set_pin</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url" title="gnutls_pkcs11_token_get_url ()">gnutls_pkcs11_token_get_url</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info" title="gnutls_pkcs11_token_get_info ()">gnutls_pkcs11_token_get_info</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags" title="gnutls_pkcs11_token_get_flags ()">gnutls_pkcs11_token_get_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<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><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url2" title="gnutls_pkcs11_obj_list_import_url2()">gnutls_pkcs11_obj_list_import_url2</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url3" title="gnutls_pkcs11_obj_list_import_url3 ()">gnutls_pkcs11_obj_list_import_url3</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url4" title="gnutls_pkcs11_obj_list_import_url4 ()">gnutls_pkcs11_obj_list_import_url4</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11" title="gnutls_x509_crt_import_pkcs11 ()">gnutls_x509_crt_import_pkcs11</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name" title="gnutls_pkcs11_type_get_name ()">gnutls_pkcs11_type_get_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-exts" title="gnutls_pkcs11_obj_get_exts ()">gnutls_pkcs11_obj_get_exts</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-flags" title="gnutls_pkcs11_obj_get_flags ()">gnutls_pkcs11_obj_get_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-flags-get-str" title="gnutls_pkcs11_obj_flags_get_str ()">gnutls_pkcs11_obj_flags_get_str</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<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> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init" title="gnutls_pkcs11_privkey_init ()">gnutls_pkcs11_privkey_init</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-cpy" title="gnutls_pkcs11_privkey_cpy ()">gnutls_pkcs11_privkey_cpy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-set-pin-function" title="gnutls_pkcs11_privkey_set_pin_function ()">gnutls_pkcs11_privkey_set_pin_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit" title="gnutls_pkcs11_privkey_deinit ()">gnutls_pkcs11_privkey_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<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> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info" title="gnutls_pkcs11_privkey_get_info ()">gnutls_pkcs11_privkey_get_info</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url" title="gnutls_pkcs11_privkey_import_url ()">gnutls_pkcs11_privkey_import_url</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url" title="gnutls_pkcs11_privkey_export_url ()">gnutls_pkcs11_privkey_export_url</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">unsigned</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-status" title="gnutls_pkcs11_privkey_status ()">gnutls_pkcs11_privkey_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate3" title="gnutls_pkcs11_privkey_generate3 ()">gnutls_pkcs11_privkey_generate3</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-pubkey" title="gnutls_pkcs11_privkey_export_pubkey ()">gnutls_pkcs11_privkey_export_pubkey</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-random" title="gnutls_pkcs11_token_get_random ()">gnutls_pkcs11_token_get_random</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-attached-extension" title="gnutls_pkcs11_copy_attached_extension ()">gnutls_pkcs11_copy_attached_extension</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs11.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="other_proto_type">
+<col class="other_proto_name">
+</colgroup>
+<tbody>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><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></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t">gnutls_pkcs11_obj_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL">GNUTLS_PKCS11_FLAG_MANUAL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO">GNUTLS_PKCS11_FLAG_AUTO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO-TRUSTED:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO_TRUSTED">GNUTLS_PKCS11_FLAG_AUTO_TRUSTED</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-flags" title="enum gnutls_pkcs11_obj_flags">gnutls_pkcs11_obj_flags</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="gnutls_pkcs11_obj_attr_t">gnutls_pkcs11_obj_attr_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><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></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><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></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL">GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-MATCH:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_MATCH">GNUTLS_PKCS11_OBJ_ATTR_MATCH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_ALL">GNUTLS_PKCS11_OBJ_ATTR_ALL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED">GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY">GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED-CA:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA">GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_PUBKEY">GNUTLS_PKCS11_OBJ_ATTR_PUBKEY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS" title="GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY">GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><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></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><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></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS" title="GNUTLS_PKCS11_TOKEN_HW">GNUTLS_PKCS11_TOKEN_HW</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-TRUSTED:CAPS" title="GNUTLS_PKCS11_TOKEN_TRUSTED">GNUTLS_PKCS11_TOKEN_TRUSTED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-RNG:CAPS" title="GNUTLS_PKCS11_TOKEN_RNG">GNUTLS_PKCS11_TOKEN_RNG</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-LOGIN-REQUIRED:CAPS" title="GNUTLS_PKCS11_TOKEN_LOGIN_REQUIRED">GNUTLS_PKCS11_TOKEN_LOGIN_REQUIRED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-PROTECTED-AUTHENTICATION-PATH:CAPS" title="GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH">GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-INITIALIZED:CAPS" title="GNUTLS_PKCS11_TOKEN_INITIALIZED">GNUTLS_PKCS11_TOKEN_INITIALIZED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-COUNT-LOW:CAPS" title="GNUTLS_PKCS11_TOKEN_USER_PIN_COUNT_LOW">GNUTLS_PKCS11_TOKEN_USER_PIN_COUNT_LOW</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-FINAL-TRY:CAPS" title="GNUTLS_PKCS11_TOKEN_USER_PIN_FINAL_TRY">GNUTLS_PKCS11_TOKEN_USER_PIN_FINAL_TRY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-LOCKED:CAPS" title="GNUTLS_PKCS11_TOKEN_USER_PIN_LOCKED">GNUTLS_PKCS11_TOKEN_USER_PIN_LOCKED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SO-PIN-COUNT-LOW:CAPS" title="GNUTLS_PKCS11_TOKEN_SO_PIN_COUNT_LOW">GNUTLS_PKCS11_TOKEN_SO_PIN_COUNT_LOW</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SO-PIN-FINAL-TRY:CAPS" title="GNUTLS_PKCS11_TOKEN_SO_PIN_FINAL_TRY">GNUTLS_PKCS11_TOKEN_SO_PIN_FINAL_TRY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SO-PIN-LOCKED:CAPS" title="GNUTLS_PKCS11_TOKEN_SO_PIN_LOCKED">GNUTLS_PKCS11_TOKEN_SO_PIN_LOCKED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-INITIALIZED:CAPS" title="GNUTLS_PKCS11_TOKEN_USER_PIN_INITIALIZED">GNUTLS_PKCS11_TOKEN_USER_PIN_INITIALIZED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-ERROR-STATE:CAPS" title="GNUTLS_PKCS11_TOKEN_ERROR_STATE">GNUTLS_PKCS11_TOKEN_ERROR_STATE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><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></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-st" title="struct gnutls_pkcs11_obj_st">gnutls_pkcs11_obj_st</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs11.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs11.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-callback-t"></a><h3>gnutls_pkcs11_token_callback_t ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_pkcs11_token_callback_t<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *const userdata</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *const label</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> retry</code></em>);</pre>
+<p>Token callback function. The callback will be used to ask the user
+to re-insert the token with given (null terminated) label. The
+callback should return zero if token has been inserted by user and
+a negative error code otherwise. It might be called multiple times
+if the token is not detected and the retry counter will be
+increased.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-callback-t.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>userdata</p></td>
+<td class="parameter_description"><p>user-controlled data from <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" title="gnutls_pkcs11_set_token_function ()"><code class="function">gnutls_pkcs11_set_token_function()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>token label.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>retry</p></td>
+<td class="parameter_description"><p>retry counter, initially 0.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-callback-t.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-init"></a><h3>gnutls_pkcs11_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_init (<em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *deprecated_config_file</code></em>);</pre>
+<p>This function will initialize the PKCS 11 subsystem in gnutls. It will
+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
+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>
+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.</p>
+<p>You don't need to call this function since GnuTLS 3.3.0 because it is being called
+during the first request PKCS 11 operation. That call will assume 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>
+flag. If another flags are required then it must be called independently
+prior to any PKCS 11 operation.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-init.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>An ORed sequence of <code class="literal">GNUTLS_PKCS11_FLAG_</code>*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deprecated_config_file</p></td>
+<td class="parameter_description"><p>either NULL or the location of a deprecated
+configuration file</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-init.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-reinit"></a><h3>gnutls_pkcs11_reinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_reinit (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>This function will reinitialize the PKCS 11 subsystem in gnutls.
+This is required by PKCS 11 when an application uses <code class="function">fork()</code>. The
+reinitialization function must be called on the child.</p>
+<p>Note that since GnuTLS 3.3.0, the reinitialization of the PKCS <span class="type">11</span>
+subsystem occurs automatically after fork.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-reinit.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-deinit"></a><h3>gnutls_pkcs11_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pkcs11_deinit (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>This function will deinitialize the PKCS 11 subsystem in gnutls.
+This function is only needed if you need to deinitialize the
+subsystem without calling <a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()"><code class="function">gnutls_global_deinit()</code></a>.</p>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-set-token-function"></a><h3>gnutls_pkcs11_set_token_function ()</h3>
+<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>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+<p>This function will set a callback function to be used when a token
+needs to be inserted to continue PKCS 11 operations.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-set-token-function.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>fn</p></td>
+<td class="parameter_description"><p>The token callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>userdata</p></td>
+<td class="parameter_description"><p>data to be supplied to callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-set-pin-function"></a><h3>gnutls_pkcs11_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pkcs11_set_pin_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()"><span class="type">gnutls_pin_callback_t</span></a> fn</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+<p>This function will set a callback function to be used when a PIN is
+required for PKCS 11 operations. See
+<a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()"><code class="function">gnutls_pin_callback_t()</code></a> on how the callback should behave.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-set-pin-function.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>fn</p></td>
+<td class="parameter_description"><p>The PIN callback, a <a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()"><code class="function">gnutls_pin_callback_t()</code></a> function.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>userdata</p></td>
+<td class="parameter_description"><p>data to be supplied to callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-get-pin-function"></a><h3>gnutls_pkcs11_get_pin_function ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()"><span class="returnvalue">gnutls_pin_callback_t</span></a>
+gnutls_pkcs11_get_pin_function (<em class="parameter"><code><span class="type">void</span> **userdata</code></em>);</pre>
+<p>This function will return the callback function set using
+<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>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-pin-function.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>userdata</p></td>
+<td class="parameter_description"><p>data to be supplied to callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-pin-function.returns"></a><h4>Returns</h4>
+<p> The function set or NULL otherwise.</p>
+</div>
+<p class="since">Since: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-add-provider"></a><h3>gnutls_pkcs11_add_provider ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_add_provider (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *params</code></em>);</pre>
+<p>This function will load and add a PKCS 11 module to the module
+list used in gnutls. After this function is called the module will
+be used for PKCS 11 operations.</p>
+<p>When loading a module to be used for certificate verification,
+use the string 'trusted' as <em class="parameter"><code>params</code></em>
+.</p>
+<p>Note that this function is not thread safe.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-add-provider.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>The filename of the module</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>params</p></td>
+<td class="parameter_description"><p>should be NULL or a known string (see description)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-add-provider.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-init"></a><h3>gnutls_pkcs11_obj_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>
+<p>This function will initialize a pkcs11 certificate structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-init.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>A pointer to the type to be initialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-init.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-set-pin-function"></a><h3>gnutls_pkcs11_obj_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pkcs11_obj_set_pin_function (<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>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()"><span class="type">gnutls_pin_callback_t</span></a> fn</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+<p>This function will set a callback function to be used when
+required to access the object. This function overrides the global
+set using <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>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-set-pin-function.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>The object structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fn</p></td>
+<td class="parameter_description"><p>the callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>userdata</p></td>
+<td class="parameter_description"><p>data associated with the callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-import-url"></a><h3>gnutls_pkcs11_obj_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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> obj</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will "import" a PKCS 11 URL identifying an object (e.g. certificate)
+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> type. This does not involve any
+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
+format agnostic. Only data are transferred.</p>
+<p>If the flag <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-OVERWRITE-TRUSTMOD-EXT:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT</code></a> is specified
+any certificate read, will have its extensions overwritten by any
+stapled extensions in the trust module.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-import-url.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>The structure to store the object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>a PKCS 11 url identifying the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Or sequence of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-import-url.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-export-url"></a><h3>gnutls_pkcs11_obj_export_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>,
+ <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>,
+ <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
+<p>This function will export a URL identifying the given object.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export-url.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>Holds the PKCS 11 certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>detailed</p></td>
+<td class="parameter_description"><p>non zero if a detailed URL is required</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>will contain an allocated url</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export-url.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-deinit"></a><h3>gnutls_pkcs11_obj_deinit ()</h3>
+<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>
+<p>This function will deinitialize a certificate structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-deinit.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>The type to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-export"></a><h3>gnutls_pkcs11_obj_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>,
+ <em class="parameter"><code><span class="type">void</span> *output_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>);</pre>
+<p>This function will export the PKCS11 object data. It is normal for
+data to be inaccessible 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>
+will be returned.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*output_data_size is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
+be returned.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>Holds the object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output_data</p></td>
+<td class="parameter_description"><p>will contain the object data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output_data_size</p></td>
+<td class="parameter_description"><p>holds the size of output_data (and will be
+replaced by the actual size of parameters)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and <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.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-export2"></a><h3>gnutls_pkcs11_obj_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_export2 (<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>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *out</code></em>);</pre>
+<p>This function will export the PKCS11 object data. It is normal for
+data to be inaccessible 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>
+will be returned.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export2.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>Holds the object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain the object data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export2.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and <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.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-export3"></a><h3>gnutls_pkcs11_obj_export3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_export3 (<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>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> fmt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *out</code></em>);</pre>
+<p>This function will export the PKCS11 object data. It is normal for
+data to be inaccessible 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>
+will be returned.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export3.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>Holds the object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain the object data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>The format of the exported data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-export3.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and <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.</p>
+</div>
+<p class="since">Since: 3.2.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-get-raw-issuer"></a><h3>gnutls_pkcs11_get_raw_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_get_raw_issuer (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <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> cert</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *issuer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> fmt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the issuer of a given certificate, if it
+is stored in the token. By default only marked as trusted issuers
+are returned. If any issuer should be returned specify
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-ANY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY</code></a> in <em class="parameter"><code>flags</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-raw-issuer.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>A PKCS 11 url identifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>is the certificate to find issuer for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer</p></td>
+<td class="parameter_description"><p>Will hold the issuer if any in an allocated buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>The format of the exported issuer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Use zero or flags from <code class="literal">GNUTLS_PKCS11_OBJ_FLAG</code>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-raw-issuer.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.2.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-get-raw-issuer-by-dn"></a><h3>gnutls_pkcs11_get_raw_issuer_by_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_get_raw_issuer_by_dn (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *dn</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *issuer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> fmt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the certificate with the given DN, if it
+is stored in the token. By default only marked as trusted issuers
+are returned. If any issuer should be returned specify
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-ANY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY</code></a> in <em class="parameter"><code>flags</code></em>
+.</p>
+<p>The name of the function includes issuer because it can
+be used to discover issuers of certificates.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-raw-issuer-by-dn.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>A PKCS 11 url identifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>is the DN to search for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer</p></td>
+<td class="parameter_description"><p>Will hold the issuer if any in an allocated buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>The format of the exported issuer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Use zero or flags from <code class="literal">GNUTLS_PKCS11_OBJ_FLAG</code>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-raw-issuer-by-dn.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-get-raw-issuer-by-subject-key-id"></a><h3>gnutls_pkcs11_get_raw_issuer_by_subject_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_get_raw_issuer_by_subject_key_id
+ (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *dn</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *spki</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *issuer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> fmt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the certificate with the given DN and <em class="parameter"><code>spki</code></em>
+, if it
+is stored in the token. By default only marked as trusted issuers
+are returned. If any issuer should be returned specify
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-ANY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY</code></a> in <em class="parameter"><code>flags</code></em>
+.</p>
+<p>The name of the function includes issuer because it can
+be used to discover issuers of certificates.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-raw-issuer-by-subject-key-id.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>A PKCS 11 url identifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>is the DN to search for (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>is the subject key ID to search for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer</p></td>
+<td class="parameter_description"><p>Will hold the issuer if any in an allocated buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>The format of the exported issuer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Use zero or flags from <code class="literal">GNUTLS_PKCS11_OBJ_FLAG</code>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-get-raw-issuer-by-subject-key-id.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-crt-is-known"></a><h3>gnutls_pkcs11_crt_is_known ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_pkcs11_crt_is_known (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <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> cert</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will check whether the provided certificate is stored
+in the specified token. This is useful in combination with
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-TRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED</code></a> or
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-DISTRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED</code></a>,
+to check whether a CA is present or a certificate is blacklisted in
+a trust PKCS <span class="type">11</span> module.</p>
+<p>This function can be used with a <em class="parameter"><code>url</code></em>
+ of "pkcs11:", and in that case all modules
+will be searched. To restrict the modules to the marked as trusted in p11-kit
+use the <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PRESENT-IN-TRUSTED-MODULE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE</code></a> flag.</p>
+<p>Note that the flag <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-DISTRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED</code></a> is
+specific to p11-kit trust modules.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-crt-is-known.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>A PKCS 11 url identifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>is the certificate to find issuer for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Use zero or flags from <code class="literal">GNUTLS_PKCS11_OBJ_FLAG</code>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-crt-is-known.returns"></a><h4>Returns</h4>
+<p> If the certificate exists non-zero is returned, otherwise zero.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-x509-crt"></a><h3>gnutls_pkcs11_copy_x509_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_copy_x509_crt (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <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>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will copy a certificate into a PKCS <span class="type">11</span> token specified by
+a URL. The certificate can be marked as trusted or not.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-crt.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>A certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>A name to be used for the stored data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_FLAG_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-crt.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-x509-privkey"></a><h3>gnutls_pkcs11_copy_x509_privkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_copy_x509_privkey (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <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>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will copy a private key into a PKCS <span class="type">11</span> token specified by
+a URL.</p>
+<p>Since 3.6.3 the objects are marked as sensitive by default unless
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-NOT-SENSITIVE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE</code></a> is specified.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-privkey.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>A private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>A name to be used for the stored data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>One of GNUTLS_KEY_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-privkey.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-generate2"></a><h3>gnutls_pkcs11_privkey_generate2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_privkey_generate2 (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code><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> pk</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> fmt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *pubkey</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will generate a private key in the specified
+by the <em class="parameter"><code>url</code></em>
+ token. The private key will be generate within
+the token and will not be exportable. This function will
+store the DER-encoded public key in the SubjectPublicKeyInfo format
+in <em class="parameter"><code>pubkey</code></em>
+. The <em class="parameter"><code>pubkey</code></em>
+ should be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>Note that when generating an elliptic curve key, the curve
+can be substituted in the place of the bits parameter using the
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CURVE-TO-BITS:CAPS" title="GNUTLS_CURVE_TO_BITS()"><code class="function">GNUTLS_CURVE_TO_BITS()</code></a> macro.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-generate2.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>a token URL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pk</p></td>
+<td class="parameter_description"><p>the public key algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>the security bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>a label</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>the format of output params. PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pubkey</p></td>
+<td class="parameter_description"><p>will hold the public key (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or an OR'ed sequence of <code class="literal">GNUTLS_PKCS11_OBJ_FLAGs</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-generate2.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.1.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-generate"></a><h3>gnutls_pkcs11_privkey_generate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_privkey_generate (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code><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> pk</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will generate a private key in the specified
+by the <em class="parameter"><code>url</code></em>
+ token. The private key will be generate within
+the token and will not be exportable.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-generate.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>a token URL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pk</p></td>
+<td class="parameter_description"><p>the public key algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>the security bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>a label</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-generate.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-pubkey"></a><h3>gnutls_pkcs11_copy_pubkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_copy_pubkey (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> crt</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *cid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will copy a public key object into a PKCS <span class="type">11</span> token specified by
+a URL. Valid flags to mark the key: <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-PRIVATE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-CA:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_CA</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-ALWAYS-AUTH:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-pubkey.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pubkey</p></td>
+<td class="parameter_description"><p>The public key to copy</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>The name to be used for the stored data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cid</p></td>
+<td class="parameter_description"><p>The CKA_ID to set for the object -if NULL, the ID will be derived from the public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>One of GNUTLS_KEY_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_FLAG_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-pubkey.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-x509-crt2"></a><h3>gnutls_pkcs11_copy_x509_crt2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_copy_x509_crt2 (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <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>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *id</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will copy a certificate into a PKCS <span class="type">11</span> token specified by
+a URL. Valid flags to mark the certificate: <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-PRIVATE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-CA:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_CA</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-ALWAYS-AUTH:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-crt2.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>The certificate to copy</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>The name to be used for the stored data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cid</p></td>
+<td class="parameter_description"><p>The CKA_ID to set for the object -if NULL, the ID will be derived from the public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_FLAG_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-crt2.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-x509-privkey2"></a><h3>gnutls_pkcs11_copy_x509_privkey2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_copy_x509_privkey2 (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <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>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *cid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will copy a private key into a PKCS <span class="type">11</span> token specified by
+a URL.</p>
+<p>Since 3.6.3 the objects are marked as sensitive by default unless
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-NOT-SENSITIVE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE</code></a> is specified.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-privkey2.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>A private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>A name to be used for the stored data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cid</p></td>
+<td class="parameter_description"><p>The CKA_ID to set for the object -if NULL, the ID will be derived from the public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>One of GNUTLS_KEY_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-x509-privkey2.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-delete-url"></a><h3>gnutls_pkcs11_delete_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_delete_url (<em class="parameter"><code>const <span class="type">char</span> *object_url</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will delete objects matching the given URL.
+Note that not all tokens support the delete operation.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-delete-url.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>object_url</p></td>
+<td class="parameter_description"><p>The URL of the object to delete.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-delete-url.returns"></a><h4>Returns</h4>
+<p> On success, the number of objects deleted is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-secret-key"></a><h3>gnutls_pkcs11_copy_secret_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_copy_secret_key (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *key</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will copy a raw secret (symmetric) key into a PKCS <span class="type">11</span>
+token specified by a URL. The key can be marked as sensitive or not.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-secret-key.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>The raw key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>A name to be used for the stored data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>One of GNUTLS_KEY_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_FLAG_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-secret-key.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-get-ptr"></a><h3>gnutls_pkcs11_obj_get_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_get_ptr (<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>,
+ <em class="parameter"><code><span class="type">void</span> **ptr</code></em>,
+ <em class="parameter"><code><span class="type">void</span> **session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> **ohandle</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">long</span> *slot_id</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>Obtains the PKCS<span class="type">11</span> session handles of an object. <em class="parameter"><code>session</code></em>
+ and <em class="parameter"><code>ohandle</code></em>
+
+must be deinitialized by the caller. The returned pointers are
+independent of the <em class="parameter"><code>obj</code></em>
+ lifetime.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-ptr.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>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> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptr</p></td>
+<td class="parameter_description"><p>will contain the CK_FUNCTION_LIST_PTR pointer (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session</p></td>
+<td class="parameter_description"><p>will contain the CK_SESSION_HANDLE of the object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ohandle</p></td>
+<td class="parameter_description"><p>will contain the CK_OBJECT_HANDLE of the object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>slot_id</p></td>
+<td class="parameter_description"><p>the identifier of the slot (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Or sequence of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-ptr.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-get-info"></a><h3>gnutls_pkcs11_obj_get_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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> obj</code></em>,
+ <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>,
+ <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
+<p>This function will return information about the PKCS11 certificate
+such as the label, id as well as token information where the key is
+stored.</p>
+<p>When output is text, a null terminated string is written to <em class="parameter"><code>output</code></em>
+ and its
+string length is written to <em class="parameter"><code>output_size</code></em>
+ (without null terminator). If the
+buffer is too small, <em class="parameter"><code>output_size</code></em>
+ will contain the expected buffer size
+(with null terminator for text) and return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a>.</p>
+<p>In versions previously to 3.6.0 this function included the null terminator
+to <em class="parameter"><code>output_size</code></em>
+. After 3.6.0 the output size doesn't include the terminator character.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-info.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>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> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>itype</p></td>
+<td class="parameter_description"><p>Denotes the type of information requested</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>where output will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output_size</p></td>
+<td class="parameter_description"><p>contains the maximum size of the output buffer and will be
+overwritten with the actual size.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-info.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-set-info"></a><h3>gnutls_pkcs11_obj_set_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_set_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> obj</code></em>,
+ <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>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will set attributes on the provided object.
+Available options for <em class="parameter"><code>itype</code></em>
+ are <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LABEL:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_LABEL</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID-HEX:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_ID_HEX</code></a>, and <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_ID</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-set-info.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>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> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>itype</p></td>
+<td class="parameter_description"><p>Denotes the type of information to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the data to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>the size of data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Or sequence of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-set-info.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-init"></a><h3>gnutls_pkcs11_token_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_init (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *so_pin</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>);</pre>
+<p>This function will initialize (format) a token. If the token is
+at a factory defaults state the security officer's PIN given will be
+set to be the default. Otherwise it should match the officer's PIN.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-init.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>so_pin</p></td>
+<td class="parameter_description"><p>Security Officer's PIN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>A name to be used for the token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-init.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-ptr"></a><h3>gnutls_pkcs11_token_get_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_get_ptr (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code><span class="type">void</span> **ptr</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">long</span> *slot_id</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the function pointer of the specified
+token by the URL. The returned pointers are valid until
+gnutls is deinitialized, c.f. <code class="function">_global_deinit()</code>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-ptr.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>should contain a PKCS<span class="type">11</span> URL identifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptr</p></td>
+<td class="parameter_description"><p>will contain the CK_FUNCTION_LIST_PTR pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>slot_id</p></td>
+<td class="parameter_description"><p>will contain the slot_id (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-ptr.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-mechanism"></a><h3>gnutls_pkcs11_token_get_mechanism ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_get_mechanism (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">long</span> *mechanism</code></em>);</pre>
+<p>This function will return the names of the supported mechanisms
+by the token. It should be called with an increasing index until
+it return GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-mechanism.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>should contain a PKCS 11 URL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>The index of the mechanism</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mechanism</p></td>
+<td class="parameter_description"><p>The PKCS <span class="type">11</span> mechanism ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-mechanism.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-check-mechanism"></a><h3>gnutls_pkcs11_token_check_mechanism ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_pkcs11_token_check_mechanism (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code><span class="type">unsigned long </span> mechanism</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptr</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> psize</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will return whether a mechanism is supported
+by the given token. If the mechanism is supported and
+<em class="parameter"><code>ptr</code></em>
+ is set, it will be updated with the token information.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-check-mechanism.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>should contain a PKCS 11 URL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mechanism</p></td>
+<td class="parameter_description"><p>The PKCS <span class="type">11</span> mechanism ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptr</p></td>
+<td class="parameter_description"><p>if set it should point to a CK_MECHANISM_INFO struct</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>psize</p></td>
+<td class="parameter_description"><p>the size of CK_MECHANISM_INFO struct (for safety)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-check-mechanism.returns"></a><h4>Returns</h4>
+<p> Non-zero if the mechanism is supported or zero otherwise.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-set-pin"></a><h3>gnutls_pkcs11_token_set_pin ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_set_pin (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oldpin</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *newpin</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will modify or set a user or administrator's PIN for
+the given token. If it is called to set a PIN for first time
+the oldpin must be <code class="literal">NULL</code>. When setting the admin's PIN with the
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PIN-SO:CAPS"><code class="literal">GNUTLS_PIN_SO</code></a> flag, the <em class="parameter"><code>oldpin</code></em>
+ value must be provided (this requirement
+is relaxed after GnuTLS 3.6.5 since which the PIN will be requested if missing).</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-set-pin.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oldpin</p></td>
+<td class="parameter_description"><p>old user's PIN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>newpin</p></td>
+<td class="parameter_description"><p>new user's PIN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>one of <a class="link" href="gnutls-gnutls.html#gnutls-pin-flag-t" title="enum gnutls_pin_flag_t"><span class="type">gnutls_pin_flag_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-set-pin.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-url"></a><h3>gnutls_pkcs11_token_get_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_get_url (<em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+ <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>,
+ <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
+<p>This function will return the URL for each token available
+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></p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-url.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>sequence number starting from 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>detailed</p></td>
+<td class="parameter_description"><p>non zero if a detailed URL is required</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>will contain an allocated url</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-url.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned,
+<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> if the sequence number
+exceeds the available tokens, otherwise a negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-info"></a><h3>gnutls_pkcs11_token_get_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_get_info (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <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>,
+ <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
+<p>This function will return information about the PKCS 11 token such
+as the label, id, etc.</p>
+<p>When output is text, a null terminated string is written to <em class="parameter"><code>output</code></em>
+ and its
+string length is written to <em class="parameter"><code>output_size</code></em>
+ (without null terminator). If the
+buffer is too small, <em class="parameter"><code>output_size</code></em>
+ will contain the expected buffer size
+(with null terminator for text) and return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-info.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>should contain a PKCS 11 URL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ttype</p></td>
+<td class="parameter_description"><p>Denotes the type of information requested</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>where output will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output_size</p></td>
+<td class="parameter_description"><p>contains the maximum size of the output buffer and will be
+overwritten with the actual size.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-info.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-flags"></a><h3>gnutls_pkcs11_token_get_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_get_flags (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *flags</code></em>);</pre>
+<p>This function will return information about the PKCS 11 token flags.</p>
+<p>The supported flags are: <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS" title="GNUTLS_PKCS11_TOKEN_HW"><code class="literal">GNUTLS_PKCS11_TOKEN_HW</code></a> and <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-TRUSTED:CAPS" title="GNUTLS_PKCS11_TOKEN_TRUSTED"><code class="literal">GNUTLS_PKCS11_TOKEN_TRUSTED</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-flags.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>should contain a PKCS 11 URL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>The output flags (GNUTLS_PKCS11_TOKEN_*)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-flags.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-list-import-url"></a><h3>gnutls_pkcs11_obj_list_import_url()</h3>
+<pre class="programlisting">#define gnutls_pkcs11_obj_list_import_url(p_list, n_list, url, attrs, flags) gnutls_pkcs11_obj_list_import_url3(p_list, n_list, url, attrs|flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-list-import-url2"></a><h3>gnutls_pkcs11_obj_list_import_url2()</h3>
+<pre class="programlisting">#define gnutls_pkcs11_obj_list_import_url2(p_list, n_list, url, attrs, flags) gnutls_pkcs11_obj_list_import_url4(p_list, n_list, url, attrs|flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-list-import-url3"></a><h3>gnutls_pkcs11_obj_list_import_url3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_list_import_url3 (<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>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *const n_list</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will initialize and set values to an object list
+by using all objects identified by a PKCS 11 URL.</p>
+<p>This function will enumerate all the objects specified by the PKCS<span class="type">11</span> URL
+provided. It expects an already allocated <em class="parameter"><code>p_list</code></em>
+ which has *<em class="parameter"><code>n_list</code></em>
+ elements,
+and that value will be updated to the actual number of present objects. The
+<em class="parameter"><code>p_list</code></em>
+ objects will be initialized and set by this function.
+To obtain a list of all available objects use a <em class="parameter"><code>url</code></em>
+ of 'pkcs11:'.</p>
+<p>All returned objects must be deinitialized using <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" title="gnutls_pkcs11_obj_deinit ()"><code class="function">gnutls_pkcs11_obj_deinit()</code></a>.</p>
+<p>The supported in this function <em class="parameter"><code>flags</code></em>
+ are <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_LOGIN</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN-SO:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PRESENT-IN-TRUSTED-MODULE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-CRT:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_CRT</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PUBKEY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_PUBKEY</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PRIVKEY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-WITH-PRIVKEY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-CA:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_CA</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</code></a>, and since 3.5.1 the <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-OVERWRITE-TRUSTMOD-EXT:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT</code></a>.</p>
+<p>On versions of GnuTLS prior to 3.4.0 the equivalent function was
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url" title="gnutls_pkcs11_obj_list_import_url()"><code class="function">gnutls_pkcs11_obj_list_import_url()</code></a>. That is also available on this version
+as a macro which maps to this function.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-list-import-url3.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>p_list</p></td>
+<td class="parameter_description"><p>An uninitialized object list (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>n_list</p></td>
+<td class="parameter_description"><p>Initially should hold the maximum size of the list. Will contain the actual size.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>A PKCS 11 url identifying a set of objects</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Or sequence of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-list-import-url3.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-list-import-url4"></a><h3>gnutls_pkcs11_obj_list_import_url4 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_list_import_url4 (<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>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *n_list</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will enumerate all the objects specified by the PKCS<span class="type">11</span> URL
+provided. It will initialize and set values to the object pointer list (<em class="parameter"><code>p_list</code></em>
+)
+provided. To obtain a list of all available objects use a <em class="parameter"><code>url</code></em>
+ of 'pkcs11:'.</p>
+<p>All returned objects must be deinitialized using <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" title="gnutls_pkcs11_obj_deinit ()"><code class="function">gnutls_pkcs11_obj_deinit()</code></a>,
+and <em class="parameter"><code>p_list</code></em>
+ must be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>The supported in this function <em class="parameter"><code>flags</code></em>
+ are <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_LOGIN</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN-SO:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PRESENT-IN-TRUSTED-MODULE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-CRT:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_CRT</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PUBKEY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_PUBKEY</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PRIVKEY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-WITH-PRIVKEY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY</code></a>, <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-CA:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_CA</code></a>,
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</code></a>, and since 3.5.1 the <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-OVERWRITE-TRUSTMOD-EXT:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT</code></a>.</p>
+<p>On versions of GnuTLS prior to 3.4.0 the equivalent function was
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url2" title="gnutls_pkcs11_obj_list_import_url2()"><code class="function">gnutls_pkcs11_obj_list_import_url2()</code></a>. That is also available on this version
+as a macro which maps to this function.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-list-import-url4.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>p_list</p></td>
+<td class="parameter_description"><p>An uninitialized object list (may be NULL)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>n_list</p></td>
+<td class="parameter_description"><p>It will contain the size of the list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>A PKCS 11 url identifying a set of objects</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Or sequence of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-list-import-url4.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-import-pkcs11"></a><h3>gnutls_x509_crt_import_pkcs11 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>,
+ <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>
+<p>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>
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-import-pkcs11.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>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></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pkcs11_crt</p></td>
+<td class="parameter_description"><p>A PKCS 11 object that contains a certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-import-pkcs11.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-type-get-name"></a><h3>gnutls_pkcs11_type_get_name ()</h3>
+<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> type</code></em>);</pre>
+<p>This function will return a human readable description of the
+PKCS11 object type <em class="parameter"><code>obj</code></em>
+. It will return "Unknown" for unknown
+types.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-type-get-name.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>Holds the PKCS 11 object type, a <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>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-type-get-name.returns"></a><h4>Returns</h4>
+<p> human readable string labeling the PKCS11 object type
+<em class="parameter"><code>type</code></em>
+.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-get-exts"></a><h3>gnutls_pkcs11_obj_get_exts ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_get_exts (<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>,
+ <em class="parameter"><code><span class="type">struct gnutls_x509_ext_st</span> **exts</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *exts_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return information about attached extensions
+that associate to the provided object (which should be a certificate).
+The extensions are the attached p11-kit trust module extensions.</p>
+<p>Each element of <em class="parameter"><code>exts</code></em>
+ must be deinitialized using <a class="link" href="gnutls-x509.html#gnutls-x509-ext-deinit" title="gnutls_x509_ext_deinit ()"><code class="function">gnutls_x509_ext_deinit()</code></a>
+while <em class="parameter"><code>exts</code></em>
+ should be deallocated using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-exts.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>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> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>exts</p></td>
+<td class="parameter_description"><p>a pointer to a <a class="link" href="gnutls-x509.html#gnutls-x509-ext-st" title="gnutls_x509_ext_st"><code class="literal">gnutls_x509_ext_st</code></a> pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>exts_size</p></td>
+<td class="parameter_description"><p>will be updated with the number of <em class="parameter"><code>exts</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Or sequence of <code class="literal">GNUTLS_PKCS11_OBJ_</code>* flags </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-exts.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+<p class="since">Since: 3.3.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-get-flags"></a><h3>gnutls_pkcs11_obj_get_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_obj_get_flags (<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>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *oflags</code></em>);</pre>
+<p>This function will return the flags of the object.
+The <em class="parameter"><code>oflags</code></em>
+ will be flags from <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-flags" title="enum gnutls_pkcs11_obj_flags"><code class="literal">gnutls_pkcs11_obj_flags</code></a>. That is,
+the <code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_</code>* flags.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-flags.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>The pkcs11 object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oflags</p></td>
+<td class="parameter_description"><p>Will hold the output flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-get-flags.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.3.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-flags-get-str"></a><h3>gnutls_pkcs11_obj_flags_get_str ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gnutls_pkcs11_obj_flags_get_str (<em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function given an or-sequence of <code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK</code>,
+will return an allocated string with its description. The string
+needs to be deallocated using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-flags-get-str.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>holds the flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-flags-get-str.returns"></a><h4>Returns</h4>
+<p> If flags is zero <code class="literal">NULL</code> is returned, otherwise an allocated string.</p>
+</div>
+<p class="since">Since: 3.3.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-list-import-pkcs11"></a><h3>gnutls_x509_crt_list_import_pkcs11 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> cert_max</code></em>,
+ <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>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import a PKCS 11 certificate list to a list of
+<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> type. These must not be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-import-pkcs11.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>certs</p></td>
+<td class="parameter_description"><p>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></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_max</p></td>
+<td class="parameter_description"><p>The maximum size of the list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>objs</p></td>
+<td class="parameter_description"><p>A list of PKCS 11 objects</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>0 for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-import-pkcs11.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-init"></a><h3>gnutls_pkcs11_privkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>
+<p>This function will initialize an private key structure. This
+structure can be used for accessing an underlying PKCS<span class="type">11</span> object.</p>
+<p>In versions of GnuTLS later than 3.5.11 the object is protected
+using locks and a single <a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><code class="literal">gnutls_pkcs11_privkey_t</code></a> can be re-used
+by many threads. However, for performance it is recommended to utilize
+one object per key per thread.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-init.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>A pointer to the type to be initialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-init.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-cpy"></a><h3>gnutls_pkcs11_privkey_cpy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_privkey_cpy (<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> dst</code></em>,
+ <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> src</code></em>);</pre>
+<p>This function will copy a private key from source to destination
+key. Destination has to be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-cpy.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>dst</p></td>
+<td class="parameter_description"><p>The destination key, which should be initialized.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p>The source key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-cpy.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-set-pin-function"></a><h3>gnutls_pkcs11_privkey_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pkcs11_privkey_set_pin_function
+ (<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>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()"><span class="type">gnutls_pin_callback_t</span></a> fn</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+<p>This function will set a callback function to be used when
+required to access the object. This function overrides the global
+set using <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>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-set-pin-function.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>The private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fn</p></td>
+<td class="parameter_description"><p>the callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>userdata</p></td>
+<td class="parameter_description"><p>data associated with the callback</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-deinit"></a><h3>gnutls_pkcs11_privkey_deinit ()</h3>
+<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>
+<p>This function will deinitialize a private key structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-deinit.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-get-pk-algorithm"></a><h3>gnutls_pkcs11_privkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_privkey_get_pk_algorithm
+ (<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>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>This function will return the public key algorithm of a private
+key.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-get-pk-algorithm.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>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> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>if bits is non null it will hold the size of the parameters' in bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-get-pk-algorithm.returns"></a><h4>Returns</h4>
+<p> 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
+success, or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-get-info"></a><h3>gnutls_pkcs11_privkey_get_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>,
+ <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>,
+ <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *output_size</code></em>);</pre>
+<p>This function will return information about the PKCS 11 private key such
+as the label, id as well as token information where the key is stored. When
+output is text it returns null terminated string although <span class="type">output_size</span> contains
+the size of the actual data only.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-get-info.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pkey</p></td>
+<td class="parameter_description"><p>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> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>itype</p></td>
+<td class="parameter_description"><p>Denotes the type of information requested</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>where output will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output_size</p></td>
+<td class="parameter_description"><p>contains the maximum size of the output and will be overwritten with actual</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-get-info.returns"></a><h4>Returns</h4>
+<p> <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.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-import-url"></a><h3>gnutls_pkcs11_privkey_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>,
+ <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will "import" a PKCS 11 URL identifying a private
+key to the <a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> type. In reality since
+in most cases keys cannot be exported, the private key structure
+is being associated with the available operations on the token.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-import-url.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pkey</p></td>
+<td class="parameter_description"><p>The private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>a PKCS 11 url identifying the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Or sequence of GNUTLS_PKCS11_OBJ_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-import-url.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-export-url"></a><h3>gnutls_pkcs11_privkey_export_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+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>,
+ <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>,
+ <em class="parameter"><code><span class="type">char</span> **url</code></em>);</pre>
+<p>This function will export a URL identifying the given key.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-export-url.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>Holds the PKCS 11 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>detailed</p></td>
+<td class="parameter_description"><p>non zero if a detailed URL is required</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>will contain an allocated url</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-export-url.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-status"></a><h3>gnutls_pkcs11_privkey_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_pkcs11_privkey_status (<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>
+<p>Checks the status of the private key token.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-status.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>Holds the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-status.returns"></a><h4>Returns</h4>
+<p> this function will return non-zero if the token
+holding the private key is still available (inserted), and zero otherwise.</p>
+</div>
+<p class="since">Since: 3.1.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-generate3"></a><h3>gnutls_pkcs11_privkey_generate3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_privkey_generate3 (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code><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> pk</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *cid</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> fmt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *pubkey</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will generate a private key in the specified
+by the <em class="parameter"><code>url</code></em>
+ token. The private key will be generate within
+the token and will not be exportable. This function will
+store the DER-encoded public key in the SubjectPublicKeyInfo format
+in <em class="parameter"><code>pubkey</code></em>
+. The <em class="parameter"><code>pubkey</code></em>
+ should be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>Note that when generating an elliptic curve key, the curve
+can be substituted in the place of the bits parameter using the
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CURVE-TO-BITS:CAPS" title="GNUTLS_CURVE_TO_BITS()"><code class="function">GNUTLS_CURVE_TO_BITS()</code></a> macro.</p>
+<p>Since 3.6.3 the objects are marked as sensitive by default unless
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-NOT-SENSITIVE:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE</code></a> is specified.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-generate3.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>a token URL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pk</p></td>
+<td class="parameter_description"><p>the public key algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>the security bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>a label</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cid</p></td>
+<td class="parameter_description"><p>The CKA_ID to use for the new object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>the format of output params. PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pubkey</p></td>
+<td class="parameter_description"><p>will hold the public key (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>One of GNUTLS_KEY_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or an OR'ed sequence of <code class="literal">GNUTLS_PKCS11_OBJ_FLAGs</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-generate3.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-export-pubkey"></a><h3>gnutls_pkcs11_privkey_export_pubkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_privkey_export_pubkey (<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>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> fmt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *pubkey</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will extract the public key (modulus and public
+exponent) from the private key specified by the <em class="parameter"><code>url</code></em>
+ private key.
+This public key will be stored in <em class="parameter"><code>pubkey</code></em>
+ in the format specified
+by <em class="parameter"><code>fmt</code></em>
+. <em class="parameter"><code>pubkey</code></em>
+ should be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-export-pubkey.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pkey</p></td>
+<td class="parameter_description"><p>The private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>the format of output params. PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>will hold the public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-privkey-export-pubkey.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.3.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-get-random"></a><h3>gnutls_pkcs11_token_get_random ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_token_get_random (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> len</code></em>);</pre>
+<p>This function will get random data from the given token.
+It will store rnddata and fill the memory pointed to by rnddata with
+len random bytes from the token.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-random.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>len</p></td>
+<td class="parameter_description"><p>The number of bytes of randomness to request</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rnddata</p></td>
+<td class="parameter_description"><p>A pointer to the memory area to be filled with random data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-get-random.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-copy-attached-extension"></a><h3>gnutls_pkcs11_copy_attached_extension ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs11_copy_attached_extension (<em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <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>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will copy an the attached extension in <em class="parameter"><code>data</code></em>
+ for
+the certificate provided in <em class="parameter"><code>crt</code></em>
+ in the PKCS <span class="type">11</span> token specified
+by the URL (typically a trust module). The extension must be in
+RFC5280 Extension format.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-attached-extension.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>A PKCS <span class="type">11</span> URL specifying a token</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>An X.509 certificate object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the attached extension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>A name to be used for the attached extension (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of GNUTLS_PKCS11_OBJ_FLAG_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs11-copy-attached-extension.returns"></a><h4>Returns</h4>
+<p> On success, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0) is returned, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.3.8</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs11.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-MAX-PIN-LEN:CAPS"></a><h3>GNUTLS_PKCS11_MAX_PIN_LEN</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_MAX_PIN_LEN 256
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-t"></a><h3>gnutls_pkcs11_obj_t</h3>
+<pre class="programlisting">typedef struct gnutls_pkcs11_obj_st *gnutls_pkcs11_obj_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-FLAG-MANUAL:CAPS"></a><h3>GNUTLS_PKCS11_FLAG_MANUAL</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_FLAG_MANUAL 0 /* Manual loading of libraries */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-FLAG-AUTO:CAPS"></a><h3>GNUTLS_PKCS11_FLAG_AUTO</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_FLAG_AUTO 1 /* Automatically load libraries by reading /etc/gnutls/pkcs11.conf */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-FLAG-AUTO-TRUSTED:CAPS"></a><h3>GNUTLS_PKCS11_FLAG_AUTO_TRUSTED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_FLAG_AUTO_TRUSTED (1&lt;&lt;1) /* Automatically load trusted libraries by reading /etc/gnutls/pkcs11.conf */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-flags"></a><h3>enum gnutls_pkcs11_obj_flags</h3>
+<p>Enumeration of different PKCS <span class="type">11</span> object flags. Some flags are used
+to mark objects when storing, while others are also used while seeking
+or retrieving objects.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-flags.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_LOGIN</p></td>
+<td class="enum_member_description">
+<p>Force login in the token for the operation (seek+store). </p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</p></td>
+<td class="enum_member_description">
+<p>object marked as trusted (seek+store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE</p></td>
+<td class="enum_member_description">
+<p>object is explicitly marked as sensitive -unexportable (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-LOGIN-SO:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO</p></td>
+<td class="enum_member_description">
+<p>force login as a security officer in the token for the operation (seek+store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-PRIVATE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE</p></td>
+<td class="enum_member_description">
+<p>marked as private -requires PIN to access (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-NOT-PRIVATE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE</p></td>
+<td class="enum_member_description">
+<p>marked as not private (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-ANY:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY</p></td>
+<td class="enum_member_description">
+<p>When retrieving an object, do not set any requirements (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-TRUSTED:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED</p></td>
+<td class="enum_member_description">
+<p>When retrieving an object, only retrieve the marked as trusted (alias to <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED</code></a>).
+In <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-crt-is-known" title="gnutls_pkcs11_crt_is_known ()"><code class="function">gnutls_pkcs11_crt_is_known()</code></a> it implies <code class="literal">GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_COMPARE</code> if <a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-COMPARE-KEY:CAPS"><code class="literal">GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY</code></a> is not given.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-DISTRUSTED:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED</p></td>
+<td class="enum_member_description">
+<p>When writing an object, mark it as distrusted (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-DISTRUSTED:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED</p></td>
+<td class="enum_member_description">
+<p>When retrieving an object, only retrieve the marked as distrusted (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-COMPARE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_COMPARE</p></td>
+<td class="enum_member_description">
+<p>When checking an object's presence, fully compare it before returning any result (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-PRESENT-IN-TRUSTED-MODULE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE</p></td>
+<td class="enum_member_description">
+<p>The object must be present in a marked as trusted module (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-CA:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_CA</p></td>
+<td class="enum_member_description">
+<p>Mark the object as a CA (seek+store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-KEY-WRAP:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_KEY_WRAP</p></td>
+<td class="enum_member_description">
+<p>Mark the generated key pair as wrapping and unwrapping keys (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-COMPARE-KEY:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY</p></td>
+<td class="enum_member_description">
+<p>When checking an object's presence, compare the key before returning any result (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-OVERWRITE-TRUSTMOD-EXT:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT</p></td>
+<td class="enum_member_description">
+<p>When an issuer is requested, override its extensions with the ones present in the trust module (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-ALWAYS-AUTH:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH</p></td>
+<td class="enum_member_description">
+<p>Mark the key pair as requiring authentication (pin entry) before every operation (seek+store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-EXTRACTABLE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_EXTRACTABLE</p></td>
+<td class="enum_member_description">
+<p>Mark the key pair as being extractable (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-NEVER-EXTRACTABLE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_NEVER_EXTRACTABLE</p></td>
+<td class="enum_member_description">
+<p>If set, the object was never marked as extractable (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-CRT:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_CRT</p></td>
+<td class="enum_member_description">
+<p>When searching, restrict to certificates only (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-WITH-PRIVKEY:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-PUBKEY:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_PUBKEY</p></td>
+<td class="enum_member_description">
+<p>When searching, restrict to public key objects only (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-NO-STORE-PUBKEY:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_NO_STORE_PUBKEY</p></td>
+<td class="enum_member_description">
+<p>When generating a keypair don't store the public key (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-PRIVKEY:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY</p></td>
+<td class="enum_member_description">
+<p>When searching, restrict to private key objects only (seek).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-FLAG-MARK-NOT-SENSITIVE:CAPS"></a>GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE</p></td>
+<td class="enum_member_description">
+<p>object marked as not sensitive -exportable (store).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-attr-t"></a><h3>gnutls_pkcs11_obj_attr_t</h3>
+<pre class="programlisting">#define gnutls_pkcs11_obj_attr_t gnutls_pkcs11_obj_flags
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-url-type-t"></a><h3>enum gnutls_pkcs11_url_type_t</h3>
+<p>Enumeration of different URL extraction flags.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-url-type-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-URL-GENERIC:CAPS"></a>GNUTLS_PKCS11_URL_GENERIC</p></td>
+<td class="enum_member_description">
+<p>A generic-purpose URL.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-URL-LIB:CAPS"></a>GNUTLS_PKCS11_URL_LIB</p></td>
+<td class="enum_member_description">
+<p>A URL that specifies the library used as well.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-URL-LIB-VERSION:CAPS"></a>GNUTLS_PKCS11_URL_LIB_VERSION</p></td>
+<td class="enum_member_description">
+<p>A URL that specifies the library and its version.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-info-t"></a><h3>enum gnutls_pkcs11_obj_info_t</h3>
+<p>Enumeration of several object information types.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-info-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-ID-HEX:CAPS"></a>GNUTLS_PKCS11_OBJ_ID_HEX</p></td>
+<td class="enum_member_description">
+<p>The object ID in hex. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-LABEL:CAPS"></a>GNUTLS_PKCS11_OBJ_LABEL</p></td>
+<td class="enum_member_description">
+<p>The object label. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-LABEL:CAPS"></a>GNUTLS_PKCS11_OBJ_TOKEN_LABEL</p></td>
+<td class="enum_member_description">
+<p>The token's label. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-SERIAL:CAPS"></a>GNUTLS_PKCS11_OBJ_TOKEN_SERIAL</p></td>
+<td class="enum_member_description">
+<p>The token's serial number. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-MANUFACTURER:CAPS"></a>GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER</p></td>
+<td class="enum_member_description">
+<p>The token's manufacturer. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-TOKEN-MODEL:CAPS"></a>GNUTLS_PKCS11_OBJ_TOKEN_MODEL</p></td>
+<td class="enum_member_description">
+<p>The token's model. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-ID:CAPS"></a>GNUTLS_PKCS11_OBJ_ID</p></td>
+<td class="enum_member_description">
+<p>The object ID. Raw bytes.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-VERSION:CAPS"></a>GNUTLS_PKCS11_OBJ_LIBRARY_VERSION</p></td>
+<td class="enum_member_description">
+<p>The library's version. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-DESCRIPTION:CAPS"></a>GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION</p></td>
+<td class="enum_member_description">
+<p>The library's description. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-LIBRARY-MANUFACTURER:CAPS"></a>GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER</p></td>
+<td class="enum_member_description">
+<p>The library's manufacturer name. Null-terminated text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL GNUTLS_PKCS11_OBJ_FLAG_CRT
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-MATCH:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_MATCH</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_MATCH 0 /* always match the given URL */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_ALL</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_ALL 0 /* match everything! */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED-CA:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA (GNUTLS_PKCS11_OBJ_FLAG_CRT|GNUTLS_PKCS11_OBJ_FLAG_MARK_CA|GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_PUBKEY</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_PUBKEY GNUTLS_PKCS11_OBJ_FLAG_PUBKEY
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS"></a><h3>GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-token-info-t"></a><h3>enum gnutls_pkcs11_token_info_t</h3>
+<p>Enumeration of types for retrieving token information.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-token-info-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-TOKEN-LABEL:CAPS"></a>GNUTLS_PKCS11_TOKEN_LABEL</p></td>
+<td class="enum_member_description">
+<p>The token's label (string)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-TOKEN-SERIAL:CAPS"></a>GNUTLS_PKCS11_TOKEN_SERIAL</p></td>
+<td class="enum_member_description">
+<p>The token's serial number (string)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-TOKEN-MANUFACTURER:CAPS"></a>GNUTLS_PKCS11_TOKEN_MANUFACTURER</p></td>
+<td class="enum_member_description">
+<p>The token's manufacturer (string)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-TOKEN-MODEL:CAPS"></a>GNUTLS_PKCS11_TOKEN_MODEL</p></td>
+<td class="enum_member_description">
+<p>The token's model (string)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-TOKEN-MODNAME:CAPS"></a>GNUTLS_PKCS11_TOKEN_MODNAME</p></td>
+<td class="enum_member_description">
+<p>The token's module name (string - since 3.4.3). This value is
+unavailable for providers which were manually loaded.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-type-t"></a><h3>enum gnutls_pkcs11_obj_type_t</h3>
+<p>Enumeration of object types.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs11-obj-type-t.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-UNKNOWN:CAPS"></a>GNUTLS_PKCS11_OBJ_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown PKCS11 object.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-X509-CRT:CAPS"></a>GNUTLS_PKCS11_OBJ_X509_CRT</p></td>
+<td class="enum_member_description">
+<p>X.509 certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-PUBKEY:CAPS"></a>GNUTLS_PKCS11_OBJ_PUBKEY</p></td>
+<td class="enum_member_description">
+<p>Public key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-PRIVKEY:CAPS"></a>GNUTLS_PKCS11_OBJ_PRIVKEY</p></td>
+<td class="enum_member_description">
+<p>Private key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-SECRET-KEY:CAPS"></a>GNUTLS_PKCS11_OBJ_SECRET_KEY</p></td>
+<td class="enum_member_description">
+<p>Secret key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-DATA:CAPS"></a>GNUTLS_PKCS11_OBJ_DATA</p></td>
+<td class="enum_member_description">
+<p>Data object.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS11-OBJ-X509-CRT-EXTENSION:CAPS"></a>GNUTLS_PKCS11_OBJ_X509_CRT_EXTENSION</p></td>
+<td class="enum_member_description">
+<p>X.509 certificate extension (supported by p11-kit trust module only).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-HW:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_HW</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_HW 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-TRUSTED:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_TRUSTED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_TRUSTED (1&lt;&lt;1) /* p11-kit trusted */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-RNG:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_RNG</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_RNG (1&lt;&lt;2) /* CKF_RNG */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-LOGIN-REQUIRED:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_LOGIN_REQUIRED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_LOGIN_REQUIRED (1&lt;&lt;3) /* CKF_LOGIN_REQUIRED */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-PROTECTED-AUTHENTICATION-PATH:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH (1&lt;&lt;4) /* CKF_PROTECTED_AUTHENTICATION_PATH */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-INITIALIZED:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_INITIALIZED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_INITIALIZED (1&lt;&lt;5) /* CKF_TOKEN_INITIALIZED */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-USER-PIN-COUNT-LOW:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_USER_PIN_COUNT_LOW</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_USER_PIN_COUNT_LOW (1&lt;&lt;6) /* CKF_USER_PIN_COUNT_LOW */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-USER-PIN-FINAL-TRY:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_USER_PIN_FINAL_TRY</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_USER_PIN_FINAL_TRY (1&lt;&lt;7) /* CKF_USER_PIN_FINAL_TRY */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-USER-PIN-LOCKED:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_USER_PIN_LOCKED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_USER_PIN_LOCKED (1&lt;&lt;8) /* CKF_USER_PIN_LOCKED */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-SO-PIN-COUNT-LOW:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_SO_PIN_COUNT_LOW</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_SO_PIN_COUNT_LOW (1&lt;&lt;9) /* CKF_SO_PIN_COUNT_LOW */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-SO-PIN-FINAL-TRY:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_SO_PIN_FINAL_TRY</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_SO_PIN_FINAL_TRY (1&lt;&lt;10) /* CKF_SO_PIN_FINAL_TRY */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-SO-PIN-LOCKED:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_SO_PIN_LOCKED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_SO_PIN_LOCKED (1&lt;&lt;11) /* CKF_SO_PIN_LOCKED */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-USER-PIN-INITIALIZED:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_USER_PIN_INITIALIZED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_USER_PIN_INITIALIZED (1&lt;&lt;12) /* CKF_USER_PIN_INITIALIZED */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-TOKEN-ERROR-STATE:CAPS"></a><h3>GNUTLS_PKCS11_TOKEN_ERROR_STATE</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_TOKEN_ERROR_STATE (1&lt;&lt;13) /* CKF_ERROR_STATE */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-import-pkcs11-url"></a><h3>gnutls_x509_crt_import_pkcs11_url</h3>
+<pre class="programlisting">#define gnutls_x509_crt_import_pkcs11_url gnutls_x509_crt_import_url
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-obj-st"></a><h3>struct gnutls_pkcs11_obj_st</h3>
+<pre class="programlisting">struct gnutls_pkcs11_obj_st {
+ gnutls_datum_t raw;
+ gnutls_pkcs11_obj_type_t type;
+ ck_object_class_t class;
+
+ unsigned int flags;
+ struct p11_kit_uri *info;
+
+ /* only when pubkey */
+ gnutls_datum_t pubkey[MAX_PUBLIC_PARAMS_SIZE];
+ unsigned pubkey_size;
+ gnutls_pk_algorithm_t pk_algorithm;
+ unsigned int key_usage;
+
+ struct pin_info_st pin;
+};
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file