summaryrefslogtreecommitdiffstats
path: root/doc/reference/html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/reference/html')
-rw-r--r--doc/reference/html/api-index-full.html14694
-rw-r--r--doc/reference/html/gnutls-abstract.html7027
-rw-r--r--doc/reference/html/gnutls-crypto.html3263
-rw-r--r--doc/reference/html/gnutls-dtls.html606
-rw-r--r--doc/reference/html/gnutls-gnutls.html27114
-rw-r--r--doc/reference/html/gnutls-ocsp.html78
-rw-r--r--doc/reference/html/gnutls-openpgp.html1506
-rw-r--r--doc/reference/html/gnutls-pkcs11.html4178
-rw-r--r--doc/reference/html/gnutls-pkcs12.html1589
-rw-r--r--doc/reference/html/gnutls-tpm.html429
-rw-r--r--doc/reference/html/gnutls-x509.html19834
-rw-r--r--doc/reference/html/gnutls.devhelp22330
-rw-r--r--doc/reference/html/home.pngbin0 -> 256 bytes
-rw-r--r--doc/reference/html/index.html66
-rw-r--r--doc/reference/html/intro.html70
-rw-r--r--doc/reference/html/left-insensitive.pngbin0 -> 395 bytes
-rw-r--r--doc/reference/html/left.pngbin0 -> 262 bytes
-rw-r--r--doc/reference/html/right-insensitive.pngbin0 -> 373 bytes
-rw-r--r--doc/reference/html/right.pngbin0 -> 261 bytes
-rw-r--r--doc/reference/html/style.css530
-rw-r--r--doc/reference/html/up-insensitive.pngbin0 -> 374 bytes
-rw-r--r--doc/reference/html/up.pngbin0 -> 260 bytes
22 files changed, 83314 insertions, 0 deletions
diff --git a/doc/reference/html/api-index-full.html b/doc/reference/html/api-index-full.html
new file mode 100644
index 0000000..2b789b7
--- /dev/null
+++ b/doc/reference/html/api-index-full.html
@@ -0,0 +1,14694 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Index: 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="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="gnutls-tpm.html" title="tpm">
+<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"><span id="nav_index"><a class="shortcut" href="#idx_">_</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxA">A</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxB">B</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxC">C</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxD">D</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxE">E</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxF">F</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxG">G</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxH">H</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxI">I</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxK">K</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxL">L</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxM">M</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxN">N</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxO">O</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxP">P</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxR">R</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxS">S</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxT">T</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxU">U</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxV">V</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxW">W</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxX">X</a>
+  <span class="dim">|</span> 
+ <a class="shortcut" href="#idxZ">Z</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><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="gnutls-tpm.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
+</tr></table>
+<div class="index">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="api-index-full"></a>API Index</h1></div></div></div>
+<a name="idx"></a><a name="idx_"></a><h3 class="title">_</h3>
+<dt>
+_, macro in sys_types.in
+</dt>
+<dd></dd>
+<a name="idxA"></a><h3 class="title">A</h3>
+<dt>
+aarch64_sha1, variable in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+aarch64_sha1_update, function in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+aarch64_sha224, variable in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+aarch64_sha256, variable in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+aarch64_sha256_update, function in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+aarch64_sha384, variable in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+aarch64_sha512, variable in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+aarch64_sha512_update, function in sha-aarch64
+</dt>
+<dd></dd>
+<dt>
+acpkm_crypt, macro in acpkm
+</dt>
+<dd></dd>
+<dt>
+ACPKM_CTX, macro in acpkm
+</dt>
+<dd></dd>
+<dt>
+acpkm_ctx, struct in acpkm
+</dt>
+<dd></dd>
+<dt>
+ACPKM_KEY_SIZE, macro in acpkm
+</dt>
+<dd></dd>
+<dt>
+aead_cipher_decrypt_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+aead_cipher_encrypt_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+AEAD_EXPLICIT_DATA_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+AEAD_IMPLICIT_DATA_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+aesni_cbc_encrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_ctr32_encrypt_blocks, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_ecb_encrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_gcm_decrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_gcm_encrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_set_decrypt_key, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_set_encrypt_key, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_xts_decrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aesni_xts_encrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+AES_GCM_ENCRYPT_MAX_BYTES, macro in aes-x86
+</dt>
+<dd></dd>
+<dt>
+AES_KEY, struct in aes-x86
+</dt>
+<dd></dd>
+<dt>
+AES_KEY_ALIGN_SIZE, macro in aes-x86
+</dt>
+<dd></dd>
+<dt>
+AES_MAXNR, macro in aes-x86
+</dt>
+<dd></dd>
+<dt>
+aes_v8_cbc_encrypt, function in aes-aarch64
+</dt>
+<dd></dd>
+<dt>
+aes_v8_decrypt, function in aes-aarch64
+</dt>
+<dd></dd>
+<dt>
+aes_v8_encrypt, function in aes-aarch64
+</dt>
+<dd></dd>
+<dt>
+aes_v8_set_decrypt_key, function in aes-aarch64
+</dt>
+<dd></dd>
+<dt>
+aes_v8_set_encrypt_key, function in aes-aarch64
+</dt>
+<dd></dd>
+<dt>
+AGAIN, macro in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+AGAIN2, macro in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+ALIGN16, macro in aes-x86
+</dt>
+<dd></dd>
+<dt>
+alpn_ext_st, struct in alpn
+</dt>
+<dd></dd>
+<dt>
+anon_client_credentials_st, struct in anon
+</dt>
+<dd></dd>
+<dt>
+anon_server_credentials_st, struct in anon
+</dt>
+<dd></dd>
+<dt>
+api_aead_cipher_hd_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+APPLICATION_CLIENT_TRAFFIC_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+APPLICATION_SERVER_TRAFFIC_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+APPLICATION_TRAFFIC_UPDATE, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+are_alternative_cert_types_allowed, function in cert_types
+</dt>
+<dd></dd>
+<dt>
+ARMV7_NEON, macro in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+ARMV7_TICK, macro in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+ARMV8_AES, macro in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+ARMV8_PMULL, macro in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+ARMV8_SHA1, macro in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+ARMV8_SHA256, macro in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+ARMV8_SHA512, macro in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+ASN1_API, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_array2tree, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ARRAY_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ARRAY_TYPE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_bit_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_check_version, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_CLASS_APPLICATION, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_CLASS_CONTEXT_SPECIFIC, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_CLASS_PRIVATE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_CLASS_STRUCTURED, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_CLASS_UNIVERSAL, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_copy_node, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_create_element, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_DATA_NODE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_data_node_st, struct in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_DECODE_FLAG_ALLOW_INCORRECT_TIME, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_DECODE_FLAG_ALLOW_PADDING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_DECODE_FLAG_STRICT_DER, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_decode_simple_ber, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_decode_simple_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_delete_element, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_DELETE_FLAG_ZEROIZE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_delete_structure, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_delete_structure2, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_der_coding, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_der_decoding, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_der_decoding2, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_der_decoding_element, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_der_decoding_startEnd, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_DER_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_DER_OVERFLOW, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_dup_node, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ELEMENT_NOT_EMPTY, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ELEMENT_NOT_FOUND, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_encode_simple_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ERROR_TYPE_ANY, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_ANY, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_BIT_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_BMP_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_BOOLEAN, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_CHOICE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_CONSTANT, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_DEFAULT, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_DEFINITIONS, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_ENUMERATED, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_GENERALIZED_TIME, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_GENERALSTRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_IA5_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_IDENTIFIER, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_IMPORTS, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_INTEGER, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_INVALID, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_NULL, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_NUMERIC_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_OBJECT_ID, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_OCTET_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_PRINTABLE_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_SEQUENCE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_SEQUENCE_OF, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_SET, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_SET_OF, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_SIZE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_TAG, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_TELETEX_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_TIME, macro in int
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_UNIVERSAL_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_UTC_TIME, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_UTF8_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_ETYPE_VISIBLE_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_expand_any_defined_by, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_expand_octet_string, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_FILE_NOT_FOUND, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_find_node, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_find_structure_from_oid, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+_ASN1_GCC_ATTR_DEPRECATED, typedef in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_GENERIC_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_get_bit_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_get_length_ber, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_get_length_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_get_object_id_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_get_octet_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_get_tag_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_IDENTIFIER_NOT_FOUND, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_length_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_MAX_ERROR_DESCRIPTION_SIZE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_MAX_LENGTH_SIZE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_MAX_NAME_SIZE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_MAX_TAG_SIZE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_MAX_TL_SIZE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_MEM_ALLOC_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_MEM_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_NAME_TOO_LONG, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_node, typedef in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_node_const, typedef in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_node_st, struct in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_NULL, macro in common
+</dt>
+<dd></dd>
+<dt>
+ASN1_NULL_SIZE, macro in common
+</dt>
+<dd></dd>
+<dt>
+asn1_number_of_elements, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_object_id_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_octet_der, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_parser2array, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_parser2tree, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_perror, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_PRINT_ALL, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_PRINT_NAME, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_PRINT_NAME_TYPE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_PRINT_NAME_TYPE_VALUE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_print_structure, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_read_node_value, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_read_tag, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_read_value, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_read_value_type, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_RECURSION, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_SMALL_VALUE_SIZE, macro in int
+</dt>
+<dd></dd>
+<dt>
+asn1_static_node_t, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_strerror, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_SUCCESS, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_SYNTAX_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_BIT_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_BMP_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_BOOLEAN, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_ENUMERATED, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_GENERALIZEDTime, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_GENERALSTRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_IA5_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_IMPLICIT, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_INTEGER, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_NULL, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_NUMERIC_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_OBJECT_ID, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_OCTET_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_PRINTABLE_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_SEQUENCE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_SET, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_TELETEX_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_UNIVERSAL_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_UTCTime, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_UTF8_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TAG_VISIBLE_STRING, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TIME_ENCODING_ERROR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TYPE, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_TYPE_EMPTY, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_VALUE_NOT_FOUND, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_VALUE_NOT_VALID, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_VERSION, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_VERSION_MAJOR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_VERSION_MINOR, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_VERSION_NUMBER, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ASN1_VERSION_PATCH, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+asn1_write_value, function in libtasn1
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_ALLOC_SIZE, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_ALWAYS_INLINE, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_ARTIFICIAL, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_COLD, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_CONST, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_ERROR, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_EXTERNALLY_VISIBLE, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_FORMAT, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_LEAF, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_MALLOC, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_MAY_ALIAS, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_NOINLINE, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_NONNULL, function in datum
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_NONSTRING, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_NOTHROW, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_PACKED, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_PURE, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_RETURNS_NONNULL, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_SENTINEL, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+ATTRIBUTE_WARNING, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+auth_cipher_hd_st, struct in cipher_int
+</dt>
+<dd></dd>
+<dt>
+auth_cred_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<a name="idxB"></a><h3 class="title">B</h3>
+<dt>
+B64FSIZE, macro in x509_b64
+</dt>
+<dd></dd>
+<dt>
+B64SIZE, macro in x509_b64
+</dt>
+<dd></dd>
+<dt>
+BAG_CERTIFICATE, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+BAG_CRL, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+bag_element, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+BAG_PKCS8_ENCRYPTED_KEY, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+BAG_PKCS8_KEY, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+BAG_SECRET, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+BARE_PEM_OCSP_RESPONSE, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+bigint_t, typedef in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+binder_data_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+bitmap_lookup, function in bitmap
+</dt>
+<dd></dd>
+<dt>
+block16_mulx_be, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+block16_mulx_ghash, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+block16_mulx_le, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+BLOCK16_POLY, macro in block-internal
+</dt>
+<dd></dd>
+<dt>
+block16_xor, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+block16_xor3, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+block16_xor_bytes, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+block8_mulx_be, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+BLOCK8_POLY, macro in block-internal
+</dt>
+<dd></dd>
+<dt>
+block8_xor, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+block8_xor3, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+block8_xor_bytes, function in block-internal
+</dt>
+<dd></dd>
+<dt>
+_Bool, typedef in stdbool.in
+</dt>
+<dd></dd>
+<dt>
+bool, macro in stdbool.in
+</dt>
+<dd></dd>
+<dt>
+BUFFER_APPEND, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_APPEND_NUM, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_APPEND_PFX1, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_APPEND_PFX2, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_APPEND_PFX3, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_APPEND_PFX4, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_APPEND_TS, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_POP, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_POP_CAST_NUM, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_POP_DATUM, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_POP_NUM, macro in str
+</dt>
+<dd></dd>
+<dt>
+BUFFER_POP_TS, macro in str
+</dt>
+<dd></dd>
+<dt>
+bye, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+BYE_STATE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+bye_state_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<a name="idxC"></a><h3 class="title">C</h3>
+<dt>
+CASE_HANDLED_ETYPES, macro in int
+</dt>
+<dd></dd>
+<dt>
+category_header_0, macro in categ_of
+</dt>
+<dd></dd>
+<dt>
+category_header_1, macro in categ_of
+</dt>
+<dd></dd>
+<dt>
+category_header_2, macro in categ_of
+</dt>
+<dd></dd>
+<dt>
+category_header_3, macro in categ_of
+</dt>
+<dd></dd>
+<dt>
+category_header_4, macro in categ_of
+</dt>
+<dd></dd>
+<dt>
+cbc_mac_verify, function in cipher
+</dt>
+<dd></dd>
+<dt>
+certificate_credentials_st, struct in cert
+</dt>
+<dd></dd>
+<dt>
+certs_st, struct in cert
+</dt>
+<dd></dd>
+<dt>
+cert_type2IANA, function in cert_types
+</dt>
+<dd></dd>
+<dt>
+CHAR_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+CHECK_AES_KEYSIZE, macro in x86-common
+</dt>
+<dd></dd>
+<dt>
+CHECK_AUTH_TYPE, macro in state
+</dt>
+<dd></dd>
+<dt>
+check_pending, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+ciphersuite_list_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+ciphersuite_to_entry, function in algorithms
+</dt>
+<dd></dd>
+<dt>
+cipher_auth_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_decrypt_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_deinit_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_encrypt_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_entry_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+cipher_getiv_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_hd_st, struct in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_name_to_entry, function in algorithms
+</dt>
+<dd></dd>
+<dt>
+cipher_setiv_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_setkey_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_tag_func, user_function in cipher_int
+</dt>
+<dd></dd>
+<dt>
+cipher_to_entry, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+ck_bool_t, typedef in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+clear_credentials, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+client_session, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+CMAC128_CTX, function in cmac
+</dt>
+<dd></dd>
+<dt>
+CMAC64_CTX, function in cmac
+</dt>
+<dd></dd>
+<dt>
+cmac_kuznyechik_digest, macro in cmac
+</dt>
+<dd></dd>
+<dt>
+cmac_kuznyechik_set_key, macro in cmac
+</dt>
+<dd></dd>
+<dt>
+cmac_kuznyechik_update, macro in cmac
+</dt>
+<dd></dd>
+<dt>
+cmac_magma_digest, macro in cmac
+</dt>
+<dd></dd>
+<dt>
+cmac_magma_set_key, macro in cmac
+</dt>
+<dd></dd>
+<dt>
+cmac_magma_update, macro in cmac
+</dt>
+<dd></dd>
+<dt>
+combclass_header_0, macro in combiningclass
+</dt>
+<dd></dd>
+<dt>
+combclass_header_1, macro in combiningclass
+</dt>
+<dd></dd>
+<dt>
+combclass_header_2, macro in combiningclass
+</dt>
+<dd></dd>
+<dt>
+combclass_header_3, macro in combiningclass
+</dt>
+<dd></dd>
+<dt>
+combclass_header_4, macro in combiningclass
+</dt>
+<dd></dd>
+<dt>
+combined, variable in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+COMPARE, function in array-mergesort
+</dt>
+<dd></dd>
+<dt>
+compress_certificate_ext_st, struct in compress_certificate
+</dt>
+<dd></dd>
+<dt>
+CONST_1_PARAM, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_APPLICATION, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_ASSIGN, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_DEFAULT, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_DEFINED_BY, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_DOWN, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_EXPLICIT, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_FALSE, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_GENERALIZED, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_IMPLICIT, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_LIST, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_MIN_MAX, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_NOT_USED, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_OPTION, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_PRIVATE, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_RIGHT, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_SET, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_SIZE, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_TAG, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_TRUE, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_UNIVERSAL, macro in int
+</dt>
+<dd></dd>
+<dt>
+CONST_UTC, macro in int
+</dt>
+<dd></dd>
+<dt>
+content_type_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+copy_func, user_function in hash_int
+</dt>
+<dd></dd>
+<dt>
+credentials, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+CRED_RET_SUCCESS, macro in cert-cred
+</dt>
+<dd></dd>
+<dt>
+CRYPTOKI_GNU, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+crypto_bigint_prio, variable in mpi
+</dt>
+<dd></dd>
+<dt>
+crypto_cipher_prio, variable in cipher_int
+</dt>
+<dd></dd>
+<dt>
+crypto_digest_prio, variable in hash_int
+</dt>
+<dd></dd>
+<dt>
+crypto_mac_prio, variable in hash_int
+</dt>
+<dd></dd>
+<dt>
+crypto_pk_prio, variable in pk
+</dt>
+<dd></dd>
+<dt>
+crypto_rnd_prio, variable in random
+</dt>
+<dd></dd>
+<dt>
+CS_INVALID_MAJOR, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+CS_INVALID_MINOR, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+curve_is_modern_ecdh, function in algorithms
+</dt>
+<dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
+<dt>
+dane_cert_type_name, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_cert_type_t, enum in dane
+</dt>
+<dd></dd>
+<dt>
+dane_cert_usage_name, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_cert_usage_t, enum in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_CERT_ERROR, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_FILE_ERROR, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_INITIALIZATION_ERROR, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_INVALID_DNSSEC_SIG, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_INVALID_REQUEST, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_MEMORY_ERROR, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_NO_CERT, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_NO_DANE_DATA, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_NO_DNSSEC_SIG, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_PUBKEY_ERROR, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_RECEIVED_CORRUPT_DATA, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_REQUESTED_DATA_NOT_AVAILABLE, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_RESOLVING_ERROR, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_SUCCESS, macro in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_E_UNKNOWN_DANE_DATA, macro in dane
+</dt>
+<dd></dd>
+<dt>
+dane_match_type_name, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_match_type_t, enum in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_data, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_deinit, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_entries, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_status, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_status_t, enum in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_t, typedef in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_tlsa, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_query_to_raw_tlsa, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_raw_tlsa, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_state_deinit, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_state_flags_t, enum in dane
+</dt>
+<dd></dd>
+<dt>
+dane_state_init, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_state_set_dlv_file, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_state_t, typedef in dane
+</dt>
+<dd></dd>
+<dt>
+dane_strerror, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_verification_status_print, function in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_VERIFY_CA_CONSTRAINS_VIOLATED, macro in dane
+</dt>
+<dd></dd>
+<dt>
+dane_verify_crt, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_verify_crt_raw, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_verify_flags_t, enum in dane
+</dt>
+<dd></dd>
+<dt>
+DANE_VERIFY_NO_DANE_INFO, macro in dane
+</dt>
+<dd></dd>
+<dt>
+dane_verify_session_crt, function in dane
+</dt>
+<dd></dd>
+<dt>
+dane_verify_status_t, enum in dane
+</dt>
+<dd></dd>
+<dt>
+DATA_OID, macro in pkcs7_int
+</dt>
+<dd></dd>
+<dt>
+db_check_entry, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+db_remove, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+decode_ber_digest_info, macro in pk
+</dt>
+<dd></dd>
+<dt>
+decomp_header_0, macro in decomposition-table1
+</dt>
+<dd></dd>
+<dt>
+decomp_header_1, macro in decomposition-table1
+</dt>
+<dd></dd>
+<dt>
+decomp_header_2, macro in decomposition-table1
+</dt>
+<dd></dd>
+<dt>
+decomp_header_3, macro in decomposition-table1
+</dt>
+<dd></dd>
+<dt>
+decomp_header_4, macro in decomposition-table1
+</dt>
+<dd></dd>
+<dt>
+decomp_index, function in decomposition-table
+</dt>
+<dd></dd>
+<dt>
+DECR_LEN, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DECR_LENGTH_COM, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DECR_LENGTH_RET, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DECR_LEN_FINAL, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_CERT_TYPE, macro in state
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_EC_GROUP, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_EXPIRE_TIME, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_HANDSHAKE_TIMEOUT_MS, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_MAX_EARLY_DATA_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_MAX_EMPTY_RECORDS, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_MAX_RECORD_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_MAX_VERIFY_BITS, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEFAULT_MAX_VERIFY_DEPTH, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DEF_ATOMIC_INT, macro in atomic
+</dt>
+<dd></dd>
+<dt>
+DEPRECATED, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+DERIVED_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+dev_t, macro in types
+</dt>
+<dd></dd>
+<dt>
+DH_G, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+dh_info_st, struct in dh_common
+</dt>
+<dd></dd>
+<dt>
+DH_P, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+dh_params_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DH_PRIVATE_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DH_PUBLIC_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DH_Q, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DH_X, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DH_Y, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DIGESTED_DATA_OID, macro in pkcs7_int
+</dt>
+<dd></dd>
+<dt>
+digest_hd_st, struct in hash_int
+</dt>
+<dd></dd>
+<dt>
+DIGEST_SIZE, macro in dsa-fips
+</dt>
+<dd></dd>
+<dt>
+div_ceil, macro in dsa-fips
+</dt>
+<dd></dd>
+<dt>
+DOWN, macro in int
+</dt>
+<dd></dd>
+<dt>
+drbg_aes_ctx, struct in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+drbg_aes_generate, function in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+drbg_aes_init, function in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+drbg_aes_is_seeded, function in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+DRBG_AES_KEY_SIZE, macro in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+drbg_aes_random, function in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+drbg_aes_reseed, function in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+DRBG_AES_RESEED_TIME, macro in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+DRBG_AES_SEED_SIZE, macro in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+drbg_aes_self_test, function in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+DSA_G, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+dsa_generate_dss_keypair, function in dsa-fips
+</dt>
+<dd></dd>
+<dt>
+dsa_generate_dss_pqg, function in dsa-fips
+</dt>
+<dd></dd>
+<dt>
+DSA_P, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DSA_PRIVATE_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DSA_PUBLIC_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DSA_Q, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+dsa_validate_dss_pqg, function in dsa-fips
+</dt>
+<dd></dd>
+<dt>
+DSA_X, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+DSA_Y, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+dss_params_validation_seeds, struct in dsa-fips
+</dt>
+<dd></dd>
+<dt>
+DTLS_DEFAULT_MTU, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DTLS_HANDSHAKE_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DTLS_MAX_COOKIE_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DTLS_RECORD_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+DTLS_RETRANS_TIMEOUT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+dtls_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
+<dt>
+EARLY_EXPORTER_MASTER_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+EARLY_TRAFFIC_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+ecc_curve, struct in ecc-gost-curve
+</dt>
+<dd></dd>
+<dt>
+ECC_K, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+ECC_PRIVATE_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+ECC_PUBLIC_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+ECC_X, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+ECC_Y, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+ECDH_X25519_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+ECDH_X448_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+ENABLE_ALIGN16, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+ENABLE_COMPAT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+ENABLE_PRIO_COMPAT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+encipher_type, enum in algorithms
+</dt>
+<dd></dd>
+<dt>
+encode_ber_digest_info, function in pk
+</dt>
+<dd></dd>
+<dt>
+ENC_DATA_OID, macro in pkcs7_int
+</dt>
+<dd></dd>
+<dt>
+end_ms, variable in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+EPOCH_NEXT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+EPOCH_READ_CURRENT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+EPOCH_WRITE_CURRENT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+Estrcat, macro in gstr
+</dt>
+<dd></dd>
+<dt>
+Estrcpy, macro in gstr
+</dt>
+<dd></dd>
+<dt>
+ETYPE_CLASS, macro in int
+</dt>
+<dd></dd>
+<dt>
+ETYPE_OK, macro in int
+</dt>
+<dd></dd>
+<dt>
+ETYPE_TAG, macro in int
+</dt>
+<dd></dd>
+<dt>
+exception, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+EXPAND_OBJECT_ID_MAX_RECURSION, macro in parser_aux
+</dt>
+<dd></dd>
+<dt>
+EXPORTER_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+EXPORTER_MASTER_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+export_pkcs1, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+export_pkcs3, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+export_raw, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+extensions_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+EXTRA_COMP_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+EXT_BINDER_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+ext_mod_alpn, variable in alpn
+</dt>
+<dd></dd>
+<dt>
+ext_mod_client_cert_type, variable in client_cert_type
+</dt>
+<dd></dd>
+<dt>
+ext_mod_compress_certificate, variable in compress_certificate
+</dt>
+<dd></dd>
+<dt>
+ext_mod_cookie, variable in cookie
+</dt>
+<dd></dd>
+<dt>
+ext_mod_dumbfw, variable in dumbfw
+</dt>
+<dd></dd>
+<dt>
+ext_mod_early_data, variable in early_data
+</dt>
+<dd></dd>
+<dt>
+ext_mod_etm, variable in etm
+</dt>
+<dd></dd>
+<dt>
+ext_mod_ext_master_secret, variable in ext_master_secret
+</dt>
+<dd></dd>
+<dt>
+ext_mod_heartbeat, variable in heartbeat
+</dt>
+<dd></dd>
+<dt>
+ext_mod_key_share, variable in key_share
+</dt>
+<dd></dd>
+<dt>
+ext_mod_max_record_size, variable in max_record
+</dt>
+<dd></dd>
+<dt>
+ext_mod_post_handshake, variable in post_handshake
+</dt>
+<dd></dd>
+<dt>
+ext_mod_pre_shared_key, variable in pre_shared_key
+</dt>
+<dd></dd>
+<dt>
+ext_mod_psk_ke_modes, variable in psk_ke_modes
+</dt>
+<dd></dd>
+<dt>
+ext_mod_record_size_limit, variable in record_size_limit
+</dt>
+<dd></dd>
+<dt>
+ext_mod_server_cert_type, variable in server_cert_type
+</dt>
+<dd></dd>
+<dt>
+ext_mod_server_name, variable in server_name
+</dt>
+<dd></dd>
+<dt>
+ext_mod_session_ticket, variable in session_ticket
+</dt>
+<dd></dd>
+<dt>
+ext_mod_sig, variable in signature
+</dt>
+<dd></dd>
+<dt>
+ext_mod_sr, variable in safe_renegotiation
+</dt>
+<dd></dd>
+<dt>
+ext_mod_srp, variable in srp
+</dt>
+<dd></dd>
+<dt>
+ext_mod_srtp, variable in srtp
+</dt>
+<dd></dd>
+<dt>
+ext_mod_status_request, variable in status_request
+</dt>
+<dd></dd>
+<dt>
+ext_mod_supported_ec_point_formats, variable in ec_point_formats
+</dt>
+<dd></dd>
+<dt>
+ext_mod_supported_groups, variable in supported_groups
+</dt>
+<dd></dd>
+<dt>
+ext_mod_supported_versions, variable in supported_versions
+</dt>
+<dd></dd>
+<dt>
+ext_msg_validity_to_str, function in hello_ext
+</dt>
+<dd></dd>
+<dt>
+EXT_SRTP_H, macro in srtp
+</dt>
+<dd></dd>
+<dt>
+ext_track_t, macro in gnutls_int
+</dt>
+<dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
+<dt>
+FAGAIN, macro in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+FAIL_IF_LIB_ERROR, macro in fips
+</dt>
+<dd></dd>
+<dt>
+FALLTHROUGH, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+FINAL_STATE, macro in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+find_func_t, user_function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+FIPS140_RND_KEY_SIZE, macro in fips
+</dt>
+<dd></dd>
+<dt>
+FIPS_RULE, macro in fips
+</dt>
+<dd></dd>
+<dt>
+FIX_KEY_USAGE, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+FIX_SIGN_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+free_cas, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+free_ca_names, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+free_crls, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+free_keys, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+FRIENDLY_NAME_OID, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+FUNC, function in u-normalize-internal
+</dt>
+<dd></dd>
+<a name="idxG"></a><h3 class="title">G</h3>
+<dt>
+generate, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_alert, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_auth_type, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_cipher, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_code, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_data, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_dh_secret_bits, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_entropy_func, user_function in rnd-common
+</dt>
+<dd></dd>
+<dt>
+get_handshake_last_out, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_params_t, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_protocol_version, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_record_direction, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_request_status, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_total_headers2, function in record
+</dt>
+<dd></dd>
+<dt>
+get_transport_ptr, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_user_ptr, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+get_version, function in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+GHASH_POLY, macro in block-internal
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t">giovec_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gl_int16_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_int32_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+GL_INT64_T, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_int64_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_int8_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_intmax_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_intptr_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_int_fast16_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_int_fast32_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_int_fast8_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uint16_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uint32_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+GL_UINT64_T, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uint64_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uint8_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uintmax_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uintptr_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uint_fast16_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uint_fast32_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uint_fast8_t, typedef in stdint.in
+</dt>
+<dd></dd>
+<dt>
+gl_uninorm_decompose_merge_sort_inplace, function in decompose-internal
+</dt>
+<dd></dd>
+<dt>
+gl_uninorm_decomp_index_table, variable in decomposition-table2
+</dt>
+<dd></dd>
+<dt>
+GNULIB_defined_dev_t, macro in types
+</dt>
+<dd></dd>
+<dt>
+GNULIB_defined_stdint_types, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t">gnutls_abstract_export_flags_t</a>, enum in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-decrypt" title="gnutls_aead_cipher_decrypt ()">gnutls_aead_cipher_decrypt</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-decryptv2" title="gnutls_aead_cipher_decryptv2 ()">gnutls_aead_cipher_decryptv2</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-deinit" title="gnutls_aead_cipher_deinit ()">gnutls_aead_cipher_deinit</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-encrypt" title="gnutls_aead_cipher_encrypt ()">gnutls_aead_cipher_encrypt</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-encryptv" title="gnutls_aead_cipher_encryptv ()">gnutls_aead_cipher_encryptv</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-encryptv2" title="gnutls_aead_cipher_encryptv2 ()">gnutls_aead_cipher_encryptv2</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-set-key" title="gnutls_aead_cipher_set_key ()">gnutls_aead_cipher_set_key</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t">gnutls_alert_description_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-get" title="gnutls_alert_get ()">gnutls_alert_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-get-name" title="gnutls_alert_get_name ()">gnutls_alert_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-get-strname" title="gnutls_alert_get_strname ()">gnutls_alert_get_strname</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-level-t" title="enum gnutls_alert_level_t">gnutls_alert_level_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-read-func" title="gnutls_alert_read_func ()">gnutls_alert_read_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-send" title="gnutls_alert_send ()">gnutls_alert_send</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-send-appropriate" title="gnutls_alert_send_appropriate ()">gnutls_alert_send_appropriate</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-set-read-function" title="gnutls_alert_set_read_function ()">gnutls_alert_set_read_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()">gnutls_alloc_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-ALLOW-ID-CHANGE:CAPS">GNUTLS_ALLOW_ID_CHANGE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alpn-flags-t" title="enum gnutls_alpn_flags_t">gnutls_alpn_flags_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alpn-get-selected-protocol" title="gnutls_alpn_get_selected_protocol ()">gnutls_alpn_get_selected_protocol</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-ALPN-MAND:CAPS" title="GNUTLS_ALPN_MAND">GNUTLS_ALPN_MAND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-alpn-set-protocols" title="gnutls_alpn_set_protocols ()">gnutls_alpn_set_protocols</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-client-credentials" title="gnutls_anon_allocate_client_credentials ()">gnutls_anon_allocate_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-allocate-server-credentials" title="gnutls_anon_allocate_server_credentials ()">gnutls_anon_allocate_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-free-client-credentials" title="gnutls_anon_free_client_credentials ()">gnutls_anon_free_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-free-server-credentials" title="gnutls_anon_free_server_credentials ()">gnutls_anon_free_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-set-params-function" title="gnutls_anon_set_params_function ()">gnutls_anon_set_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-dh-params" title="gnutls_anon_set_server_dh_params ()">gnutls_anon_set_server_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-known-dh-params" title="gnutls_anon_set_server_known_dh_params ()">gnutls_anon_set_server_known_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anon-set-server-params-function" title="gnutls_anon_set_server_params_function ()">gnutls_anon_set_server_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-deinit" title="gnutls_anti_replay_deinit ()">gnutls_anti_replay_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-enable" title="gnutls_anti_replay_enable ()">gnutls_anti_replay_enable</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-init" title="gnutls_anti_replay_init ()">gnutls_anti_replay_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-set-add-function" title="gnutls_anti_replay_set_add_function ()">gnutls_anti_replay_set_add_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-set-ptr" title="gnutls_anti_replay_set_ptr ()">gnutls_anti_replay_set_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-set-window" title="gnutls_anti_replay_set_window ()">gnutls_anti_replay_set_window</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t">gnutls_anti_replay_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_assert, macro in errors
+</dt>
+<dd></dd>
+<dt>
+gnutls_assert_val, function in mbuffers
+</dt>
+<dd></dd>
+<dt>
+gnutls_assert_val_fatal, macro in errors
+</dt>
+<dd></dd>
+<dt>
+gnutls_assert_val_int, function in errors
+</dt>
+<dd></dd>
+<dt>
+gnutls_atomic_decrement, macro in atomic
+</dt>
+<dd></dd>
+<dt>
+gnutls_atomic_deinit, macro in atomic
+</dt>
+<dd></dd>
+<dt>
+gnutls_atomic_increment, macro in atomic
+</dt>
+<dd></dd>
+<dt>
+gnutls_atomic_init, macro in atomic
+</dt>
+<dd></dd>
+<dt>
+gnutls_atomic_uint_st, struct in atomic
+</dt>
+<dd></dd>
+<dt>
+gnutls_atomic_uint_t, macro in atomic
+</dt>
+<dd></dd>
+<dt>
+gnutls_atomic_val, macro in atomic
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-audit-log-func" title="gnutls_audit_log_func ()">gnutls_audit_log_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_A_MISSING_SRP_USERNAME, macro in compat
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_A_UNKNOWN_SRP_USERNAME, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-base64-decode2" title="gnutls_base64_decode2 ()">gnutls_base64_decode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-base64-encode2" title="gnutls_base64_encode2 ()">gnutls_base64_encode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_bigint_format_t, enum in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-BITS-ARE-CURVE:CAPS" title="GNUTLS_BITS_ARE_CURVE()">GNUTLS_BITS_ARE_CURVE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-BITS-HAVE-SUBGROUP:CAPS" title="GNUTLS_BITS_HAVE_SUBGROUP()">GNUTLS_BITS_HAVE_SUBGROUP</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-BITS-TO-CURVE:CAPS" title="GNUTLS_BITS_TO_CURVE()">GNUTLS_BITS_TO_CURVE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-BITS-TO-GROUP:CAPS" title="GNUTLS_BITS_TO_GROUP()">GNUTLS_BITS_TO_GROUP</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-BITS-TO-SUBGROUP:CAPS" title="GNUTLS_BITS_TO_SUBGROUP()">GNUTLS_BITS_TO_SUBGROUP</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-buffer-append-data" title="gnutls_buffer_append_data ()">gnutls_buffer_append_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_buffer_st, struct in str
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-buffer-t" title="gnutls_buffer_t">gnutls_buffer_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-bye" title="gnutls_bye ()">gnutls_bye</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-calloc-function" title="gnutls_calloc_function ()">gnutls_calloc_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-activation-time-peers" title="gnutls_certificate_activation_time_peers ()">gnutls_certificate_activation_time_peers</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-allocate-credentials" title="gnutls_certificate_allocate_credentials ()">gnutls_certificate_allocate_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-client-get-request-status" title="gnutls_certificate_client_get_request_status ()">gnutls_certificate_client_get_request_status</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-credentials-st" title="struct gnutls_certificate_credentials_st">gnutls_certificate_credentials_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers" title="gnutls_certificate_expiration_time_peers ()">gnutls_certificate_expiration_time_peers</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-flags" title="enum gnutls_certificate_flags">gnutls_certificate_flags</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-cas" title="gnutls_certificate_free_cas ()">gnutls_certificate_free_cas</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-ca-names" title="gnutls_certificate_free_ca_names ()">gnutls_certificate_free_ca_names</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-credentials" title="gnutls_certificate_free_credentials ()">gnutls_certificate_free_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-crls" title="gnutls_certificate_free_crls ()">gnutls_certificate_free_crls</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-free-keys" title="gnutls_certificate_free_keys ()">gnutls_certificate_free_keys</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-crt-raw" title="gnutls_certificate_get_crt_raw ()">gnutls_certificate_get_crt_raw</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-issuer" title="gnutls_certificate_get_issuer ()">gnutls_certificate_get_issuer</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-ocsp-expiration" title="gnutls_certificate_get_ocsp_expiration ()">gnutls_certificate_get_ocsp_expiration</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-get-openpgp-crt" title="gnutls_certificate_get_openpgp_crt ()">gnutls_certificate_get_openpgp_crt</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-get-openpgp-key" title="gnutls_certificate_get_openpgp_key ()">gnutls_certificate_get_openpgp_key</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-ours" title="gnutls_certificate_get_ours ()">gnutls_certificate_get_ours</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()">gnutls_certificate_get_peers</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers-subkey-id" title="gnutls_certificate_get_peers_subkey_id ()">gnutls_certificate_get_peers_subkey_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-get-trust-list" title="gnutls_certificate_get_trust_list ()">gnutls_certificate_get_trust_list</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-verify-flags" title="gnutls_certificate_get_verify_flags ()">gnutls_certificate_get_verify_flags</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-x509-crt" title="gnutls_certificate_get_x509_crt ()">gnutls_certificate_get_x509_crt</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-x509-key" title="gnutls_certificate_get_x509_key ()">gnutls_certificate_get_x509_key</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-import-flags" title="enum gnutls_certificate_import_flags">gnutls_certificate_import_flags</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t">gnutls_certificate_print_formats_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-request-t" title="enum gnutls_certificate_request_t">gnutls_certificate_request_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()">gnutls_certificate_send_x509_rdn_sequence</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-server-set-request" title="gnutls_certificate_server_set_request ()">gnutls_certificate_server_set_request</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-dh-params" title="gnutls_certificate_set_dh_params ()">gnutls_certificate_set_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()">gnutls_certificate_set_flags</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()">gnutls_certificate_set_key</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-known-dh-params" title="gnutls_certificate_set_known_dh_params ()">gnutls_certificate_set_known_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-file" title="gnutls_certificate_set_ocsp_status_request_file ()">gnutls_certificate_set_ocsp_status_request_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-file2" title="gnutls_certificate_set_ocsp_status_request_file2 ()">gnutls_certificate_set_ocsp_status_request_file2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-function" title="gnutls_certificate_set_ocsp_status_request_function ()">gnutls_certificate_set_ocsp_status_request_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-function2" title="gnutls_certificate_set_ocsp_status_request_function2 ()">gnutls_certificate_set_ocsp_status_request_function2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-mem" title="gnutls_certificate_set_ocsp_status_request_mem ()">gnutls_certificate_set_ocsp_status_request_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key" title="gnutls_certificate_set_openpgp_key ()">gnutls_certificate_set_openpgp_key</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-file" title="gnutls_certificate_set_openpgp_keyring_file ()">gnutls_certificate_set_openpgp_keyring_file</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem" title="gnutls_certificate_set_openpgp_keyring_mem ()">gnutls_certificate_set_openpgp_keyring_mem</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file" title="gnutls_certificate_set_openpgp_key_file ()">gnutls_certificate_set_openpgp_key_file</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2" title="gnutls_certificate_set_openpgp_key_file2 ()">gnutls_certificate_set_openpgp_key_file2</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem" title="gnutls_certificate_set_openpgp_key_mem ()">gnutls_certificate_set_openpgp_key_mem</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2" title="gnutls_certificate_set_openpgp_key_mem2 ()">gnutls_certificate_set_openpgp_key_mem2</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-params-function" title="gnutls_certificate_set_params_function ()">gnutls_certificate_set_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-pin-function" title="gnutls_certificate_set_pin_function ()">gnutls_certificate_set_pin_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-rawpk-key-file" title="gnutls_certificate_set_rawpk_key_file ()">gnutls_certificate_set_rawpk_key_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-rawpk-key-mem" title="gnutls_certificate_set_rawpk_key_mem ()">gnutls_certificate_set_rawpk_key_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" title="gnutls_certificate_set_retrieve_function ()">gnutls_certificate_set_retrieve_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-certificate-set-retrieve-function2" title="gnutls_certificate_set_retrieve_function2 ()">gnutls_certificate_set_retrieve_function2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-certificate-set-retrieve-function3" title="gnutls_certificate_set_retrieve_function3 ()">gnutls_certificate_set_retrieve_function3</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-set-trust-list" title="gnutls_certificate_set_trust_list ()">gnutls_certificate_set_trust_list</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()">gnutls_certificate_set_verify_flags</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-function" title="gnutls_certificate_set_verify_function ()">gnutls_certificate_set_verify_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()">gnutls_certificate_set_verify_limits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl" title="gnutls_certificate_set_x509_crl ()">gnutls_certificate_set_x509_crl</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-file" title="gnutls_certificate_set_x509_crl_file ()">gnutls_certificate_set_x509_crl_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-mem" title="gnutls_certificate_set_x509_crl_mem ()">gnutls_certificate_set_x509_crl_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()">gnutls_certificate_set_x509_key</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file" title="gnutls_certificate_set_x509_key_file ()">gnutls_certificate_set_x509_key_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file2" title="gnutls_certificate_set_x509_key_file2 ()">gnutls_certificate_set_x509_key_file2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem" title="gnutls_certificate_set_x509_key_mem ()">gnutls_certificate_set_x509_key_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem2" title="gnutls_certificate_set_x509_key_mem2 ()">gnutls_certificate_set_x509_key_mem2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file" title="gnutls_certificate_set_x509_simple_pkcs12_file ()">gnutls_certificate_set_x509_simple_pkcs12_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem" title="gnutls_certificate_set_x509_simple_pkcs12_mem ()">gnutls_certificate_set_x509_simple_pkcs12_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-system-trust" title="gnutls_certificate_set_x509_system_trust ()">gnutls_certificate_set_x509_system_trust</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust" title="gnutls_certificate_set_x509_trust ()">gnutls_certificate_set_x509_trust</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-dir" title="gnutls_certificate_set_x509_trust_dir ()">gnutls_certificate_set_x509_trust_dir</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file" title="gnutls_certificate_set_x509_trust_file ()">gnutls_certificate_set_x509_trust_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-mem" title="gnutls_certificate_set_x509_trust_mem ()">gnutls_certificate_set_x509_trust_mem</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t">gnutls_certificate_status_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get" title="gnutls_certificate_type_get ()">gnutls_certificate_type_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get2" title="gnutls_certificate_type_get2 ()">gnutls_certificate_type_get2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t">gnutls_certificate_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-verification-profiles-t" title="enum gnutls_certificate_verification_profiles_t">gnutls_certificate_verification_profiles_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-verification-profile-get-name" title="gnutls_certificate_verification_profile_get_name ()">gnutls_certificate_verification_profile_get_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verification-status-print" title="gnutls_certificate_verification_status_print ()">gnutls_certificate_verification_status_print</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags">gnutls_certificate_verify_flags</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers" title="gnutls_certificate_verify_peers ()">gnutls_certificate_verify_peers</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()">gnutls_certificate_verify_peers2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers3" title="gnutls_certificate_verify_peers3 ()">gnutls_certificate_verify_peers3</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-CERT-RETR-DEINIT-ALL:CAPS" title="GNUTLS_CERT_RETR_DEINIT_ALL">GNUTLS_CERT_RETR_DEINIT_ALL</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-cert-retr-st" title="struct gnutls_cert_retr_st">gnutls_cert_retr_st</a>, struct in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_cert_vfunc, user_function in common
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-channel-binding-t" title="enum gnutls_channel_binding_t">gnutls_channel_binding_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-check-version" title="gnutls_check_version ()">gnutls_check_version</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-add-auth" title="gnutls_cipher_add_auth ()">gnutls_cipher_add_auth</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-aead-decrypt-func" title="gnutls_cipher_aead_decrypt_func ()">gnutls_cipher_aead_decrypt_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-aead-encrypt-func" title="gnutls_cipher_aead_encrypt_func ()">gnutls_cipher_aead_encrypt_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t">gnutls_cipher_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR:CAPS" title="GNUTLS_CIPHER_ARCFOUR">GNUTLS_CIPHER_ARCFOUR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-auth-func" title="gnutls_cipher_auth_func ()">gnutls_cipher_auth_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt" title="gnutls_cipher_decrypt ()">gnutls_cipher_decrypt</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt2" title="gnutls_cipher_decrypt2 ()">gnutls_cipher_decrypt2</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt3" title="gnutls_cipher_decrypt3 ()">gnutls_cipher_decrypt3</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt-func" title="gnutls_cipher_decrypt_func ()">gnutls_cipher_decrypt_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-deinit" title="gnutls_cipher_deinit ()">gnutls_cipher_deinit</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-deinit-func" title="gnutls_cipher_deinit_func ()">gnutls_cipher_deinit_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt" title="gnutls_cipher_encrypt ()">gnutls_cipher_encrypt</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt2" title="gnutls_cipher_encrypt2 ()">gnutls_cipher_encrypt2</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt3" title="gnutls_cipher_encrypt3 ()">gnutls_cipher_encrypt3</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt-func" title="gnutls_cipher_encrypt_func ()">gnutls_cipher_encrypt_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-flags-t" title="enum gnutls_cipher_flags_t">gnutls_cipher_flags_t</a>, enum in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_CIPHER_FLAG_NO_REKEY, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_CIPHER_FLAG_ONLY_AEAD, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_CIPHER_FLAG_TAG_PREFIXED, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_CIPHER_FLAG_XOR_NONCE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-get" title="gnutls_cipher_get ()">gnutls_cipher_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-getiv-func" title="gnutls_cipher_getiv_func ()">gnutls_cipher_getiv_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-get-block-size" title="gnutls_cipher_get_block_size ()">gnutls_cipher_get_block_size</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-get-name" title="gnutls_cipher_get_name ()">gnutls_cipher_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t">gnutls_cipher_hd_t</a>, typedef in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-init" title="gnutls_cipher_init ()">gnutls_cipher_init</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-init-func" title="gnutls_cipher_init_func ()">gnutls_cipher_init_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_128_CBC">GNUTLS_CIPHER_RIJNDAEL_128_CBC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_256_CBC">GNUTLS_CIPHER_RIJNDAEL_256_CBC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_CBC">GNUTLS_CIPHER_RIJNDAEL_CBC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_cipher_self_test, function in self-test
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-setiv-func" title="gnutls_cipher_setiv_func ()">gnutls_cipher_setiv_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-setkey-func" title="gnutls_cipher_setkey_func ()">gnutls_cipher_setkey_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-set-iv" title="gnutls_cipher_set_iv ()">gnutls_cipher_set_iv</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_cipher_suite_entry_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-suite-get-name" title="gnutls_cipher_suite_get_name ()">gnutls_cipher_suite_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-tag" title="gnutls_cipher_tag ()">gnutls_cipher_tag</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-tag-func" title="gnutls_cipher_tag_func ()">gnutls_cipher_tag_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CLIENT:CAPS">GNUTLS_CLIENT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-close-request-t" title="enum gnutls_close_request_t">gnutls_close_request_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_compression_get, function in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_compression_get_id, function in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_compression_get_name, function in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_compression_list, function in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t">gnutls_compression_method_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compress-certificate-get-selected-method" title="gnutls_compress_certificate_get_selected_method ()">gnutls_compress_certificate_get_selected_method</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-compress-certificate-set-methods" title="gnutls_compress_certificate_set_methods ()">gnutls_compress_certificate_set_methods</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#GNUTLS-COOKIE-KEY-SIZE:CAPS" title="GNUTLS_COOKIE_KEY_SIZE">GNUTLS_COOKIE_KEY_SIZE</a>, macro in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_cpuid, function in x86-common
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-credentials-get" title="gnutls_credentials_get ()">gnutls_credentials_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-credentials-set" title="gnutls_credentials_set ()">gnutls_credentials_set</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t">gnutls_credentials_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-cred-set" title="gnutls_cred_set">gnutls_cred_set</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS" title="GNUTLS_CRL_REASON_SUPERSEEDED">GNUTLS_CRL_REASON_SUPERSEEDED</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-RAW:CAPS" title="GNUTLS_CRT_RAW">GNUTLS_CRT_RAW</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_bigint_register, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_bigint_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_cipher_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_deinit, function in global
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_digest_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_init, function in global
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_kdf_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_mac_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_pk_register, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_pk_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-crypto-register-aead-cipher" title="gnutls_crypto_register_aead_cipher ()">gnutls_crypto_register_aead_cipher</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-crypto-register-cipher" title="gnutls_crypto_register_cipher ()">gnutls_crypto_register_cipher</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-crypto-register-digest" title="gnutls_crypto_register_digest ()">gnutls_crypto_register_digest</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-crypto-register-mac" title="gnutls_crypto_register_mac ()">gnutls_crypto_register_mac</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_rnd_register, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_rnd_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_single_cipher_register, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_single_cipher_st, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_single_digest_register, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_single_digest_st, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_single_mac_register, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_crypto_single_mac_st, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ctype-target-t" title="enum gnutls_ctype_target_t">gnutls_ctype_target_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CURVE-TO-BITS:CAPS" title="GNUTLS_CURVE_TO_BITS()">GNUTLS_CURVE_TO_BITS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_custom_url_st, struct in urls
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-DATAGRAM:CAPS">GNUTLS_DATAGRAM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t">gnutls_datum_t</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-add-func" title="gnutls_db_add_func ()">gnutls_db_add_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry" title="gnutls_db_check_entry ()">gnutls_db_check_entry</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry-expire-time" title="gnutls_db_check_entry_expire_time ()">gnutls_db_check_entry_expire_time</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry-time" title="gnutls_db_check_entry_time ()">gnutls_db_check_entry_time</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-get-default-cache-expiration" title="gnutls_db_get_default_cache_expiration ()">gnutls_db_get_default_cache_expiration</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-get-ptr" title="gnutls_db_get_ptr ()">gnutls_db_get_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()">gnutls_db_remove_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-remove-session" title="gnutls_db_remove_session ()">gnutls_db_remove_session</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()">gnutls_db_retr_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-cache-expiration" title="gnutls_db_set_cache_expiration ()">gnutls_db_set_cache_expiration</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()">gnutls_db_set_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-remove-function" title="gnutls_db_set_remove_function ()">gnutls_db_set_remove_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-retrieve-function" title="gnutls_db_set_retrieve_function ()">gnutls_db_set_retrieve_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-store-function" title="gnutls_db_set_store_function ()">gnutls_db_set_store_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()">gnutls_db_store_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-decode-ber-digest-info" title="gnutls_decode_ber_digest_info ()">gnutls_decode_ber_digest_info</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-decode-gost-rs-value" title="gnutls_decode_gost_rs_value ()">gnutls_decode_gost_rs_value</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-decode-rs-value" title="gnutls_decode_rs_value ()">gnutls_decode_rs_value</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-DEFAULT-HANDSHAKE-TIMEOUT:CAPS" title="GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT">GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_DEF_SESSION_ID_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()">gnutls_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-group" title="gnutls_dh_get_group ()">gnutls_dh_get_group</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-peers-public-bits" title="gnutls_dh_get_peers_public_bits ()">gnutls_dh_get_peers_public_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-prime-bits" title="gnutls_dh_get_prime_bits ()">gnutls_dh_get_prime_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-pubkey" title="gnutls_dh_get_pubkey ()">gnutls_dh_get_pubkey</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-get-secret-bits" title="gnutls_dh_get_secret_bits ()">gnutls_dh_get_secret_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-cpy" title="gnutls_dh_params_cpy ()">gnutls_dh_params_cpy</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-deinit" title="gnutls_dh_params_deinit ()">gnutls_dh_params_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export2-pkcs3" title="gnutls_dh_params_export2_pkcs3 ()">gnutls_dh_params_export2_pkcs3</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-pkcs3" title="gnutls_dh_params_export_pkcs3 ()">gnutls_dh_params_export_pkcs3</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-export-raw" title="gnutls_dh_params_export_raw ()">gnutls_dh_params_export_raw</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-generate2" title="gnutls_dh_params_generate2 ()">gnutls_dh_params_generate2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-dsa" title="gnutls_dh_params_import_dsa ()">gnutls_dh_params_import_dsa</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-pkcs3" title="gnutls_dh_params_import_pkcs3 ()">gnutls_dh_params_import_pkcs3</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-raw" title="gnutls_dh_params_import_raw ()">gnutls_dh_params_import_raw</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-raw2" title="gnutls_dh_params_import_raw2 ()">gnutls_dh_params_import_raw2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-raw3" title="gnutls_dh_params_import_raw3 ()">gnutls_dh_params_import_raw3</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-init" title="gnutls_dh_params_init ()">gnutls_dh_params_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-int" title="struct gnutls_dh_params_int">gnutls_dh_params_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t">gnutls_dh_params_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-dh-set-prime-bits" title="gnutls_dh_set_prime_bits ()">gnutls_dh_set_prime_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t">gnutls_digest_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-digest-copy-func" title="gnutls_digest_copy_func ()">gnutls_digest_copy_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-digest-deinit-func" title="gnutls_digest_deinit_func ()">gnutls_digest_deinit_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-digest-fast-func" title="gnutls_digest_fast_func ()">gnutls_digest_fast_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-digest-hash-func" title="gnutls_digest_hash_func ()">gnutls_digest_hash_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-digest-init-func" title="gnutls_digest_init_func ()">gnutls_digest_init_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-digest-output-func" title="gnutls_digest_output_func ()">gnutls_digest_output_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_digest_self_test, function in self-test
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-set-secure" title="gnutls_digest_set_secure ()">gnutls_digest_set_secure</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA:CAPS" title="GNUTLS_DIG_SHA">GNUTLS_DIG_SHA</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_direction_t, enum in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-send" title="gnutls_dtls_cookie_send ()">gnutls_dtls_cookie_send</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-verify" title="gnutls_dtls_cookie_verify ()">gnutls_dtls_cookie_verify</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-get-data-mtu" title="gnutls_dtls_get_data_mtu ()">gnutls_dtls_get_data_mtu</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-get-mtu" title="gnutls_dtls_get_mtu ()">gnutls_dtls_get_mtu</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-get-timeout" title="gnutls_dtls_get_timeout ()">gnutls_dtls_get_timeout</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-set" title="gnutls_dtls_prestate_set ()">gnutls_dtls_prestate_set</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-st" title="gnutls_dtls_prestate_st">gnutls_dtls_prestate_st</a>, struct in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-set-data-mtu" title="gnutls_dtls_set_data_mtu ()">gnutls_dtls_set_data_mtu</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-set-mtu" title="gnutls_dtls_set_mtu ()">gnutls_dtls_set_mtu</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-set-timeouts" title="gnutls_dtls_set_timeouts ()">gnutls_dtls_set_timeouts</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-early-cipher-get" title="gnutls_early_cipher_get ()">gnutls_early_cipher_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-early-prf-hash-get" title="gnutls_early_prf_hash_get ()">gnutls_early_prf_hash_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ecc_curve_entry_st, struct in algorithms
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-set-enabled" title="gnutls_ecc_curve_set_enabled ()">gnutls_ecc_curve_set_enabled</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t">gnutls_ecc_curve_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-ENABLE-CERT-TYPE-NEG:CAPS" title="GNUTLS_ENABLE_CERT_TYPE_NEG">GNUTLS_ENABLE_CERT_TYPE_NEG</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-ENABLE-FALSE-START:CAPS">GNUTLS_ENABLE_FALSE_START</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-encode-ber-digest-info" title="gnutls_encode_ber_digest_info ()">gnutls_encode_ber_digest_info</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-encode-gost-rs-value" title="gnutls_encode_gost_rs_value ()">gnutls_encode_gost_rs_value</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-encode-rs-value" title="gnutls_encode_rs_value ()">gnutls_encode_rs_value</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()">gnutls_errno_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-error-is-fatal" title="gnutls_error_is_fatal ()">gnutls_error_is_fatal</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-est-record-overhead-size" title="gnutls_est_record_overhead_size ()">gnutls_est_record_overhead_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_EXTENSION_MAX_VALUE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-deinit-data-func" title="gnutls_ext_deinit_data_func ()">gnutls_ext_deinit_data_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-flags-t" title="enum gnutls_ext_flags_t">gnutls_ext_flags_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND">GNUTLS_EXT_FLAG_APPEND</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_EXT_FLAG_MSG_MASK, macro in hello_ext
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_EXT_FLAG_SET_ONLY_FLAGS_MASK, macro in hello_ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-get-current-msg" title="gnutls_ext_get_current_msg ()">gnutls_ext_get_current_msg</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-get-data" title="gnutls_ext_get_data ()">gnutls_ext_get_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-get-name" title="gnutls_ext_get_name ()">gnutls_ext_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-get-name2" title="gnutls_ext_get_name2 ()">gnutls_ext_get_name2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-pack-func" title="gnutls_ext_pack_func ()">gnutls_ext_pack_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-parse-type-t" title="enum gnutls_ext_parse_type_t">gnutls_ext_parse_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-priv-data-t" title="gnutls_ext_priv_data_t">gnutls_ext_priv_data_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-DTLS-CLIENT-HELLO:CAPS" title="GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO">GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-TLS-CLIENT-HELLO:CAPS" title="GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO">GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-raw-parse" title="gnutls_ext_raw_parse ()">gnutls_ext_raw_parse</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-raw-process-func" title="gnutls_ext_raw_process_func ()">gnutls_ext_raw_process_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-recv-func" title="gnutls_ext_recv_func ()">gnutls_ext_recv_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-register" title="gnutls_ext_register ()">gnutls_ext_register</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-send-func" title="gnutls_ext_send_func ()">gnutls_ext_send_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-set-data" title="gnutls_ext_set_data ()">gnutls_ext_set_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-unpack-func" title="gnutls_ext_unpack_func ()">gnutls_ext_unpack_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN">GNUTLS_E_AGAIN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_ALREADY_REGISTERED">GNUTLS_E_ALREADY_REGISTERED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MAX:CAPS" title="GNUTLS_E_APPLICATION_ERROR_MAX">GNUTLS_E_APPLICATION_ERROR_MAX</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MIN:CAPS" title="GNUTLS_E_APPLICATION_ERROR_MIN">GNUTLS_E_APPLICATION_ERROR_MIN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-ERROR:CAPS" title="GNUTLS_E_ASN1_DER_ERROR">GNUTLS_E_ASN1_DER_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-OVERFLOW:CAPS" title="GNUTLS_E_ASN1_DER_OVERFLOW">GNUTLS_E_ASN1_DER_OVERFLOW</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_ELEMENT_NOT_FOUND">GNUTLS_E_ASN1_ELEMENT_NOT_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-EMBEDDED-NULL-IN-STRING:CAPS" title="GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING">GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-GENERIC-ERROR:CAPS" title="GNUTLS_E_ASN1_GENERIC_ERROR">GNUTLS_E_ASN1_GENERIC_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND">GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS" title="GNUTLS_E_ASN1_SYNTAX_ERROR">GNUTLS_E_ASN1_SYNTAX_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-ERROR:CAPS" title="GNUTLS_E_ASN1_TAG_ERROR">GNUTLS_E_ASN1_TAG_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS" title="GNUTLS_E_ASN1_TAG_IMPLICIT">GNUTLS_E_ASN1_TAG_IMPLICIT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TIME-ERROR:CAPS" title="GNUTLS_E_ASN1_TIME_ERROR">GNUTLS_E_ASN1_TIME_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS" title="GNUTLS_E_ASN1_TYPE_ANY_ERROR">GNUTLS_E_ASN1_TYPE_ANY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_FOUND">GNUTLS_E_ASN1_VALUE_NOT_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_VALID">GNUTLS_E_ASN1_VALUE_NOT_VALID</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-AUTH-ERROR:CAPS" title="GNUTLS_E_AUTH_ERROR">GNUTLS_E_AUTH_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-BAD-COOKIE:CAPS" title="GNUTLS_E_BAD_COOKIE">GNUTLS_E_BAD_COOKIE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-DECODING-ERROR:CAPS" title="GNUTLS_E_BASE64_DECODING_ERROR">GNUTLS_E_BASE64_DECODING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-ENCODING-ERROR:CAPS" title="GNUTLS_E_BASE64_ENCODING_ERROR">GNUTLS_E_BASE64_ENCODING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS" title="GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR">GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_ERROR">GNUTLS_E_CERTIFICATE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-LIST-UNSORTED:CAPS" title="GNUTLS_E_CERTIFICATE_LIST_UNSORTED">GNUTLS_E_CERTIFICATE_LIST_UNSORTED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-REQUIRED:CAPS" title="GNUTLS_E_CERTIFICATE_REQUIRED">GNUTLS_E_CERTIFICATE_REQUIRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-TIME-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_TIME_ERROR">GNUTLS_E_CERTIFICATE_TIME_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR">GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CHANNEL-BINDING-NOT-AVAILABLE:CAPS" title="GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE">GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-COMPRESSION-FAILED:CAPS" title="GNUTLS_E_COMPRESSION_FAILED">GNUTLS_E_COMPRESSION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CONSTRAINT-ERROR:CAPS" title="GNUTLS_E_CONSTRAINT_ERROR">GNUTLS_E_CONSTRAINT_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRL-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_CRL_VERIFICATION_ERROR">GNUTLS_E_CRL_VERIFICATION_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS" title="GNUTLS_E_CRYPTODEV_DEVICE_ERROR">GNUTLS_E_CRYPTODEV_DEVICE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS" title="GNUTLS_E_CRYPTODEV_IOCTL_ERROR">GNUTLS_E_CRYPTODEV_IOCTL_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_CRYPTO_ALREADY_REGISTERED">GNUTLS_E_CRYPTO_ALREADY_REGISTERED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTO-INIT-FAILED:CAPS" title="GNUTLS_E_CRYPTO_INIT_FAILED">GNUTLS_E_CRYPTO_INIT_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DB-ENTRY-EXISTS:CAPS" title="GNUTLS_E_DB_ENTRY_EXISTS">GNUTLS_E_DB_ENTRY_EXISTS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DB-ERROR:CAPS" title="GNUTLS_E_DB_ERROR">GNUTLS_E_DB_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECOMPRESSION-FAILED:CAPS" title="GNUTLS_E_DECOMPRESSION_FAILED">GNUTLS_E_DECOMPRESSION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_DECRYPTION_FAILED">GNUTLS_E_DECRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS" title="GNUTLS_E_DH_PRIME_UNACCEPTABLE">GNUTLS_E_DH_PRIME_UNACCEPTABLE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-EARLY-DATA-REJECTED:CAPS" title="GNUTLS_E_EARLY_DATA_REJECTED">GNUTLS_E_EARLY_DATA_REJECTED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ECC-NO-SUPPORTED-CURVES:CAPS" title="GNUTLS_E_ECC_NO_SUPPORTED_CURVES">GNUTLS_E_ECC_NO_SUPPORTED_CURVES</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ECC-UNSUPPORTED-CURVE:CAPS" title="GNUTLS_E_ECC_UNSUPPORTED_CURVE">GNUTLS_E_ECC_UNSUPPORTED_CURVE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ENCRYPTION-FAILED:CAPS" title="GNUTLS_E_ENCRYPTION_FAILED">GNUTLS_E_ENCRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS" title="GNUTLS_E_ERROR_IN_FINISHED_PACKET">GNUTLS_E_ERROR_IN_FINISHED_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED">GNUTLS_E_EXPIRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS" title="GNUTLS_E_FATAL_ALERT_RECEIVED">GNUTLS_E_FATAL_ALERT_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-FILE-ERROR:CAPS" title="GNUTLS_E_FILE_ERROR">GNUTLS_E_FILE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS" title="GNUTLS_E_GOT_APPLICATION_DATA">GNUTLS_E_GOT_APPLICATION_DATA</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-DURING-FALSE-START:CAPS" title="GNUTLS_E_HANDSHAKE_DURING_FALSE_START">GNUTLS_E_HANDSHAKE_DURING_FALSE_START</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS" title="GNUTLS_E_HANDSHAKE_TOO_LARGE">GNUTLS_E_HANDSHAKE_TOO_LARGE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HASH-FAILED:CAPS" title="GNUTLS_E_HASH_FAILED">GNUTLS_E_HASH_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HEARTBEAT-PING-RECEIVED:CAPS" title="GNUTLS_E_HEARTBEAT_PING_RECEIVED">GNUTLS_E_HEARTBEAT_PING_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HEARTBEAT-PONG-RECEIVED:CAPS" title="GNUTLS_E_HEARTBEAT_PONG_RECEIVED">GNUTLS_E_HEARTBEAT_PONG_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-IA-VERIFY-FAILED:CAPS" title="GNUTLS_E_IA_VERIFY_FAILED">GNUTLS_E_IA_VERIFY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-IDNA-ERROR:CAPS" title="GNUTLS_E_IDNA_ERROR">GNUTLS_E_IDNA_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-PARAMETER:CAPS" title="GNUTLS_E_ILLEGAL_PARAMETER">GNUTLS_E_ILLEGAL_PARAMETER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS" title="GNUTLS_E_ILLEGAL_SRP_USERNAME">GNUTLS_E_ILLEGAL_SRP_USERNAME</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INAPPROPRIATE-FALLBACK:CAPS" title="GNUTLS_E_INAPPROPRIATE_FALLBACK">GNUTLS_E_INAPPROPRIATE_FALLBACK</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY">GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY">GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY">GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-SIG-WITH-KEY:CAPS" title="GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY">GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPAT-DSA-KEY-WITH-TLS-PROTOCOL:CAPS" title="GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL">GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CRED:CAPS" title="GNUTLS_E_INSUFFICIENT_CRED">GNUTLS_E_INSUFFICIENT_CRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS" title="GNUTLS_E_INSUFFICIENT_CREDENTIALS">GNUTLS_E_INSUFFICIENT_CREDENTIALS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-SECURITY:CAPS" title="GNUTLS_E_INSUFFICIENT_SECURITY">GNUTLS_E_INSUFFICIENT_SECURITY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CRED:CAPS" title="GNUTLS_E_INSUFICIENT_CRED">GNUTLS_E_INSUFICIENT_CRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS" title="GNUTLS_E_INSUFICIENT_CREDENTIALS">GNUTLS_E_INSUFICIENT_CREDENTIALS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERNAL-ERROR:CAPS" title="GNUTLS_E_INTERNAL_ERROR">GNUTLS_E_INTERNAL_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED">GNUTLS_E_INTERRUPTED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INT-CHECK-AGAIN:CAPS" title="GNUTLS_E_INT_CHECK_AGAIN">GNUTLS_E_INT_CHECK_AGAIN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INT-RET-0:CAPS" title="GNUTLS_E_INT_RET_0">GNUTLS_E_INT_RET_0</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD:CAPS" title="GNUTLS_E_INVALID_PASSWORD">GNUTLS_E_INVALID_PASSWORD</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD-STRING:CAPS" title="GNUTLS_E_INVALID_PASSWORD_STRING">GNUTLS_E_INVALID_PASSWORD_STRING</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST">GNUTLS_E_INVALID_REQUEST</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-SESSION:CAPS" title="GNUTLS_E_INVALID_SESSION">GNUTLS_E_INVALID_SESSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-EMAIL:CAPS" title="GNUTLS_E_INVALID_UTF8_EMAIL">GNUTLS_E_INVALID_UTF8_EMAIL</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-STRING:CAPS" title="GNUTLS_E_INVALID_UTF8_STRING">GNUTLS_E_INVALID_UTF8_STRING</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEYFILE-ERROR:CAPS" title="GNUTLS_E_KEYFILE_ERROR">GNUTLS_E_KEYFILE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEYFILE-PARSING-ERROR:CAPS" title="GNUTLS_E_KEYFILE_PARSING_ERROR">GNUTLS_E_KEYFILE_PARSING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEY-IMPORT-FAILED:CAPS" title="GNUTLS_E_KEY_IMPORT_FAILED">GNUTLS_E_KEY_IMPORT_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEY-USAGE-VIOLATION:CAPS" title="GNUTLS_E_KEY_USAGE_VIOLATION">GNUTLS_E_KEY_USAGE_VIOLATION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET">GNUTLS_E_LARGE_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-LIB-IN-ERROR-STATE:CAPS" title="GNUTLS_E_LIB_IN_ERROR_STATE">GNUTLS_E_LIB_IN_ERROR_STATE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-LOCKING-ERROR:CAPS" title="GNUTLS_E_LOCKING_ERROR">GNUTLS_E_LOCKING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MAC-VERIFY-FAILED:CAPS" title="GNUTLS_E_MAC_VERIFY_FAILED">GNUTLS_E_MAC_VERIFY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MALFORMED-CIDR:CAPS" title="GNUTLS_E_MALFORMED_CIDR">GNUTLS_E_MALFORMED_CIDR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MEMORY-ERROR:CAPS" title="GNUTLS_E_MEMORY_ERROR">GNUTLS_E_MEMORY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MISSING-EXTENSION:CAPS" title="GNUTLS_E_MISSING_EXTENSION">GNUTLS_E_MISSING_EXTENSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MPI-PRINT-FAILED:CAPS" title="GNUTLS_E_MPI_PRINT_FAILED">GNUTLS_E_MPI_PRINT_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-MPI-SCAN-FAILED:CAPS" title="GNUTLS_E_MPI_SCAN_FAILED">GNUTLS_E_MPI_SCAN_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NEED-FALLBACK:CAPS" title="GNUTLS_E_NEED_FALLBACK">GNUTLS_E_NEED_FALLBACK</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NOT-YET-ACTIVATED:CAPS" title="GNUTLS_E_NOT_YET_ACTIVATED">GNUTLS_E_NOT_YET_ACTIVATED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-APPLICATION-PROTOCOL:CAPS" title="GNUTLS_E_NO_APPLICATION_PROTOCOL">GNUTLS_E_NO_APPLICATION_PROTOCOL</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS" title="GNUTLS_E_NO_CERTIFICATE_FOUND">GNUTLS_E_NO_CERTIFICATE_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-STATUS:CAPS" title="GNUTLS_E_NO_CERTIFICATE_STATUS">GNUTLS_E_NO_CERTIFICATE_STATUS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CIPHER-SUITES:CAPS" title="GNUTLS_E_NO_CIPHER_SUITES">GNUTLS_E_NO_CIPHER_SUITES</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-COMMON-KEY-SHARE:CAPS" title="GNUTLS_E_NO_COMMON_KEY_SHARE">GNUTLS_E_NO_COMMON_KEY_SHARE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS" title="GNUTLS_E_NO_COMPRESSION_ALGORITHMS">GNUTLS_E_NO_COMPRESSION_ALGORITHMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-EMBEDDED-DATA:CAPS" title="GNUTLS_E_NO_EMBEDDED_DATA">GNUTLS_E_NO_EMBEDDED_DATA</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-PRIORITIES-WERE-SET:CAPS" title="GNUTLS_E_NO_PRIORITIES_WERE_SET">GNUTLS_E_NO_PRIORITIES_WERE_SET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-SELF-TEST:CAPS" title="GNUTLS_E_NO_SELF_TEST">GNUTLS_E_NO_SELF_TEST</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS" title="GNUTLS_E_NO_TEMPORARY_DH_PARAMS">GNUTLS_E_NO_TEMPORARY_DH_PARAMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS" title="GNUTLS_E_NO_TEMPORARY_RSA_PARAMS">GNUTLS_E_NO_TEMPORARY_RSA_PARAMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OCSP-MISMATCH-WITH-CERTS:CAPS" title="GNUTLS_E_OCSP_MISMATCH_WITH_CERTS">GNUTLS_E_OCSP_MISMATCH_WITH_CERTS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OCSP-RESPONSE-ERROR:CAPS" title="GNUTLS_E_OCSP_RESPONSE_ERROR">GNUTLS_E_OCSP_RESPONSE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS" title="GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED">GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS" title="GNUTLS_E_OPENPGP_GETKEY_FAILED">GNUTLS_E_OPENPGP_GETKEY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS" title="GNUTLS_E_OPENPGP_KEYRING_ERROR">GNUTLS_E_OPENPGP_KEYRING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-PREFERRED-KEY-ERROR:CAPS" title="GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR">GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS" title="GNUTLS_E_OPENPGP_SUBKEY_ERROR">GNUTLS_E_OPENPGP_SUBKEY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-UID-REVOKED:CAPS" title="GNUTLS_E_OPENPGP_UID_REVOKED">GNUTLS_E_OPENPGP_UID_REVOKED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR">GNUTLS_E_PARSING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS" title="GNUTLS_E_PKCS11_ATTRIBUTE_ERROR">GNUTLS_E_PKCS11_ATTRIBUTE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-DATA-ERROR:CAPS" title="GNUTLS_E_PKCS11_DATA_ERROR">GNUTLS_E_PKCS11_DATA_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS" title="GNUTLS_E_PKCS11_DEVICE_ERROR">GNUTLS_E_PKCS11_DEVICE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-ERROR:CAPS" title="GNUTLS_E_PKCS11_ERROR">GNUTLS_E_PKCS11_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-KEY-ERROR:CAPS" title="GNUTLS_E_PKCS11_KEY_ERROR">GNUTLS_E_PKCS11_KEY_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-LOAD-ERROR:CAPS" title="GNUTLS_E_PKCS11_LOAD_ERROR">GNUTLS_E_PKCS11_LOAD_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-ERROR:CAPS" title="GNUTLS_E_PKCS11_PIN_ERROR">GNUTLS_E_PKCS11_PIN_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS" title="GNUTLS_E_PKCS11_PIN_EXPIRED">GNUTLS_E_PKCS11_PIN_EXPIRED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-LOCKED:CAPS" title="GNUTLS_E_PKCS11_PIN_LOCKED">GNUTLS_E_PKCS11_PIN_LOCKED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-REQUESTED-OBJECT-NOT-AVAILBLE:CAPS" title="GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE">GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SESSION-ERROR:CAPS" title="GNUTLS_E_PKCS11_SESSION_ERROR">GNUTLS_E_PKCS11_SESSION_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS" title="GNUTLS_E_PKCS11_SIGNATURE_ERROR">GNUTLS_E_PKCS11_SIGNATURE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SLOT-ERROR:CAPS" title="GNUTLS_E_PKCS11_SLOT_ERROR">GNUTLS_E_PKCS11_SLOT_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS" title="GNUTLS_E_PKCS11_TOKEN_ERROR">GNUTLS_E_PKCS11_TOKEN_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS" title="GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR">GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-USER-ERROR:CAPS" title="GNUTLS_E_PKCS11_USER_ERROR">GNUTLS_E_PKCS11_USER_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS1-WRONG-PAD:CAPS" title="GNUTLS_E_PKCS1_WRONG_PAD">GNUTLS_E_PKCS1_WRONG_PAD</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_PK_DECRYPTION_FAILED">GNUTLS_E_PK_DECRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS" title="GNUTLS_E_PK_ENCRYPTION_FAILED">GNUTLS_E_PK_ENCRYPTION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-GENERATION-ERROR:CAPS" title="GNUTLS_E_PK_GENERATION_ERROR">GNUTLS_E_PK_GENERATION_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PRIVKEY:CAPS" title="GNUTLS_E_PK_INVALID_PRIVKEY">GNUTLS_E_PK_INVALID_PRIVKEY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PUBKEY:CAPS" title="GNUTLS_E_PK_INVALID_PUBKEY">GNUTLS_E_PK_INVALID_PUBKEY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PUBKEY-PARAMS:CAPS" title="GNUTLS_E_PK_INVALID_PUBKEY_PARAMS">GNUTLS_E_PK_INVALID_PUBKEY_PARAMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-NO-VALIDATION-PARAMS:CAPS" title="GNUTLS_E_PK_NO_VALIDATION_PARAMS">GNUTLS_E_PK_NO_VALIDATION_PARAMS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIGN-FAILED:CAPS" title="GNUTLS_E_PK_SIGN_FAILED">GNUTLS_E_PK_SIGN_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED">GNUTLS_E_PK_SIG_VERIFY_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PREMATURE-TERMINATION:CAPS" title="GNUTLS_E_PREMATURE_TERMINATION">GNUTLS_E_PREMATURE_TERMINATION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PRIVKEY-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_PRIVKEY_VERIFICATION_ERROR">GNUTLS_E_PRIVKEY_VERIFICATION_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PULL-ERROR:CAPS" title="GNUTLS_E_PULL_ERROR">GNUTLS_E_PULL_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-PUSH-ERROR:CAPS" title="GNUTLS_E_PUSH_ERROR">GNUTLS_E_PUSH_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RANDOM-DEVICE-ERROR:CAPS" title="GNUTLS_E_RANDOM_DEVICE_ERROR">GNUTLS_E_RANDOM_DEVICE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RANDOM-FAILED:CAPS" title="GNUTLS_E_RANDOM_FAILED">GNUTLS_E_RANDOM_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REAUTH-REQUEST:CAPS" title="GNUTLS_E_REAUTH_REQUEST">GNUTLS_E_REAUTH_REQUEST</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-DISALLOWED-NAME:CAPS" title="GNUTLS_E_RECEIVED_DISALLOWED_NAME">GNUTLS_E_RECEIVED_DISALLOWED_NAME</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS" title="GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION">GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS" title="GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER">GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECORD-LIMIT-REACHED:CAPS" title="GNUTLS_E_RECORD_LIMIT_REACHED">GNUTLS_E_RECORD_LIMIT_REACHED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECORD-OVERFLOW:CAPS" title="GNUTLS_E_RECORD_OVERFLOW">GNUTLS_E_RECORD_OVERFLOW</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE">GNUTLS_E_REHANDSHAKE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS" title="GNUTLS_E_SAFE_RENEGOTIATION_FAILED">GNUTLS_E_SAFE_RENEGOTIATION_FAILED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SELF-TEST-ERROR:CAPS" title="GNUTLS_E_SELF_TEST_ERROR">GNUTLS_E_SELF_TEST_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SESSION-EOF:CAPS" title="GNUTLS_E_SESSION_EOF">GNUTLS_E_SESSION_EOF</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SESSION-USER-ID-CHANGED:CAPS" title="GNUTLS_E_SESSION_USER_ID_CHANGED">GNUTLS_E_SESSION_USER_ID_CHANGED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER">GNUTLS_E_SHORT_MEMORY_BUFFER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SOCKETS-INIT-ERROR:CAPS" title="GNUTLS_E_SOCKETS_INIT_ERROR">GNUTLS_E_SOCKETS_INIT_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-ERROR:CAPS" title="GNUTLS_E_SRP_PWD_ERROR">GNUTLS_E_SRP_PWD_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS" title="GNUTLS_E_SRP_PWD_PARSING_ERROR">GNUTLS_E_SRP_PWD_PARSING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS">GNUTLS_E_SUCCESS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TIMEDOUT:CAPS" title="GNUTLS_E_TIMEDOUT">GNUTLS_E_TIMEDOUT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TLS-PACKET-DECODING-ERROR:CAPS" title="GNUTLS_E_TLS_PACKET_DECODING_ERROR">GNUTLS_E_TLS_PACKET_DECODING_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS" title="GNUTLS_E_TOO_MANY_EMPTY_PACKETS">GNUTLS_E_TOO_MANY_EMPTY_PACKETS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-HANDSHAKE-PACKETS:CAPS" title="GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS">GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-MATCHES:CAPS" title="GNUTLS_E_TOO_MANY_MATCHES">GNUTLS_E_TOO_MANY_MATCHES</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-ERROR:CAPS" title="GNUTLS_E_TPM_ERROR">GNUTLS_E_TPM_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-KEY-NOT-FOUND:CAPS" title="GNUTLS_E_TPM_KEY_NOT_FOUND">GNUTLS_E_TPM_KEY_NOT_FOUND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-KEY-PASSWORD-ERROR:CAPS" title="GNUTLS_E_TPM_KEY_PASSWORD_ERROR">GNUTLS_E_TPM_KEY_PASSWORD_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-NO-LIB:CAPS" title="GNUTLS_E_TPM_NO_LIB">GNUTLS_E_TPM_NO_LIB</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-SESSION-ERROR:CAPS" title="GNUTLS_E_TPM_SESSION_ERROR">GNUTLS_E_TPM_SESSION_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-SRK-PASSWORD-ERROR:CAPS" title="GNUTLS_E_TPM_SRK_PASSWORD_ERROR">GNUTLS_E_TPM_SRK_PASSWORD_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-UNINITIALIZED:CAPS" title="GNUTLS_E_TPM_UNINITIALIZED">GNUTLS_E_TPM_UNINITIALIZED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNAVAILABLE-DURING-HANDSHAKE:CAPS" title="GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE">GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-EXTENSIONS-LENGTH:CAPS" title="GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH">GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS" title="GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET">GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET:CAPS" title="GNUTLS_E_UNEXPECTED_PACKET">GNUTLS_E_UNEXPECTED_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS" title="GNUTLS_E_UNEXPECTED_PACKET_LENGTH">GNUTLS_E_UNEXPECTED_PACKET_LENGTH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE">GNUTLS_E_UNIMPLEMENTED_FEATURE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_ALGORITHM">GNUTLS_E_UNKNOWN_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_SUITE">GNUTLS_E_UNKNOWN_CIPHER_SUITE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE">GNUTLS_E_UNKNOWN_CIPHER_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM">GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_HASH_ALGORITHM">GNUTLS_E_UNKNOWN_HASH_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE">GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE">GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_PK_ALGORITHM">GNUTLS_E_UNKNOWN_PK_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS" title="GNUTLS_E_UNKNOWN_SRP_USERNAME">GNUTLS_E_UNKNOWN_SRP_USERNAME</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNRECOGNIZED-NAME:CAPS" title="GNUTLS_E_UNRECOGNIZED_NAME">GNUTLS_E_UNRECOGNIZED_NAME</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS" title="GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED">GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS" title="GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE">GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS" title="GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM">GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS" title="GNUTLS_E_UNSUPPORTED_VERSION_PACKET">GNUTLS_E_UNSUPPORTED_VERSION_PACKET</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNWANTED-ALGORITHM:CAPS" title="GNUTLS_E_UNWANTED_ALGORITHM">GNUTLS_E_UNWANTED_ALGORITHM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-USER-ERROR:CAPS" title="GNUTLS_E_USER_ERROR">GNUTLS_E_USER_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS" title="GNUTLS_E_WARNING_ALERT_RECEIVED">GNUTLS_E_WARNING_ALERT_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_FPHF_RECEIVED">GNUTLS_E_WARNING_IA_FPHF_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_IPHF_RECEIVED">GNUTLS_E_WARNING_IA_IPHF_RECEIVED</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS" title="GNUTLS_E_X509_CERTIFICATE_ERROR">GNUTLS_E_X509_CERTIFICATE_ERROR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-DUPLICATE-EXTENSION:CAPS" title="GNUTLS_E_X509_DUPLICATE_EXTENSION">GNUTLS_E_X509_DUPLICATE_EXTENSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNKNOWN-SAN:CAPS" title="GNUTLS_E_X509_UNKNOWN_SAN">GNUTLS_E_X509_UNKNOWN_SAN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE">GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION">GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-EXTENSION:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_EXTENSION">GNUTLS_E_X509_UNSUPPORTED_EXTENSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-OID:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_OID">GNUTLS_E_X509_UNSUPPORTED_OID</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_FALLBACK_SCSV_MAJOR, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_FALLBACK_SCSV_MINOR, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fingerprint" title="gnutls_fingerprint ()">gnutls_fingerprint</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-deinit" title="gnutls_fips140_context_deinit ()">gnutls_fips140_context_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-init" title="gnutls_fips140_context_init ()">gnutls_fips140_context_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t">gnutls_fips140_context_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-get-operation-state" title="gnutls_fips140_get_operation_state ()">gnutls_fips140_get_operation_state</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-mode-enabled" title="gnutls_fips140_mode_enabled ()">gnutls_fips140_mode_enabled</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-operation-state-t" title="enum gnutls_fips140_operation_state_t">gnutls_fips140_operation_state_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-pop-context" title="gnutls_fips140_pop_context ()">gnutls_fips140_pop_context</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-push-context" title="gnutls_fips140_push_context ()">gnutls_fips140_push_context</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-run-self-tests" title="gnutls_fips140_run_self_tests ()">gnutls_fips140_run_self_tests</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-LAX-MODE:CAPS" title="GNUTLS_FIPS140_SET_LAX_MODE">GNUTLS_FIPS140_SET_LAX_MODE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-set-mode" title="gnutls_fips140_set_mode ()">gnutls_fips140_set_mode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-MODE-THREAD:CAPS" title="GNUTLS_FIPS140_SET_MODE_THREAD">GNUTLS_FIPS140_SET_MODE_THREAD</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-STRICT-MODE:CAPS" title="GNUTLS_FIPS140_SET_STRICT_MODE">GNUTLS_FIPS140_SET_STRICT_MODE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-fips-mode-t" title="enum gnutls_fips_mode_t">gnutls_fips_mode_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-FLAGS-TO-SIGN-ALGO:CAPS" title="GNUTLS_FLAGS_TO_SIGN_ALGO()">GNUTLS_FLAGS_TO_SIGN_ALGO</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-FORCE-CLIENT-CERT:CAPS">GNUTLS_FORCE_CLIENT_CERT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()">gnutls_free</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-free-function" title="gnutls_free_function ()">gnutls_free_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS" title="GNUTLS_FSAN_APPEND">GNUTLS_FSAN_APPEND</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-OCTET-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_OCTET_STRING">GNUTLS_FSAN_ENCODE_OCTET_STRING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-UTF8-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_UTF8_STRING">GNUTLS_FSAN_ENCODE_UTF8_STRING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS" title="GNUTLS_FSAN_SET">GNUTLS_FSAN_SET</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+_GNUTLS_GCC_ATTR_DEPRECATED, typedef in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_gettime, variable in system
+</dt>
+<dd></dd>
+<dt>
+gnutls_gettime_func, user_function in system
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-get-library-config" title="gnutls_get_library_config ()">gnutls_get_library_config</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_get_raw_issuer_func, user_function in urls
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-get-system-config-file" title="gnutls_get_system_config_file ()">gnutls_get_system_config_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()">gnutls_global_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()">gnutls_global_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-audit-log-function" title="gnutls_global_set_audit_log_function ()">gnutls_global_set_audit_log_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-function" title="gnutls_global_set_log_function ()">gnutls_global_set_log_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-level" title="gnutls_global_set_log_level ()">gnutls_global_set_log_level</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_global_set_mem_functions, function in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-mutex" title="gnutls_global_set_mutex ()">gnutls_global_set_mutex</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-time-function" title="gnutls_global_set_time_function ()">gnutls_global_set_time_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t">gnutls_gost_paramset_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_group_entry_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-group-get" title="gnutls_group_get ()">gnutls_group_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-group-t" title="enum gnutls_group_t">gnutls_group_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">gnutls_handshake</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HANDSHAKE-ANY:CAPS" title="GNUTLS_HANDSHAKE_ANY">GNUTLS_HANDSHAKE_ANY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t">gnutls_handshake_description_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-in" title="gnutls_handshake_get_last_in ()">gnutls_handshake_get_last_in</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-out" title="gnutls_handshake_get_last_out ()">gnutls_handshake_get_last_out</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-hook-func" title="gnutls_handshake_hook_func ()">gnutls_handshake_hook_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func" title="gnutls_handshake_post_client_hello_func">gnutls_handshake_post_client_hello_func</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-read-func" title="gnutls_handshake_read_func ()">gnutls_handshake_read_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-secret-func" title="gnutls_handshake_secret_func ()">gnutls_handshake_secret_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-hook-function" title="gnutls_handshake_set_hook_function ()">gnutls_handshake_set_hook_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-max-packet-length" title="gnutls_handshake_set_max_packet_length ()">gnutls_handshake_set_max_packet_length</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function" title="gnutls_handshake_set_post_client_hello_function ()">gnutls_handshake_set_post_client_hello_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-random" title="gnutls_handshake_set_random ()">gnutls_handshake_set_random</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-read-function" title="gnutls_handshake_set_read_function ()">gnutls_handshake_set_read_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-secret-function" title="gnutls_handshake_set_secret_function ()">gnutls_handshake_set_secret_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-timeout" title="gnutls_handshake_set_timeout ()">gnutls_handshake_set_timeout</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-simple-hook-func" title="gnutls_handshake_simple_hook_func ()">gnutls_handshake_simple_hook_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-write" title="gnutls_handshake_write ()">gnutls_handshake_write</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash" title="gnutls_hash ()">gnutls_hash</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-copy" title="gnutls_hash_copy ()">gnutls_hash_copy</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-deinit" title="gnutls_hash_deinit ()">gnutls_hash_deinit</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-get-len" title="gnutls_hash_get_len ()">gnutls_hash_get_len</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t">gnutls_hash_hd_t</a>, typedef in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-init" title="gnutls_hash_init ()">gnutls_hash_init</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hash-output" title="gnutls_hash_output ()">gnutls_hash_output</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HB-LOCAL-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_LOCAL_ALLOWED_TO_SEND">GNUTLS_HB_LOCAL_ALLOWED_TO_SEND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HB-PEER-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_PEER_ALLOWED_TO_SEND">GNUTLS_HB_PEER_ALLOWED_TO_SEND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HB-PEER-NOT-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND">GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-allowed" title="gnutls_heartbeat_allowed ()">gnutls_heartbeat_allowed</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-enable" title="gnutls_heartbeat_enable ()">gnutls_heartbeat_enable</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-get-timeout" title="gnutls_heartbeat_get_timeout ()">gnutls_heartbeat_get_timeout</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-ping" title="gnutls_heartbeat_ping ()">gnutls_heartbeat_ping</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-pong" title="gnutls_heartbeat_pong ()">gnutls_heartbeat_pong</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-set-timeouts" title="gnutls_heartbeat_set_timeouts ()">gnutls_heartbeat_set_timeouts</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HEARTBEAT-WAIT:CAPS" title="GNUTLS_HEARTBEAT_WAIT">GNUTLS_HEARTBEAT_WAIT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex2bin" title="gnutls_hex2bin ()">gnutls_hex2bin</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex-decode" title="gnutls_hex_decode ()">gnutls_hex_decode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex-decode2" title="gnutls_hex_decode2 ()">gnutls_hex_decode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex-encode" title="gnutls_hex_encode ()">gnutls_hex_encode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-hex-encode2" title="gnutls_hex_encode2 ()">gnutls_hex_encode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hkdf-expand" title="gnutls_hkdf_expand ()">gnutls_hkdf_expand</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hkdf-extract" title="gnutls_hkdf_extract ()">gnutls_hkdf_extract</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_hkdf_self_test, function in self-test
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac" title="gnutls_hmac ()">gnutls_hmac</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-copy" title="gnutls_hmac_copy ()">gnutls_hmac_copy</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-deinit" title="gnutls_hmac_deinit ()">gnutls_hmac_deinit</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-get-len" title="gnutls_hmac_get_len ()">gnutls_hmac_get_len</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t">gnutls_hmac_hd_t</a>, typedef in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-output" title="gnutls_hmac_output ()">gnutls_hmac_output</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-set-nonce" title="gnutls_hmac_set_nonce ()">gnutls_hmac_set_nonce</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-BOTH:CAPS" title="GNUTLS_HOOK_BOTH">GNUTLS_HOOK_BOTH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-POST:CAPS" title="GNUTLS_HOOK_POST">GNUTLS_HOOK_POST</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-PRE:CAPS" title="GNUTLS_HOOK_PRE">GNUTLS_HOOK_PRE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-IDNA-FORCE-2008:CAPS" title="GNUTLS_IDNA_FORCE_2008">GNUTLS_IDNA_FORCE_2008</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-idna-map" title="gnutls_idna_map ()">gnutls_idna_map</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-idna-reverse-map" title="gnutls_idna_reverse_map ()">gnutls_idna_reverse_map</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-INDEFINITE-TIMEOUT:CAPS" title="GNUTLS_INDEFINITE_TIMEOUT">GNUTLS_INDEFINITE_TIMEOUT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-info-access-what-t" title="enum gnutls_info_access_what_t">gnutls_info_access_what_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()">gnutls_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-init-flags-t" title="enum gnutls_init_flags_t">gnutls_init_flags_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_INT_TO_POINTER, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-is-secure-function" title="gnutls_is_secure_function ()">gnutls_is_secure_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_is_secure_memory, function in global
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-keygen-data-st" title="gnutls_keygen_data_st">gnutls_keygen_data_st</a>, struct in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-keygen-types-t" title="enum gnutls_keygen_types_t">gnutls_keygen_types_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-keyid-flags-t" title="enum gnutls_keyid_flags_t">gnutls_keyid_flags_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-keylog-func" title="gnutls_keylog_func ()">gnutls_keylog_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN">GNUTLS_KEY_CRL_SIGN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_DATA_ENCIPHERMENT">GNUTLS_KEY_DATA_ENCIPHERMENT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY">GNUTLS_KEY_DECIPHER_ONLY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE">GNUTLS_KEY_DIGITAL_SIGNATURE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY">GNUTLS_KEY_ENCIPHER_ONLY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-key-generate" title="gnutls_key_generate ()">gnutls_key_generate</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS" title="GNUTLS_KEY_KEY_AGREEMENT">GNUTLS_KEY_KEY_AGREEMENT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS" title="GNUTLS_KEY_KEY_CERT_SIGN">GNUTLS_KEY_KEY_CERT_SIGN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT">GNUTLS_KEY_KEY_ENCIPHERMENT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION">GNUTLS_KEY_NON_REPUDIATION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_key_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-ANY:CAPS" title="GNUTLS_KP_ANY">GNUTLS_KP_ANY</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS" title="GNUTLS_KP_CODE_SIGNING">GNUTLS_KP_CODE_SIGNING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-EMAIL-PROTECTION:CAPS" title="GNUTLS_KP_EMAIL_PROTECTION">GNUTLS_KP_EMAIL_PROTECTION</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-FLAG-DISALLOW-ANY:CAPS" title="GNUTLS_KP_FLAG_DISALLOW_ANY">GNUTLS_KP_FLAG_DISALLOW_ANY</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-IPSEC-IKE:CAPS" title="GNUTLS_KP_IPSEC_IKE">GNUTLS_KP_IPSEC_IKE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-MS-SMART-CARD-LOGON:CAPS" title="GNUTLS_KP_MS_SMART_CARD_LOGON">GNUTLS_KP_MS_SMART_CARD_LOGON</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-OCSP-SIGNING:CAPS" title="GNUTLS_KP_OCSP_SIGNING">GNUTLS_KP_OCSP_SIGNING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-TIME-STAMPING:CAPS" title="GNUTLS_KP_TIME_STAMPING">GNUTLS_KP_TIME_STAMPING</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-CLIENT:CAPS" title="GNUTLS_KP_TLS_WWW_CLIENT">GNUTLS_KP_TLS_WWW_CLIENT</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS" title="GNUTLS_KP_TLS_WWW_SERVER">GNUTLS_KP_TLS_WWW_SERVER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KU-PEER:CAPS" title="GNUTLS_KU_PEER">GNUTLS_KU_PEER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t">gnutls_kx_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-get" title="gnutls_kx_get ()">gnutls_kx_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_KX_INVALID, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-library-config-st" title="gnutls_library_config_st">gnutls_library_config_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_lib_state_t, enum in fips
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-load-file" title="gnutls_load_file ()">gnutls_load_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()">gnutls_log_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t">gnutls_mac_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-copy-func" title="gnutls_mac_copy_func ()">gnutls_mac_copy_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-deinit-func" title="gnutls_mac_deinit_func ()">gnutls_mac_deinit_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-fast-func" title="gnutls_mac_fast_func ()">gnutls_mac_fast_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_MAC_FLAG_ALLOW_INSECURE_REVERTIBLE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_MAC_FLAG_CONTINUOUS_MAC, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_MAC_FLAG_PREIMAGE_INSECURE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_MAC_FLAG_PREIMAGE_INSECURE_REVERTIBLE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-get" title="gnutls_mac_get ()">gnutls_mac_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-get-nonce-size" title="gnutls_mac_get_nonce_size ()">gnutls_mac_get_nonce_size</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-hash-func" title="gnutls_mac_hash_func ()">gnutls_mac_hash_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-init-func" title="gnutls_mac_init_func ()">gnutls_mac_init_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-output-func" title="gnutls_mac_output_func ()">gnutls_mac_output_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_mac_self_test, function in self-test
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-setkey-func" title="gnutls_mac_setkey_func ()">gnutls_mac_setkey_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-mac-setnonce-func" title="gnutls_mac_setnonce_func ()">gnutls_mac_setnonce_func</a>, user_function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAC-SHA:CAPS" title="GNUTLS_MAC_SHA">GNUTLS_MAC_SHA</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_MASTER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-ALGORITHM-NUM:CAPS" title="GNUTLS_MAX_ALGORITHM_NUM">GNUTLS_MAX_ALGORITHM_NUM</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_MAX_PK_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-MAX-QUALIFIERS:CAPS" title="GNUTLS_MAX_QUALIFIERS">GNUTLS_MAX_QUALIFIERS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID:CAPS" title="GNUTLS_MAX_SESSION_ID">GNUTLS_MAX_SESSION_ID</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID-SIZE:CAPS" title="GNUTLS_MAX_SESSION_ID_SIZE">GNUTLS_MAX_SESSION_ID_SIZE</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-memcmp" title="gnutls_memcmp ()">gnutls_memcmp</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-memset" title="gnutls_memset ()">gnutls_memset</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_2048_group_generator, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_2048_group_prime, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_2048_group_q, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_2048_key_bits, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_3072_group_generator, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_3072_group_prime, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_3072_group_q, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_3072_key_bits, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_4096_group_generator, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_4096_group_prime, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_4096_group_q, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_4096_key_bits, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_6144_group_generator, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_6144_group_prime, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_6144_group_q, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_6144_key_bits, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_8192_group_generator, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_8192_group_prime, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_8192_group_q, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_modp_8192_key_bits, variable in dh
+</dt>
+<dd></dd>
+<dt>
+gnutls_mutex_deinit, variable in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_mutex_init, variable in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_mutex_lock, variable in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_mutex_unlock, variable in locks
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-NAME-CONSTRAINTS-FLAG-APPEND:CAPS" title="GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND">GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_name_constraints_st, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+gnutls_nettle_backport_nettle_block16, union in block8
+</dt>
+<dd></dd>
+<dt>
+gnutls_nettle_backport_nettle_block8, union in block8
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-NONBLOCK:CAPS">GNUTLS_NONBLOCK</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-NO-EXTENSIONS:CAPS">GNUTLS_NO_EXTENSIONS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-NO-REPLAY-PROTECTION:CAPS">GNUTLS_NO_REPLAY_PROTECTION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-NO-SIGNAL:CAPS">GNUTLS_NO_SIGNAL</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-NO-TICKETS:CAPS">GNUTLS_NO_TICKETS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_cert_status_t, enum in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ocsp-data-st" title="gnutls_ocsp_data_st">gnutls_ocsp_data_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_OCSP_NONCE, macro in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_print_formats_t, enum in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_add_cert, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_add_cert_id, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_const_t, typedef in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_deinit, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_export, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_get_cert_id, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_get_extension, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_get_nonce, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_get_version, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_import, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_init, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_int, struct in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_print, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_randomize_nonce, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_set_extension, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_set_nonce, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_req_t, typedef in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_check_crt, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_const_t, typedef in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_deinit, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_export, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_export2, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_certs, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_extension, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_nonce, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_produced, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_responder, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_responder2, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_responder_raw_id, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_response, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_signature, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_signature_algorithm, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_single, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_status, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_get_version, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_OCSP_RESP_ID_DN, macro in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_OCSP_RESP_ID_KEY, macro in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_import, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_import2, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_init, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_int, struct in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_list_import2, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_print, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_status_t, enum in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_t, typedef in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_verify, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_resp_verify_direct, function in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ocsp-status-request-enable-client" title="gnutls_ocsp_status_request_enable_client ()">gnutls_ocsp_status_request_enable_client</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ocsp-status-request-get" title="gnutls_ocsp_status_request_get ()">gnutls_ocsp_status_request_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ocsp-status-request-get2" title="gnutls_ocsp_status_request_get2 ()">gnutls_ocsp_status_request_get2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-ocsp-status-request-is-checked" title="gnutls_ocsp_status_request_is_checked ()">gnutls_ocsp_status_request_is_checked</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_ocsp_verify_reason_t, enum in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-AD-CAISSUERS:CAPS" title="GNUTLS_OID_AD_CAISSUERS">GNUTLS_OID_AD_CAISSUERS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-AD-OCSP:CAPS" title="GNUTLS_OID_AD_OCSP">GNUTLS_OID_AD_OCSP</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-AIA:CAPS" title="GNUTLS_OID_AIA">GNUTLS_OID_AIA</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-DC:CAPS" title="GNUTLS_OID_LDAP_DC">GNUTLS_OID_LDAP_DC</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-UID:CAPS" title="GNUTLS_OID_LDAP_UID">GNUTLS_OID_LDAP_UID</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKCS9-EMAIL:CAPS" title="GNUTLS_OID_PKCS9_EMAIL">GNUTLS_OID_PKCS9_EMAIL</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP">GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE">GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_DATE_OF_BIRTH">GNUTLS_OID_PKIX_DATE_OF_BIRTH</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-GENDER:CAPS" title="GNUTLS_OID_PKIX_GENDER">GNUTLS_OID_PKIX_GENDER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_PLACE_OF_BIRTH">GNUTLS_OID_PKIX_PLACE_OF_BIRTH</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-oid-to-digest" title="gnutls_oid_to_digest ()">gnutls_oid_to_digest</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-COMMON-NAME:CAPS" title="GNUTLS_OID_X520_COMMON_NAME">GNUTLS_OID_X520_COMMON_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-COUNTRY-NAME:CAPS" title="GNUTLS_OID_X520_COUNTRY_NAME">GNUTLS_OID_X520_COUNTRY_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-DN-QUALIFIER:CAPS" title="GNUTLS_OID_X520_DN_QUALIFIER">GNUTLS_OID_X520_DN_QUALIFIER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS" title="GNUTLS_OID_X520_GENERATION_QUALIFIER">GNUTLS_OID_X520_GENERATION_QUALIFIER</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GIVEN-NAME:CAPS" title="GNUTLS_OID_X520_GIVEN_NAME">GNUTLS_OID_X520_GIVEN_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-INITIALS:CAPS" title="GNUTLS_OID_X520_INITIALS">GNUTLS_OID_X520_INITIALS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-LOCALITY-NAME:CAPS" title="GNUTLS_OID_X520_LOCALITY_NAME">GNUTLS_OID_X520_LOCALITY_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-NAME:CAPS" title="GNUTLS_OID_X520_NAME">GNUTLS_OID_X520_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME">GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATION_NAME">GNUTLS_OID_X520_ORGANIZATION_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-POSTALCODE:CAPS" title="GNUTLS_OID_X520_POSTALCODE">GNUTLS_OID_X520_POSTALCODE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-PSEUDONYM:CAPS" title="GNUTLS_OID_X520_PSEUDONYM">GNUTLS_OID_X520_PSEUDONYM</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS" title="GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME">GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-SURNAME:CAPS" title="GNUTLS_OID_X520_SURNAME">GNUTLS_OID_X520_SURNAME</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-TITLE:CAPS" title="GNUTLS_OID_X520_TITLE">GNUTLS_OID_X520_TITLE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_ONCE, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_once, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_once_t, typedef in locks
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-check-email" title="gnutls_openpgp_crt_check_email ()">gnutls_openpgp_crt_check_email</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname" title="gnutls_openpgp_crt_check_hostname ()">gnutls_openpgp_crt_check_hostname</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname2" title="gnutls_openpgp_crt_check_hostname2 ()">gnutls_openpgp_crt_check_hostname2</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-deinit" title="gnutls_openpgp_crt_deinit ()">gnutls_openpgp_crt_deinit</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-export" title="gnutls_openpgp_crt_export ()">gnutls_openpgp_crt_export</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-export2" title="gnutls_openpgp_crt_export2 ()">gnutls_openpgp_crt_export2</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t">gnutls_openpgp_crt_fmt_t</a>, enum in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()">gnutls_openpgp_crt_get_auth_subkey</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time" title="gnutls_openpgp_crt_get_creation_time ()">gnutls_openpgp_crt_get_creation_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time" title="gnutls_openpgp_crt_get_expiration_time ()">gnutls_openpgp_crt_get_expiration_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-fingerprint" title="gnutls_openpgp_crt_get_fingerprint ()">gnutls_openpgp_crt_get_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_crt_get_id, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id" title="gnutls_openpgp_crt_get_key_id ()">gnutls_openpgp_crt_get_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-usage" title="gnutls_openpgp_crt_get_key_usage ()">gnutls_openpgp_crt_get_key_usage</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-name" title="gnutls_openpgp_crt_get_name ()">gnutls_openpgp_crt_get_name</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm" title="gnutls_openpgp_crt_get_pk_algorithm ()">gnutls_openpgp_crt_get_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw" title="gnutls_openpgp_crt_get_pk_dsa_raw ()">gnutls_openpgp_crt_get_pk_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw" title="gnutls_openpgp_crt_get_pk_rsa_raw ()">gnutls_openpgp_crt_get_pk_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id" title="gnutls_openpgp_crt_get_preferred_key_id ()">gnutls_openpgp_crt_get_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status" title="gnutls_openpgp_crt_get_revoked_status ()">gnutls_openpgp_crt_get_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count" title="gnutls_openpgp_crt_get_subkey_count ()">gnutls_openpgp_crt_get_subkey_count</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time" title="gnutls_openpgp_crt_get_subkey_creation_time ()">gnutls_openpgp_crt_get_subkey_creation_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time" title="gnutls_openpgp_crt_get_subkey_expiration_time ()">gnutls_openpgp_crt_get_subkey_expiration_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint" title="gnutls_openpgp_crt_get_subkey_fingerprint ()">gnutls_openpgp_crt_get_subkey_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-id" title="gnutls_openpgp_crt_get_subkey_id ()">gnutls_openpgp_crt_get_subkey_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx" title="gnutls_openpgp_crt_get_subkey_idx ()">gnutls_openpgp_crt_get_subkey_idx</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm" title="gnutls_openpgp_crt_get_subkey_pk_algorithm ()">gnutls_openpgp_crt_get_subkey_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status" title="gnutls_openpgp_crt_get_subkey_revoked_status ()">gnutls_openpgp_crt_get_subkey_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage" title="gnutls_openpgp_crt_get_subkey_usage ()">gnutls_openpgp_crt_get_subkey_usage</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-version" title="gnutls_openpgp_crt_get_version ()">gnutls_openpgp_crt_get_version</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-import" title="gnutls_openpgp_crt_import ()">gnutls_openpgp_crt_import</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-init" title="gnutls_openpgp_crt_init ()">gnutls_openpgp_crt_init</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-int" title="struct gnutls_openpgp_crt_int">gnutls_openpgp_crt_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-print" title="gnutls_openpgp_crt_print ()">gnutls_openpgp_crt_print</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" title="gnutls_openpgp_crt_set_preferred_key_id ()">gnutls_openpgp_crt_set_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-status-t" title="enum gnutls_openpgp_crt_status_t">gnutls_openpgp_crt_status_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t">gnutls_openpgp_crt_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-ring" title="gnutls_openpgp_crt_verify_ring ()">gnutls_openpgp_crt_verify_ring</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-verify-self" title="gnutls_openpgp_crt_verify_self ()">gnutls_openpgp_crt_verify_self</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_OPENPGP_KEY, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#GNUTLS-OPENPGP-KEYID-SIZE:CAPS" title="GNUTLS_OPENPGP_KEYID_SIZE">GNUTLS_OPENPGP_KEYID_SIZE</a>, macro in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-check-id" title="gnutls_openpgp_keyring_check_id ()">gnutls_openpgp_keyring_check_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-deinit" title="gnutls_openpgp_keyring_deinit ()">gnutls_openpgp_keyring_deinit</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt" title="gnutls_openpgp_keyring_get_crt ()">gnutls_openpgp_keyring_get_crt</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt-count" title="gnutls_openpgp_keyring_get_crt_count ()">gnutls_openpgp_keyring_get_crt_count</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-import" title="gnutls_openpgp_keyring_import ()">gnutls_openpgp_keyring_import</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-keyring-init" title="gnutls_openpgp_keyring_init ()">gnutls_openpgp_keyring_init</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-int" title="struct gnutls_openpgp_keyring_int">gnutls_openpgp_keyring_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t">gnutls_openpgp_keyring_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_check_hostname, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_deinit, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_export, macro in compat
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_OPENPGP_KEY_FINGERPRINT, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_creation_time, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_expiration_time, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_fingerprint, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_id, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_key_usage, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_name, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_pk_algorithm, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_get_version, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_import, macro in compat
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_key_init, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#GNUTLS-OPENPGP-MASTER-KEYID-IDX:CAPS" title="GNUTLS_OPENPGP_MASTER_KEYID_IDX">GNUTLS_OPENPGP_MASTER_KEYID_IDX</a>, macro in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-deinit" title="gnutls_openpgp_privkey_deinit ()">gnutls_openpgp_privkey_deinit</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export" title="gnutls_openpgp_privkey_export ()">gnutls_openpgp_privkey_export</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export2" title="gnutls_openpgp_privkey_export2 ()">gnutls_openpgp_privkey_export2</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw" title="gnutls_openpgp_privkey_export_dsa_raw ()">gnutls_openpgp_privkey_export_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw" title="gnutls_openpgp_privkey_export_rsa_raw ()">gnutls_openpgp_privkey_export_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw" title="gnutls_openpgp_privkey_export_subkey_dsa_raw ()">gnutls_openpgp_privkey_export_subkey_dsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw" title="gnutls_openpgp_privkey_export_subkey_rsa_raw ()">gnutls_openpgp_privkey_export_subkey_rsa_raw</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint" title="gnutls_openpgp_privkey_get_fingerprint ()">gnutls_openpgp_privkey_get_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id" title="gnutls_openpgp_privkey_get_key_id ()">gnutls_openpgp_privkey_get_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm" title="gnutls_openpgp_privkey_get_pk_algorithm ()">gnutls_openpgp_privkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id" title="gnutls_openpgp_privkey_get_preferred_key_id ()">gnutls_openpgp_privkey_get_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status" title="gnutls_openpgp_privkey_get_revoked_status ()">gnutls_openpgp_privkey_get_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count" title="gnutls_openpgp_privkey_get_subkey_count ()">gnutls_openpgp_privkey_get_subkey_count</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time" title="gnutls_openpgp_privkey_get_subkey_creation_time ()">gnutls_openpgp_privkey_get_subkey_creation_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time" title="gnutls_openpgp_privkey_get_subkey_expiration_time ()">gnutls_openpgp_privkey_get_subkey_expiration_time</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint" title="gnutls_openpgp_privkey_get_subkey_fingerprint ()">gnutls_openpgp_privkey_get_subkey_fingerprint</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id" title="gnutls_openpgp_privkey_get_subkey_id ()">gnutls_openpgp_privkey_get_subkey_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx" title="gnutls_openpgp_privkey_get_subkey_idx ()">gnutls_openpgp_privkey_get_subkey_idx</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm" title="gnutls_openpgp_privkey_get_subkey_pk_algorithm ()">gnutls_openpgp_privkey_get_subkey_pk_algorithm</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status" title="gnutls_openpgp_privkey_get_subkey_revoked_status ()">gnutls_openpgp_privkey_get_subkey_revoked_status</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-import" title="gnutls_openpgp_privkey_import ()">gnutls_openpgp_privkey_import</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-init" title="gnutls_openpgp_privkey_init ()">gnutls_openpgp_privkey_init</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-int" title="struct gnutls_openpgp_privkey_int">gnutls_openpgp_privkey_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-sec-param" title="gnutls_openpgp_privkey_sec_param ()">gnutls_openpgp_privkey_sec_param</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id" title="gnutls_openpgp_privkey_set_preferred_key_id ()">gnutls_openpgp_privkey_set_preferred_key_id</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_privkey_sign_hash, function in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t">gnutls_openpgp_privkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()">gnutls_openpgp_recv_key_func</a>, user_function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-openpgp-send-cert" title="gnutls_openpgp_send_cert ()">gnutls_openpgp_send_cert</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_openpgp_send_key, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()">gnutls_openpgp_set_recv_key_function</a>, function in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-openpgp.html#GNUTLS-OPENPGP-V4-FINGERPRINT-SIZE:CAPS" title="GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE">GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE</a>, macro in <a class="link" href="gnutls-openpgp.html" title="openpgp">openpgp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-packet-deinit" title="gnutls_packet_deinit ()">gnutls_packet_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-packet-get" title="gnutls_packet_get ()">gnutls_packet_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-packet-t" title="gnutls_packet_t">gnutls_packet_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-params-st" title="gnutls_params_st">gnutls_params_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-params-type-t" title="enum gnutls_params_type_t">gnutls_params_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PATH_MAX, macro in system
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-pbkdf2" title="gnutls_pbkdf2 ()">gnutls_pbkdf2</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_pbkdf2_self_test, function in self-test
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()">gnutls_pcert_deinit</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-export-openpgp" title="gnutls_pcert_export_openpgp ()">gnutls_pcert_export_openpgp</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-export-x509" title="gnutls_pcert_export_x509 ()">gnutls_pcert_export_x509</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-import-openpgp" title="gnutls_pcert_import_openpgp ()">gnutls_pcert_import_openpgp</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-import-openpgp-raw" title="gnutls_pcert_import_openpgp_raw ()">gnutls_pcert_import_openpgp_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-import-rawpk" title="gnutls_pcert_import_rawpk ()">gnutls_pcert_import_rawpk</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-import-rawpk-raw" title="gnutls_pcert_import_rawpk_raw ()">gnutls_pcert_import_rawpk_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-import-x509" title="gnutls_pcert_import_x509 ()">gnutls_pcert_import_x509</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-import-x509-list" title="gnutls_pcert_import_x509_list ()">gnutls_pcert_import_x509_list</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-import-x509-raw" title="gnutls_pcert_import_x509_raw ()">gnutls_pcert_import_x509_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-list-import-x509-file" title="gnutls_pcert_list_import_x509_file ()">gnutls_pcert_list_import_x509_file</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-list-import-x509-raw" title="gnutls_pcert_list_import_x509_raw ()">gnutls_pcert_list_import_x509_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PCERT-NO-CERT:CAPS" title="GNUTLS_PCERT_NO_CERT">GNUTLS_PCERT_NO_CERT</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st">gnutls_pcert_st</a>, struct in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode" title="gnutls_pem_base64_decode ()">gnutls_pem_base64_decode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode2" title="gnutls_pem_base64_decode2 ()">gnutls_pem_base64_decode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc" title="gnutls_pem_base64_decode_alloc">gnutls_pem_base64_decode_alloc</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode" title="gnutls_pem_base64_encode ()">gnutls_pem_base64_encode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode2" title="gnutls_pem_base64_encode2 ()">gnutls_pem_base64_encode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc" title="gnutls_pem_base64_encode_alloc">gnutls_pem_base64_encode_alloc</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-perror" title="gnutls_perror ()">gnutls_perror</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()">gnutls_pin_callback_t</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pin-flag-t" title="enum gnutls_pin_flag_t">gnutls_pin_flag_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" title="gnutls_pkcs11_add_provider ()">gnutls_pkcs11_add_provider</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-attached-extension" title="gnutls_pkcs11_copy_attached_extension ()">gnutls_pkcs11_copy_attached_extension</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-pubkey" title="gnutls_pkcs11_copy_pubkey ()">gnutls_pkcs11_copy_pubkey</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-secret-key" title="gnutls_pkcs11_copy_secret_key ()">gnutls_pkcs11_copy_secret_key</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt" title="gnutls_pkcs11_copy_x509_crt ()">gnutls_pkcs11_copy_x509_crt</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt2" title="gnutls_pkcs11_copy_x509_crt2 ()">gnutls_pkcs11_copy_x509_crt2</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey" title="gnutls_pkcs11_copy_x509_privkey ()">gnutls_pkcs11_copy_x509_privkey</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey2" title="gnutls_pkcs11_copy_x509_privkey2 ()">gnutls_pkcs11_copy_x509_privkey2</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-crt-is-known" title="gnutls_pkcs11_crt_is_known ()">gnutls_pkcs11_crt_is_known</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-deinit" title="gnutls_pkcs11_deinit ()">gnutls_pkcs11_deinit</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-delete-url" title="gnutls_pkcs11_delete_url ()">gnutls_pkcs11_delete_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS" title="GNUTLS_PKCS11_FLAG_AUTO">GNUTLS_PKCS11_FLAG_AUTO</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS" title="GNUTLS_PKCS11_FLAG_MANUAL">GNUTLS_PKCS11_FLAG_MANUAL</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-get-pin-function" title="gnutls_pkcs11_get_pin_function ()">gnutls_pkcs11_get_pin_function</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer" title="gnutls_pkcs11_get_raw_issuer ()">gnutls_pkcs11_get_raw_issuer</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-init" title="gnutls_pkcs11_init ()">gnutls_pkcs11_init</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t" title="gnutls_pkcs11_obj_attr_t">gnutls_pkcs11_obj_attr_t</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" title="gnutls_pkcs11_obj_deinit ()">gnutls_pkcs11_obj_deinit</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export" title="gnutls_pkcs11_obj_export ()">gnutls_pkcs11_obj_export</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export2" title="gnutls_pkcs11_obj_export2 ()">gnutls_pkcs11_obj_export2</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export3" title="gnutls_pkcs11_obj_export3 ()">gnutls_pkcs11_obj_export3</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url" title="gnutls_pkcs11_obj_export_url ()">gnutls_pkcs11_obj_export_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-flags" title="enum gnutls_pkcs11_obj_flags">gnutls_pkcs11_obj_flags</a>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PKCS11_OBJ_FLAG_EXPECT_CERT, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PRIVKEY, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PKCS11_OBJ_FLAG_EXPECT_PUBKEY, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PKCS11_OBJ_FLAG_FIRST_CLOSE_MATCH, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-exts" title="gnutls_pkcs11_obj_get_exts ()">gnutls_pkcs11_obj_get_exts</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-flags" title="gnutls_pkcs11_obj_get_flags ()">gnutls_pkcs11_obj_get_flags</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info" title="gnutls_pkcs11_obj_get_info ()">gnutls_pkcs11_obj_get_info</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-ptr" title="gnutls_pkcs11_obj_get_ptr ()">gnutls_pkcs11_obj_get_ptr</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url" title="gnutls_pkcs11_obj_import_url ()">gnutls_pkcs11_obj_import_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-init" title="gnutls_pkcs11_obj_init ()">gnutls_pkcs11_obj_init</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-set-info" title="gnutls_pkcs11_obj_set_info ()">gnutls_pkcs11_obj_set_info</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-st" title="struct gnutls_pkcs11_obj_st">gnutls_pkcs11_obj_st</a>, struct in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-obj-t" title="gnutls_pkcs11_obj_t">gnutls_pkcs11_obj_t</a>, typedef in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-CONTEXT-SPECIFIC:CAPS" title="GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC">GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-COUNT-LOW:CAPS" title="GNUTLS_PKCS11_PIN_COUNT_LOW">GNUTLS_PKCS11_PIN_COUNT_LOW</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-FINAL-TRY:CAPS" title="GNUTLS_PKCS11_PIN_FINAL_TRY">GNUTLS_PKCS11_PIN_FINAL_TRY</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-SO:CAPS" title="GNUTLS_PKCS11_PIN_SO">GNUTLS_PKCS11_PIN_SO</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-USER:CAPS" title="GNUTLS_PKCS11_PIN_USER">GNUTLS_PKCS11_PIN_USER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-WRONG:CAPS" title="GNUTLS_PKCS11_PIN_WRONG">GNUTLS_PKCS11_PIN_WRONG</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-cpy" title="gnutls_pkcs11_privkey_cpy ()">gnutls_pkcs11_privkey_cpy</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit" title="gnutls_pkcs11_privkey_deinit ()">gnutls_pkcs11_privkey_deinit</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-pubkey" title="gnutls_pkcs11_privkey_export_pubkey ()">gnutls_pkcs11_privkey_export_pubkey</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url" title="gnutls_pkcs11_privkey_export_url ()">gnutls_pkcs11_privkey_export_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate" title="gnutls_pkcs11_privkey_generate ()">gnutls_pkcs11_privkey_generate</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate2" title="gnutls_pkcs11_privkey_generate2 ()">gnutls_pkcs11_privkey_generate2</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate3" title="gnutls_pkcs11_privkey_generate3 ()">gnutls_pkcs11_privkey_generate3</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info" title="gnutls_pkcs11_privkey_get_info ()">gnutls_pkcs11_privkey_get_info</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url" title="gnutls_pkcs11_privkey_import_url ()">gnutls_pkcs11_privkey_import_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init" title="gnutls_pkcs11_privkey_init ()">gnutls_pkcs11_privkey_init</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-st" title="struct gnutls_pkcs11_privkey_st">gnutls_pkcs11_privkey_st</a>, struct in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-status" title="gnutls_pkcs11_privkey_status ()">gnutls_pkcs11_privkey_status</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t">gnutls_pkcs11_privkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-reinit" title="gnutls_pkcs11_reinit ()">gnutls_pkcs11_reinit</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" title="gnutls_pkcs11_set_pin_function ()">gnutls_pkcs11_set_pin_function</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" title="gnutls_pkcs11_set_token_function ()">gnutls_pkcs11_set_token_function</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" title="gnutls_pkcs11_token_callback_t ()">gnutls_pkcs11_token_callback_t</a>, user_function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-check-mechanism" title="gnutls_pkcs11_token_check_mechanism ()">gnutls_pkcs11_token_check_mechanism</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags" title="gnutls_pkcs11_token_get_flags ()">gnutls_pkcs11_token_get_flags</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info" title="gnutls_pkcs11_token_get_info ()">gnutls_pkcs11_token_get_info</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-mechanism" title="gnutls_pkcs11_token_get_mechanism ()">gnutls_pkcs11_token_get_mechanism</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-ptr" title="gnutls_pkcs11_token_get_ptr ()">gnutls_pkcs11_token_get_ptr</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-random" title="gnutls_pkcs11_token_get_random ()">gnutls_pkcs11_token_get_random</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url" title="gnutls_pkcs11_token_get_url ()">gnutls_pkcs11_token_get_url</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS" title="GNUTLS_PKCS11_TOKEN_HW">GNUTLS_PKCS11_TOKEN_HW</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-init" title="gnutls_pkcs11_token_init ()">gnutls_pkcs11_token_init</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-INITIALIZED:CAPS" title="GNUTLS_PKCS11_TOKEN_INITIALIZED">GNUTLS_PKCS11_TOKEN_INITIALIZED</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-RNG:CAPS" title="GNUTLS_PKCS11_TOKEN_RNG">GNUTLS_PKCS11_TOKEN_RNG</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-token-set-pin" title="gnutls_pkcs11_token_set_pin ()">gnutls_pkcs11_token_set_pin</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-TRUSTED:CAPS" title="GNUTLS_PKCS11_TOKEN_TRUSTED">GNUTLS_PKCS11_TOKEN_TRUSTED</a>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name" title="gnutls_pkcs11_type_get_name ()">gnutls_pkcs11_type_get_name</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, enum in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-decrypt" title="gnutls_pkcs12_bag_decrypt ()">gnutls_pkcs12_bag_decrypt</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-deinit" title="gnutls_pkcs12_bag_deinit ()">gnutls_pkcs12_bag_deinit</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-encrypt" title="gnutls_pkcs12_bag_encrypt ()">gnutls_pkcs12_bag_encrypt</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-enc-info" title="gnutls_pkcs12_bag_enc_info ()">gnutls_pkcs12_bag_enc_info</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-count" title="gnutls_pkcs12_bag_get_count ()">gnutls_pkcs12_bag_get_count</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-data" title="gnutls_pkcs12_bag_get_data ()">gnutls_pkcs12_bag_get_data</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-friendly-name" title="gnutls_pkcs12_bag_get_friendly_name ()">gnutls_pkcs12_bag_get_friendly_name</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-key-id" title="gnutls_pkcs12_bag_get_key_id ()">gnutls_pkcs12_bag_get_key_id</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-init" title="gnutls_pkcs12_bag_init ()">gnutls_pkcs12_bag_init</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-int" title="gnutls_pkcs12_bag_int">gnutls_pkcs12_bag_int</a>, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crl" title="gnutls_pkcs12_bag_set_crl ()">gnutls_pkcs12_bag_set_crl</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crt" title="gnutls_pkcs12_bag_set_crt ()">gnutls_pkcs12_bag_set_crt</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()">gnutls_pkcs12_bag_set_data</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-friendly-name" title="gnutls_pkcs12_bag_set_friendly_name ()">gnutls_pkcs12_bag_set_friendly_name</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-key-id" title="gnutls_pkcs12_bag_set_key_id ()">gnutls_pkcs12_bag_set_key_id</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-privkey" title="gnutls_pkcs12_bag_set_privkey ()">gnutls_pkcs12_bag_set_privkey</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t">gnutls_pkcs12_bag_t</a>, typedef in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t">gnutls_pkcs12_bag_type_t</a>, enum in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-deinit" title="gnutls_pkcs12_deinit ()">gnutls_pkcs12_deinit</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-export" title="gnutls_pkcs12_export ()">gnutls_pkcs12_export</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-export2" title="gnutls_pkcs12_export2 ()">gnutls_pkcs12_export2</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-generate-mac" title="gnutls_pkcs12_generate_mac ()">gnutls_pkcs12_generate_mac</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-generate-mac2" title="gnutls_pkcs12_generate_mac2 ()">gnutls_pkcs12_generate_mac2</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-get-bag" title="gnutls_pkcs12_get_bag ()">gnutls_pkcs12_get_bag</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-import" title="gnutls_pkcs12_import ()">gnutls_pkcs12_import</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-init" title="gnutls_pkcs12_init ()">gnutls_pkcs12_init</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-int" title="gnutls_pkcs12_int">gnutls_pkcs12_int</a>, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-mac-info" title="gnutls_pkcs12_mac_info ()">gnutls_pkcs12_mac_info</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-set-bag" title="gnutls_pkcs12_set_bag ()">gnutls_pkcs12_set_bag</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-simple-parse" title="gnutls_pkcs12_simple_parse ()">gnutls_pkcs12_simple_parse</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#GNUTLS-PKCS12-SP-INCLUDE-SELF-SIGNED:CAPS" title="GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED">GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED</a>, macro in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t">gnutls_pkcs12_t</a>, typedef in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-verify-mac" title="gnutls_pkcs12_verify_mac ()">gnutls_pkcs12_verify_mac</a>, function in <a class="link" href="gnutls-pkcs12.html" title="pkcs12">pkcs12</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_add_attr, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_attrs_deinit, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_attrs_st, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_attrs_t, typedef in pkcs7
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PKCS7_ATTR_ENCODE_OCTET_STRING, macro in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_deinit, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_delete_crl, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_delete_crt, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PKCS7_EDATA_GET_RAW, macro in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_export, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_export2, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_attr, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_crl_count, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_crl_raw, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_crl_raw2, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_crt_count, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_crt_raw, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_crt_raw2, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_embedded_data, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_embedded_data_oid, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_signature_count, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_get_signature_info, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_import, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_init, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_int, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_print, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_print_signature_info, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_set_crl, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_set_crl_raw, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_set_crt, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_set_crt_raw, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_sign, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_signature_info_deinit, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_signature_info_st, struct in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_sign_flags, enum in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_t, typedef in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_verify, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+gnutls_pkcs7_verify_direct, function in pkcs7
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs8-info" title="gnutls_pkcs8_info ()">gnutls_pkcs8_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-PLAIN:CAPS" title="GNUTLS_PKCS8_PLAIN">GNUTLS_PKCS8_PLAIN</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS" title="GNUTLS_PKCS8_USE_PKCS12_3DES">GNUTLS_PKCS8_USE_PKCS12_3DES</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS" title="GNUTLS_PKCS8_USE_PKCS12_ARCFOUR">GNUTLS_PKCS8_USE_PKCS12_ARCFOUR</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS" title="GNUTLS_PKCS8_USE_PKCS12_RC2_40">GNUTLS_PKCS8_USE_PKCS12_RC2_40</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-CIPHER-MASK:CAPS" title="GNUTLS_PKCS_CIPHER_MASK()">GNUTLS_PKCS_CIPHER_MASK</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t">gnutls_pkcs_encrypt_flags_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs-schema-get-name" title="gnutls_pkcs_schema_get_name ()">gnutls_pkcs_schema_get_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-pkcs-schema-get-oid" title="gnutls_pkcs_schema_get_oid ()">gnutls_pkcs_schema_get_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-3DES:CAPS" title="GNUTLS_PKCS_USE_PBES2_3DES">GNUTLS_PKCS_USE_PBES2_3DES</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-128:CAPS" title="GNUTLS_PKCS_USE_PBES2_AES_128">GNUTLS_PKCS_USE_PBES2_AES_128</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-192:CAPS" title="GNUTLS_PKCS_USE_PBES2_AES_192">GNUTLS_PKCS_USE_PBES2_AES_192</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-256:CAPS" title="GNUTLS_PKCS_USE_PBES2_AES_256">GNUTLS_PKCS_USE_PBES2_AES_256</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPA:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPA">GNUTLS_PKCS_USE_PBES2_GOST_CPA</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPB:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPB">GNUTLS_PKCS_USE_PBES2_GOST_CPB</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPC:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPC">GNUTLS_PKCS_USE_PBES2_GOST_CPC</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPD:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPD">GNUTLS_PKCS_USE_PBES2_GOST_CPD</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-TC26Z:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_TC26Z">GNUTLS_PKCS_USE_PBES2_GOST_TC26Z</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-3DES:CAPS" title="GNUTLS_PKCS_USE_PKCS12_3DES">GNUTLS_PKCS_USE_PKCS12_3DES</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS" title="GNUTLS_PKCS_USE_PKCS12_ARCFOUR">GNUTLS_PKCS_USE_PKCS12_ARCFOUR</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS" title="GNUTLS_PKCS_USE_PKCS12_RC2_40">GNUTLS_PKCS_USE_PKCS12_RC2_40</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-get-name" title="gnutls_pk_algorithm_get_name ()">gnutls_pk_algorithm_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t">gnutls_pk_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PK_ANY, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-bits-to-sec-param" title="gnutls_pk_bits_to_sec_param ()">gnutls_pk_bits_to_sec_param</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PK-EC:CAPS" title="GNUTLS_PK_EC">GNUTLS_PK_EC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PK-ECC:CAPS" title="GNUTLS_PK_ECC">GNUTLS_PK_ECC</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PK-ECDHX:CAPS" title="GNUTLS_PK_ECDHX">GNUTLS_PK_ECDHX</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_pk_flag_t, enum in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_PK_NONE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+gnutls_pk_params_clear, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_pk_params_init, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_pk_params_release, function in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_pk_params_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gnutls_pk_self_test, function in self-test
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_POINTER_TO_INT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-prf" title="gnutls_prf ()">gnutls_prf</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-prf-early" title="gnutls_prf_early ()">gnutls_prf_early</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-prf-hash-get" title="gnutls_prf_hash_get ()">gnutls_prf_hash_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-prf-raw" title="gnutls_prf_raw ()">gnutls_prf_raw</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-prf-rfc5705" title="gnutls_prf_rfc5705 ()">gnutls_prf_rfc5705</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-certificate-type-list" title="gnutls_priority_certificate_type_list ()">gnutls_priority_certificate_type_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-certificate-type-list2" title="gnutls_priority_certificate_type_list2 ()">gnutls_priority_certificate_type_list2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-cipher-list" title="gnutls_priority_cipher_list ()">gnutls_priority_cipher_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_priority_compression_list, function in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-deinit" title="gnutls_priority_deinit ()">gnutls_priority_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-ecc-curve-list" title="gnutls_priority_ecc_curve_list ()">gnutls_priority_ecc_curve_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-get-cipher-suite-index" title="gnutls_priority_get_cipher_suite_index ()">gnutls_priority_get_cipher_suite_index</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-group-list" title="gnutls_priority_group_list ()">gnutls_priority_group_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-init" title="gnutls_priority_init ()">gnutls_priority_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-init2" title="gnutls_priority_init2 ()">gnutls_priority_init2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-INIT-DEF-APPEND:CAPS" title="GNUTLS_PRIORITY_INIT_DEF_APPEND">GNUTLS_PRIORITY_INIT_DEF_APPEND</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-kx-list" title="gnutls_priority_kx_list ()">gnutls_priority_kx_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-LIST-INIT-KEYWORDS:CAPS" title="GNUTLS_PRIORITY_LIST_INIT_KEYWORDS">GNUTLS_PRIORITY_LIST_INIT_KEYWORDS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-LIST-SPECIAL:CAPS" title="GNUTLS_PRIORITY_LIST_SPECIAL">GNUTLS_PRIORITY_LIST_SPECIAL</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-mac-list" title="gnutls_priority_mac_list ()">gnutls_priority_mac_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-protocol-list" title="gnutls_priority_protocol_list ()">gnutls_priority_protocol_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-set" title="gnutls_priority_set ()">gnutls_priority_set</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()">gnutls_priority_set_direct</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-sign-list" title="gnutls_priority_sign_list ()">gnutls_priority_sign_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-st" title="struct gnutls_priority_st">gnutls_priority_st</a>, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-string-list" title="gnutls_priority_string_list ()">gnutls_priority_string_list</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t">gnutls_priority_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-data" title="gnutls_privkey_decrypt_data ()">gnutls_privkey_decrypt_data</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-data2" title="gnutls_privkey_decrypt_data2 ()">gnutls_privkey_decrypt_data2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func" title="gnutls_privkey_decrypt_func ()">gnutls_privkey_decrypt_func</a>, user_function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func2" title="gnutls_privkey_decrypt_func2 ()">gnutls_privkey_decrypt_func2</a>, user_function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit" title="gnutls_privkey_deinit ()">gnutls_privkey_deinit</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit-func" title="gnutls_privkey_deinit_func ()">gnutls_privkey_deinit_func</a>, user_function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-dsa-raw" title="gnutls_privkey_export_dsa_raw ()">gnutls_privkey_export_dsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-dsa-raw2" title="gnutls_privkey_export_dsa_raw2 ()">gnutls_privkey_export_dsa_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-ecc-raw" title="gnutls_privkey_export_ecc_raw ()">gnutls_privkey_export_ecc_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-ecc-raw2" title="gnutls_privkey_export_ecc_raw2 ()">gnutls_privkey_export_ecc_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-gost-raw2" title="gnutls_privkey_export_gost_raw2 ()">gnutls_privkey_export_gost_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-openpgp" title="gnutls_privkey_export_openpgp ()">gnutls_privkey_export_openpgp</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-pkcs11" title="gnutls_privkey_export_pkcs11 ()">gnutls_privkey_export_pkcs11</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-rsa-raw" title="gnutls_privkey_export_rsa_raw ()">gnutls_privkey_export_rsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-rsa-raw2" title="gnutls_privkey_export_rsa_raw2 ()">gnutls_privkey_export_rsa_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-export-x509" title="gnutls_privkey_export_x509 ()">gnutls_privkey_export_x509</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t">gnutls_privkey_flags_t</a>, enum in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-generate" title="gnutls_privkey_generate ()">gnutls_privkey_generate</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-generate2" title="gnutls_privkey_generate2 ()">gnutls_privkey_generate2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm" title="gnutls_privkey_get_pk_algorithm ()">gnutls_privkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-get-seed" title="gnutls_privkey_get_seed ()">gnutls_privkey_get_seed</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-get-spki" title="gnutls_privkey_get_spki ()">gnutls_privkey_get_spki</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-dsa-raw" title="gnutls_privkey_import_dsa_raw ()">gnutls_privkey_import_dsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ecc-raw" title="gnutls_privkey_import_ecc_raw ()">gnutls_privkey_import_ecc_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ext" title="gnutls_privkey_import_ext ()">gnutls_privkey_import_ext</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ext2" title="gnutls_privkey_import_ext2 ()">gnutls_privkey_import_ext2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ext3" title="gnutls_privkey_import_ext3 ()">gnutls_privkey_import_ext3</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ext4" title="gnutls_privkey_import_ext4 ()">gnutls_privkey_import_ext4</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-gost-raw" title="gnutls_privkey_import_gost_raw ()">gnutls_privkey_import_gost_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-openpgp" title="gnutls_privkey_import_openpgp ()">gnutls_privkey_import_openpgp</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-openpgp-raw" title="gnutls_privkey_import_openpgp_raw ()">gnutls_privkey_import_openpgp_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-pkcs11" title="gnutls_privkey_import_pkcs11 ()">gnutls_privkey_import_pkcs11</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-pkcs11-url" title="gnutls_privkey_import_pkcs11_url ()">gnutls_privkey_import_pkcs11_url</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-rsa-raw" title="gnutls_privkey_import_rsa_raw ()">gnutls_privkey_import_rsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-tpm-raw" title="gnutls_privkey_import_tpm_raw ()">gnutls_privkey_import_tpm_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-tpm-url" title="gnutls_privkey_import_tpm_url ()">gnutls_privkey_import_tpm_url</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-url" title="gnutls_privkey_import_url ()">gnutls_privkey_import_url</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_privkey_import_url_func, user_function in urls
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-x509" title="gnutls_privkey_import_x509 ()">gnutls_privkey_import_x509</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-x509-raw" title="gnutls_privkey_import_x509_raw ()">gnutls_privkey_import_x509_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-info-func" title="gnutls_privkey_info_func ()">gnutls_privkey_info_func</a>, user_function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-HAVE-SIGN-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO">GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_PK_ALGO">GNUTLS_PRIVKEY_INFO_PK_ALGO</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO-BITS:CAPS" title="GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS">GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-SIGN-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_SIGN_ALGO">GNUTLS_PRIVKEY_INFO_SIGN_ALGO</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-init" title="gnutls_privkey_init ()">gnutls_privkey_init</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_privkey_pk_params_func, user_function in abstract_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-set-flags" title="gnutls_privkey_set_flags ()">gnutls_privkey_set_flags</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-set-pin-function" title="gnutls_privkey_set_pin_function ()">gnutls_privkey_set_pin_function</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-set-spki" title="gnutls_privkey_set_spki ()">gnutls_privkey_set_spki</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()">gnutls_privkey_sign_data</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data2" title="gnutls_privkey_sign_data2 ()">gnutls_privkey_sign_data2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data-func" title="gnutls_privkey_sign_data_func ()">gnutls_privkey_sign_data_func</a>, user_function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-func" title="gnutls_privkey_sign_func ()">gnutls_privkey_sign_func</a>, user_function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()">gnutls_privkey_sign_hash</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash2" title="gnutls_privkey_sign_hash2 ()">gnutls_privkey_sign_hash2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash-func" title="gnutls_privkey_sign_hash_func ()">gnutls_privkey_sign_hash_func</a>, user_function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-raw-data" title="gnutls_privkey_sign_raw_data()">gnutls_privkey_sign_raw_data</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-st" title="struct gnutls_privkey_st">gnutls_privkey_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-status" title="gnutls_privkey_status ()">gnutls_privkey_status</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t">gnutls_privkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-type-t" title="enum gnutls_privkey_type_t">gnutls_privkey_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-verify-params" title="gnutls_privkey_verify_params ()">gnutls_privkey_verify_params</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-verify-seed" title="gnutls_privkey_verify_seed ()">gnutls_privkey_verify_seed</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-PROFILE-TO-VFLAGS:CAPS" title="GNUTLS_PROFILE_TO_VFLAGS()">GNUTLS_PROFILE_TO_VFLAGS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-get-name" title="gnutls_protocol_get_name ()">gnutls_protocol_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-set-enabled" title="gnutls_protocol_set_enabled ()">gnutls_protocol_set_enabled</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t">gnutls_protocol_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-client-credentials" title="gnutls_psk_allocate_client_credentials ()">gnutls_psk_allocate_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-allocate-server-credentials" title="gnutls_psk_allocate_server_credentials ()">gnutls_psk_allocate_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-client-get-hint" title="gnutls_psk_client_get_hint ()">gnutls_psk_client_get_hint</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-free-client-credentials" title="gnutls_psk_free_client_credentials ()">gnutls_psk_free_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-free-server-credentials" title="gnutls_psk_free_server_credentials ()">gnutls_psk_free_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags">gnutls_psk_key_flags</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-server-get-username" title="gnutls_psk_server_get_username ()">gnutls_psk_server_get_username</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-server-get-username2" title="gnutls_psk_server_get_username2 ()">gnutls_psk_server_get_username2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials" title="gnutls_psk_set_client_credentials ()">gnutls_psk_set_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials2" title="gnutls_psk_set_client_credentials2 ()">gnutls_psk_set_client_credentials2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function" title="gnutls_psk_set_client_credentials_function ()">gnutls_psk_set_client_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function2" title="gnutls_psk_set_client_credentials_function2 ()">gnutls_psk_set_client_credentials_function2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-params-function" title="gnutls_psk_set_params_function ()">gnutls_psk_set_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-file" title="gnutls_psk_set_server_credentials_file ()">gnutls_psk_set_server_credentials_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function" title="gnutls_psk_set_server_credentials_function ()">gnutls_psk_set_server_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function2" title="gnutls_psk_set_server_credentials_function2 ()">gnutls_psk_set_server_credentials_function2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint" title="gnutls_psk_set_server_credentials_hint ()">gnutls_psk_set_server_credentials_hint</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-dh-params" title="gnutls_psk_set_server_dh_params ()">gnutls_psk_set_server_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-known-dh-params" title="gnutls_psk_set_server_known_dh_params ()">gnutls_psk_set_server_known_dh_params</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-params-function" title="gnutls_psk_set_server_params_function ()">gnutls_psk_set_server_params_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-deinit" title="gnutls_pubkey_deinit ()">gnutls_pubkey_deinit</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-encrypt-data" title="gnutls_pubkey_encrypt_data ()">gnutls_pubkey_encrypt_data</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export" title="gnutls_pubkey_export ()">gnutls_pubkey_export</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export2" title="gnutls_pubkey_export2 ()">gnutls_pubkey_export2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-dsa-raw" title="gnutls_pubkey_export_dsa_raw ()">gnutls_pubkey_export_dsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-dsa-raw2" title="gnutls_pubkey_export_dsa_raw2 ()">gnutls_pubkey_export_dsa_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-ecc-raw" title="gnutls_pubkey_export_ecc_raw ()">gnutls_pubkey_export_ecc_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-ecc-raw2" title="gnutls_pubkey_export_ecc_raw2 ()">gnutls_pubkey_export_ecc_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-ecc-x962" title="gnutls_pubkey_export_ecc_x962 ()">gnutls_pubkey_export_ecc_x962</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-gost-raw2" title="gnutls_pubkey_export_gost_raw2 ()">gnutls_pubkey_export_gost_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-rsa-raw" title="gnutls_pubkey_export_rsa_raw ()">gnutls_pubkey_export_rsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-export-rsa-raw2" title="gnutls_pubkey_export_rsa_raw2 ()">gnutls_pubkey_export_rsa_raw2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-flags-t" title="enum gnutls_pubkey_flags_t">gnutls_pubkey_flags_t</a>, enum in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-id" title="gnutls_pubkey_get_key_id ()">gnutls_pubkey_get_key_id</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-key-usage" title="gnutls_pubkey_get_key_usage ()">gnutls_pubkey_get_key_usage</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-openpgp-key-id" title="gnutls_pubkey_get_openpgp_key_id ()">gnutls_pubkey_get_openpgp_key_id</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm" title="gnutls_pubkey_get_pk_algorithm ()">gnutls_pubkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw" title="gnutls_pubkey_get_pk_dsa_raw">gnutls_pubkey_get_pk_dsa_raw</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-ecc-raw" title="gnutls_pubkey_get_pk_ecc_raw">gnutls_pubkey_get_pk_ecc_raw</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-ecc-x962" title="gnutls_pubkey_get_pk_ecc_x962">gnutls_pubkey_get_pk_ecc_x962</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw" title="gnutls_pubkey_get_pk_rsa_raw">gnutls_pubkey_get_pk_rsa_raw</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()">gnutls_pubkey_get_preferred_hash_algorithm</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-spki" title="gnutls_pubkey_get_spki ()">gnutls_pubkey_get_spki</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import" title="gnutls_pubkey_import ()">gnutls_pubkey_import</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw" title="gnutls_pubkey_import_dsa_raw ()">gnutls_pubkey_import_dsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-ecc-raw" title="gnutls_pubkey_import_ecc_raw ()">gnutls_pubkey_import_ecc_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-ecc-x962" title="gnutls_pubkey_import_ecc_x962 ()">gnutls_pubkey_import_ecc_x962</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-gost-raw" title="gnutls_pubkey_import_gost_raw ()">gnutls_pubkey_import_gost_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-openpgp" title="gnutls_pubkey_import_openpgp ()">gnutls_pubkey_import_openpgp</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-openpgp-raw" title="gnutls_pubkey_import_openpgp_raw ()">gnutls_pubkey_import_openpgp_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11" title="gnutls_pubkey_import_pkcs11 ()">gnutls_pubkey_import_pkcs11</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" title="gnutls_pubkey_import_pkcs11_url()">gnutls_pubkey_import_pkcs11_url</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-privkey" title="gnutls_pubkey_import_privkey ()">gnutls_pubkey_import_privkey</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw" title="gnutls_pubkey_import_rsa_raw ()">gnutls_pubkey_import_rsa_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-tpm-raw" title="gnutls_pubkey_import_tpm_raw ()">gnutls_pubkey_import_tpm_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-tpm-url" title="gnutls_pubkey_import_tpm_url ()">gnutls_pubkey_import_tpm_url</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-url" title="gnutls_pubkey_import_url ()">gnutls_pubkey_import_url</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_pubkey_import_url_func, user_function in urls
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()">gnutls_pubkey_import_x509</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509-crq" title="gnutls_pubkey_import_x509_crq ()">gnutls_pubkey_import_x509_crq</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509-raw" title="gnutls_pubkey_import_x509_raw ()">gnutls_pubkey_import_x509_raw</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-init" title="gnutls_pubkey_init ()">gnutls_pubkey_init</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-print" title="gnutls_pubkey_print ()">gnutls_pubkey_print</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-set-key-usage" title="gnutls_pubkey_set_key_usage ()">gnutls_pubkey_set_key_usage</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-set-pin-function" title="gnutls_pubkey_set_pin_function ()">gnutls_pubkey_set_pin_function</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-set-spki" title="gnutls_pubkey_set_spki ()">gnutls_pubkey_set_spki</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-st" title="struct gnutls_pubkey_st">gnutls_pubkey_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t">gnutls_pubkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-verify-data2" title="gnutls_pubkey_verify_data2 ()">gnutls_pubkey_verify_data2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PUBKEY-VERIFY-FLAG-TLS1-RSA:CAPS" title="GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA">GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-PUBKEY-VERIFY-FLAG-TLS-RSA:CAPS" title="GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA">GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-verify-hash2" title="gnutls_pubkey_verify_hash2 ()">gnutls_pubkey_verify_hash2</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-verify-params" title="gnutls_pubkey_verify_params ()">gnutls_pubkey_verify_params</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()">gnutls_pull_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-pull-timeout-func" title="gnutls_pull_timeout_func ()">gnutls_pull_timeout_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()">gnutls_push_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-random-art" title="gnutls_random_art ()">gnutls_random_art</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-random-art-t" title="enum gnutls_random_art_t">gnutls_random_art_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_RANDOM_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-range-split" title="gnutls_range_split ()">gnutls_range_split</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-range-st" title="gnutls_range_st">gnutls_range_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-read" title="gnutls_read">gnutls_read</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_realloc_fast, function in mem
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-realloc-function" title="gnutls_realloc_function ()">gnutls_realloc_function</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-reauth" title="gnutls_reauth ()">gnutls_reauth</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-can-use-length-hiding" title="gnutls_record_can_use_length_hiding ()">gnutls_record_can_use_length_hiding</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-check-corked" title="gnutls_record_check_corked ()">gnutls_record_check_corked</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-check-pending" title="gnutls_record_check_pending ()">gnutls_record_check_pending</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-cork" title="gnutls_record_cork ()">gnutls_record_cork</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-disable-padding" title="gnutls_record_disable_padding ()">gnutls_record_disable_padding</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-discard-queued" title="gnutls_record_discard_queued ()">gnutls_record_discard_queued</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t">gnutls_record_encryption_level_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()">gnutls_record_get_direction</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-dtls.html#gnutls-record-get-discarded" title="gnutls_record_get_discarded ()">gnutls_record_get_discarded</a>, function in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-early-data-size" title="gnutls_record_get_max_early_data_size ()">gnutls_record_get_max_early_data_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-size" title="gnutls_record_get_max_size ()">gnutls_record_get_max_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-state" title="gnutls_record_get_state ()">gnutls_record_get_state</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-overhead-size" title="gnutls_record_overhead_size ()">gnutls_record_overhead_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()">gnutls_record_recv</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv-early-data" title="gnutls_record_recv_early_data ()">gnutls_record_recv_early_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv-packet" title="gnutls_record_recv_packet ()">gnutls_record_recv_packet</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv-seq" title="gnutls_record_recv_seq ()">gnutls_record_recv_seq</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()">gnutls_record_send</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send2" title="gnutls_record_send2 ()">gnutls_record_send2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send-early-data" title="gnutls_record_send_early_data ()">gnutls_record_send_early_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send-file" title="gnutls_record_send_file ()">gnutls_record_send_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send-range" title="gnutls_record_send_range ()">gnutls_record_send_range</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-early-data-size" title="gnutls_record_set_max_early_data_size ()">gnutls_record_set_max_early_data_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-empty-records" title="gnutls_record_set_max_empty_records()">gnutls_record_set_max_empty_records</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-recv-size" title="gnutls_record_set_max_recv_size ()">gnutls_record_set_max_recv_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-size" title="gnutls_record_set_max_size ()">gnutls_record_set_max_size</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-state" title="gnutls_record_set_state ()">gnutls_record_set_state</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-timeout" title="gnutls_record_set_timeout ()">gnutls_record_set_timeout</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-record-uncork" title="gnutls_record_uncork ()">gnutls_record_uncork</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-RECORD-WAIT:CAPS" title="GNUTLS_RECORD_WAIT">GNUTLS_RECORD_WAIT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_register_custom_url, function in urls
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-rehandshake" title="gnutls_rehandshake ()">gnutls_rehandshake</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_RENEGO_PROTECTION_REQUEST_MAJOR, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_RENEGO_PROTECTION_REQUEST_MINOR, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-retr2-st" title="gnutls_retr2_st">gnutls_retr2_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-rnd" title="gnutls_rnd ()">gnutls_rnd</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t">gnutls_rnd_level_t</a>, enum in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-crypto.html#gnutls-rnd-refresh" title="gnutls_rnd_refresh ()">gnutls_rnd_refresh</a>, function in <a class="link" href="gnutls-crypto.html" title="crypto">crypto</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-rsa-params-t" title="gnutls_rsa_params_t">gnutls_rsa_params_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_RWLOCK, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_rwlock_rdlock, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_rwlock_t, typedef in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_rwlock_unlock, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_rwlock_wrlock, macro in locks
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-safe-renegotiation-status" title="gnutls_safe_renegotiation_status ()">gnutls_safe_renegotiation_status</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SCOMMIT-FLAG-ALLOW-BROKEN:CAPS" title="GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN">GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-get-name" title="gnutls_sec_param_get_name ()">gnutls_sec_param_get_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SEC-PARAM-NORMAL:CAPS" title="GNUTLS_SEC_PARAM_NORMAL">GNUTLS_SEC_PARAM_NORMAL</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t">gnutls_sec_param_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()">gnutls_sec_param_to_pk_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-symmetric-bits" title="gnutls_sec_param_to_symmetric_bits ()">gnutls_sec_param_to_symmetric_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_SELF_TEST_FLAG_ALL, macro in self-test
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_SELF_TEST_FLAG_NO_COMPAT, macro in self-test
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SERVER:CAPS">GNUTLS_SERVER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-server-name-get" title="gnutls_server_name_get ()">gnutls_server_name_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-server-name-set" title="gnutls_server_name_set ()">gnutls_server_name_set</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-server-name-type-t" title="enum gnutls_server_name_type_t">gnutls_server_name_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-channel-binding" title="gnutls_session_channel_binding ()">gnutls_session_channel_binding</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-etm-status" title="gnutls_session_etm_status ()">gnutls_session_etm_status</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ext-master-secret-status" title="gnutls_session_ext_master_secret_status ()">gnutls_session_ext_master_secret_status</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ext-register" title="gnutls_session_ext_register ()">gnutls_session_ext_register</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-flags-t" title="enum gnutls_session_flags_t">gnutls_session_flags_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-force-valid" title="gnutls_session_force_valid ()">gnutls_session_force_valid</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-data" title="gnutls_session_get_data ()">gnutls_session_get_data</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-data2" title="gnutls_session_get_data2 ()">gnutls_session_get_data2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-desc" title="gnutls_session_get_desc ()">gnutls_session_get_desc</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-flags" title="gnutls_session_get_flags ()">gnutls_session_get_flags</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-id" title="gnutls_session_get_id ()">gnutls_session_get_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-id2" title="gnutls_session_get_id2 ()">gnutls_session_get_id2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-keylog-function" title="gnutls_session_get_keylog_function ()">gnutls_session_get_keylog_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-master-secret" title="gnutls_session_get_master_secret ()">gnutls_session_get_master_secret</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-ptr" title="gnutls_session_get_ptr ()">gnutls_session_get_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-random" title="gnutls_session_get_random ()">gnutls_session_get_random</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-verify-cert-status" title="gnutls_session_get_verify_cert_status ()">gnutls_session_get_verify_cert_status</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-int" title="struct gnutls_session_int">gnutls_session_int</a>, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-is-resumed" title="gnutls_session_is_resumed ()">gnutls_session_is_resumed</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-key-update" title="gnutls_session_key_update ()">gnutls_session_key_update</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-resumption-requested" title="gnutls_session_resumption_requested ()">gnutls_session_resumption_requested</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-id" title="gnutls_session_set_id ()">gnutls_session_set_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-keylog-function" title="gnutls_session_set_keylog_function ()">gnutls_session_set_keylog_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-premaster" title="gnutls_session_set_premaster ()">gnutls_session_set_premaster</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-ptr" title="gnutls_session_set_ptr ()">gnutls_session_set_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-verify-cert" title="gnutls_session_set_verify_cert ()">gnutls_session_set_verify_cert</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-verify-cert2" title="gnutls_session_set_verify_cert2 ()">gnutls_session_set_verify_cert2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-verify-function" title="gnutls_session_set_verify_function ()">gnutls_session_set_verify_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-session-set-verify-output-function" title="gnutls_session_set_verify_output_function ()">gnutls_session_set_verify_output_function</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-supplemental-register" title="gnutls_session_supplemental_register ()">gnutls_session_supplemental_register</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t">gnutls_session_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-client" title="gnutls_session_ticket_enable_client ()">gnutls_session_ticket_enable_client</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-enable-server" title="gnutls_session_ticket_enable_server ()">gnutls_session_ticket_enable_server</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-key-generate" title="gnutls_session_ticket_key_generate ()">gnutls_session_ticket_key_generate</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-send" title="gnutls_session_ticket_send ()">gnutls_session_ticket_send</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority" title="gnutls_set_default_priority ()">gnutls_set_default_priority</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority-append" title="gnutls_set_default_priority_append ()">gnutls_set_default_priority_append</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get" title="gnutls_sign_algorithm_get ()">gnutls_sign_algorithm_get</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-client" title="gnutls_sign_algorithm_get_client ()">gnutls_sign_algorithm_get_client</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-get-requested" title="gnutls_sign_algorithm_get_requested ()">gnutls_sign_algorithm_get_requested</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_sign_algorithm_set_client, function in signature
+</dt>
+<dd></dd>
+<dt>
+gnutls_sign_algorithm_set_server, function in signature
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t">gnutls_sign_algorithm_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-SIGN-ALGO-TO-FLAGS:CAPS" title="GNUTLS_SIGN_ALGO_TO_FLAGS()">GNUTLS_SIGN_ALGO_TO_FLAGS</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_sign_entry_st, struct in algorithms
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_SIGN_FLAG_ALLOW_INSECURE_REVERTIBLE, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_SIGN_FLAG_CRT_VRFY_REVERSE, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_SIGN_FLAG_INSECURE_REVERTIBLE, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_SIGN_FLAG_TLS13_OK, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-set-secure" title="gnutls_sign_set_secure ()">gnutls_sign_set_secure</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-set-secure-for-certs" title="gnutls_sign_set_secure_for_certs ()">gnutls_sign_set_secure_for_certs</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SKIP-GLOBAL-INIT:CAPS" title="GNUTLS_SKIP_GLOBAL_INIT">GNUTLS_SKIP_GLOBAL_INIT</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-client-credentials" title="gnutls_srp_allocate_client_credentials ()">gnutls_srp_allocate_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-allocate-server-credentials" title="gnutls_srp_allocate_server_credentials ()">gnutls_srp_allocate_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode" title="gnutls_srp_base64_decode ()">gnutls_srp_base64_decode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode2" title="gnutls_srp_base64_decode2 ()">gnutls_srp_base64_decode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode-alloc" title="gnutls_srp_base64_decode_alloc">gnutls_srp_base64_decode_alloc</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode" title="gnutls_srp_base64_encode ()">gnutls_srp_base64_encode</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode2" title="gnutls_srp_base64_encode2 ()">gnutls_srp_base64_encode2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode-alloc" title="gnutls_srp_base64_encode_alloc">gnutls_srp_base64_encode_alloc</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-free-client-credentials" title="gnutls_srp_free_client_credentials ()">gnutls_srp_free_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-free-server-credentials" title="gnutls_srp_free_server_credentials ()">gnutls_srp_free_server_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-server-get-username" title="gnutls_srp_server_get_username ()">gnutls_srp_server_get_username</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials" title="gnutls_srp_set_client_credentials ()">gnutls_srp_set_client_credentials</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-client-credentials-function" title="gnutls_srp_set_client_credentials_function ()">gnutls_srp_set_client_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-prime-bits" title="gnutls_srp_set_prime_bits ()">gnutls_srp_set_prime_bits</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-file" title="gnutls_srp_set_server_credentials_file ()">gnutls_srp_set_server_credentials_file</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-credentials-function" title="gnutls_srp_set_server_credentials_function ()">gnutls_srp_set_server_credentials_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-fake-salt-seed" title="gnutls_srp_set_server_fake_salt_seed ()">gnutls_srp_set_server_fake_salt_seed</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srp-verifier" title="gnutls_srp_verifier ()">gnutls_srp_verifier</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-get-keys" title="gnutls_srtp_get_keys ()">gnutls_srtp_get_keys</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-get-mki" title="gnutls_srtp_get_mki ()">gnutls_srtp_get_mki</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-get-profile-id" title="gnutls_srtp_get_profile_id ()">gnutls_srtp_get_profile_id</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-get-profile-name" title="gnutls_srtp_get_profile_name ()">gnutls_srtp_get_profile_name</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-get-selected-profile" title="gnutls_srtp_get_selected_profile ()">gnutls_srtp_get_selected_profile</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-profile-t" title="enum gnutls_srtp_profile_t">gnutls_srtp_profile_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-set-mki" title="gnutls_srtp_set_mki ()">gnutls_srtp_set_mki</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-set-profile" title="gnutls_srtp_set_profile ()">gnutls_srtp_set_profile</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-srtp-set-profile-direct" title="gnutls_srtp_set_profile_direct ()">gnutls_srtp_set_profile_direct</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_STATIC_MUTEX, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_static_mutex_lock, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_static_mutex_t, typedef in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_static_mutex_unlock, macro in locks
+</dt>
+<dd></dd>
+<dt>
+gnutls_stek_rotation_callback_t, user_function in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-store-commitment" title="gnutls_store_commitment ()">gnutls_store_commitment</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-store-pubkey" title="gnutls_store_pubkey ()">gnutls_store_pubkey</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-strerror" title="gnutls_strerror ()">gnutls_strerror</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#GNUTLS-SUBGROUP-TO-BITS:CAPS" title="GNUTLS_SUBGROUP_TO_BITS()">GNUTLS_SUBGROUP_TO_BITS</a>, macro in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_subject_alt_names_deinit, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_subject_alt_names_get, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_subject_alt_names_init, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_subject_alt_names_set, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_subject_alt_names_t, typedef in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t">gnutls_supplemental_data_format_type_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-supplemental-recv" title="gnutls_supplemental_recv ()">gnutls_supplemental_recv</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-supplemental-register" title="gnutls_supplemental_register ()">gnutls_supplemental_register</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-supplemental-send" title="gnutls_supplemental_send ()">gnutls_supplemental_send</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_SUPPLEMENTAL_USER_MAPPING_DATA, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-supp-recv-func" title="gnutls_supp_recv_func ()">gnutls_supp_recv_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-supp-send-func" title="gnutls_supp_send_func ()">gnutls_supp_send_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_system_global_deinit, function in system
+</dt>
+<dd></dd>
+<dt>
+gnutls_system_global_init, function in system
+</dt>
+<dd></dd>
+<dt>
+gnutls_system_key_add_x509, function in system-keys
+</dt>
+<dd></dd>
+<dt>
+gnutls_system_key_delete, function in system-keys
+</dt>
+<dd></dd>
+<dt>
+gnutls_system_key_iter_deinit, function in system-keys
+</dt>
+<dd></dd>
+<dt>
+gnutls_system_key_iter_get_info, function in system-keys
+</dt>
+<dd></dd>
+<dt>
+gnutls_system_key_iter_t, typedef in system-keys
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-system-recv-timeout" title="gnutls_system_recv_timeout ()">gnutls_system_recv_timeout</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-deinit" title="gnutls_tdb_deinit ()">gnutls_tdb_deinit</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-init" title="gnutls_tdb_init ()">gnutls_tdb_init</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-int" title="struct gnutls_tdb_int">gnutls_tdb_int</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-set-store-commitment-func" title="gnutls_tdb_set_store_commitment_func ()">gnutls_tdb_set_store_commitment_func</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-set-store-func" title="gnutls_tdb_set_store_func ()">gnutls_tdb_set_store_func</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-set-verify-func" title="gnutls_tdb_set_verify_func ()">gnutls_tdb_set_verify_func</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-store-commitment-func" title="gnutls_tdb_store_commitment_func ()">gnutls_tdb_store_commitment_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-store-func" title="gnutls_tdb_store_func ()">gnutls_tdb_store_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t">gnutls_tdb_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-tdb-verify-func" title="gnutls_tdb_verify_func ()">gnutls_tdb_verify_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_time, variable in system
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-time-func" title="gnutls_time_func ()">gnutls_time_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_tlsprf_self_test, function in self-test
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#gnutls-tpmkey-fmt-t" title="enum gnutls_tpmkey_fmt_t">gnutls_tpmkey_fmt_t</a>, enum in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#gnutls-tpm-get-registered" title="gnutls_tpm_get_registered ()">gnutls_tpm_get_registered</a>, function in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#gnutls-tpm-key-list-deinit" title="gnutls_tpm_key_list_deinit ()">gnutls_tpm_key_list_deinit</a>, function in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#gnutls-tpm-key-list-get-url" title="gnutls_tpm_key_list_get_url ()">gnutls_tpm_key_list_get_url</a>, function in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#gnutls-tpm-key-list-t" title="gnutls_tpm_key_list_t">gnutls_tpm_key_list_t</a>, typedef in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#GNUTLS-TPM-KEY-SIGNING:CAPS" title="GNUTLS_TPM_KEY_SIGNING">GNUTLS_TPM_KEY_SIGNING</a>, macro in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#GNUTLS-TPM-KEY-USER:CAPS" title="GNUTLS_TPM_KEY_USER">GNUTLS_TPM_KEY_USER</a>, macro in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#gnutls-tpm-privkey-delete" title="gnutls_tpm_privkey_delete ()">gnutls_tpm_privkey_delete</a>, function in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#gnutls-tpm-privkey-generate" title="gnutls_tpm_privkey_generate ()">gnutls_tpm_privkey_generate</a>, function in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#GNUTLS-TPM-REGISTER-KEY:CAPS" title="GNUTLS_TPM_REGISTER_KEY">GNUTLS_TPM_REGISTER_KEY</a>, macro in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-get-int" title="gnutls_transport_get_int ()">gnutls_transport_get_int</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-get-int2" title="gnutls_transport_get_int2 ()">gnutls_transport_get_int2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr" title="gnutls_transport_get_ptr ()">gnutls_transport_get_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr2" title="gnutls_transport_get_ptr2 ()">gnutls_transport_get_ptr2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_transport_is_ktls_enabled, function in socket
+</dt>
+<dd></dd>
+<dt>
+gnutls_transport_ktls_enable_flags_t, enum in socket
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t">gnutls_transport_ptr_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno" title="gnutls_transport_set_errno ()">gnutls_transport_set_errno</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-errno-function" title="gnutls_transport_set_errno_function ()">gnutls_transport_set_errno_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_transport_set_fastopen, function in socket
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-int" title="gnutls_transport_set_int ()">gnutls_transport_set_int</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-int2" title="gnutls_transport_set_int2 ()">gnutls_transport_set_int2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr" title="gnutls_transport_set_ptr ()">gnutls_transport_set_ptr</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()">gnutls_transport_set_ptr2</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-function" title="gnutls_transport_set_pull_function ()">gnutls_transport_set_pull_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-timeout-function" title="gnutls_transport_set_pull_timeout_function ()">gnutls_transport_set_pull_timeout_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()">gnutls_transport_set_push_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-vec-push-function" title="gnutls_transport_set_vec_push_function ()">gnutls_transport_set_vec_push_function</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t">gnutls_trust_list_flags_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-typed-vdata-st" title="gnutls_typed_vdata_st">gnutls_typed_vdata_st</a>, struct in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-url-is-supported" title="gnutls_url_is_supported ()">gnutls_url_is_supported</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-UTF8-IGNORE-ERRS:CAPS" title="GNUTLS_UTF8_IGNORE_ERRS">GNUTLS_UTF8_IGNORE_ERRS</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-utf8-password-normalize" title="gnutls_utf8_password_normalize ()">gnutls_utf8_password_normalize</a>, function in str
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-vdata-types-t" title="enum gnutls_vdata_types_t">gnutls_vdata_types_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-vec-push-func" title="gnutls_vec_push_func ()">gnutls_vec_push_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-BROKEN:CAPS" title="GNUTLS_VERIFY_ALLOW_BROKEN">GNUTLS_VERIFY_ALLOW_BROKEN</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_VERIFY_ALLOW_X509_V1_CA_CRT, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-verify-stored-pubkey" title="gnutls_verify_stored_pubkey ()">gnutls_verify_stored_pubkey</a>, function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION:CAPS" title="GNUTLS_VERSION">GNUTLS_VERSION</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-MAJOR:CAPS" title="GNUTLS_VERSION_MAJOR">GNUTLS_VERSION_MAJOR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-MINOR:CAPS" title="GNUTLS_VERSION_MINOR">GNUTLS_VERSION_MINOR</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-NUMBER:CAPS" title="GNUTLS_VERSION_NUMBER">GNUTLS_VERSION_NUMBER</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-PATCH:CAPS" title="GNUTLS_VERSION_PATCH">GNUTLS_VERSION_PATCH</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-VFLAGS-PROFILE-MASK:CAPS" title="GNUTLS_VFLAGS_PROFILE_MASK">GNUTLS_VFLAGS_PROFILE_MASK</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-VFLAGS-TO-PROFILE:CAPS" title="GNUTLS_VFLAGS_TO_PROFILE()">GNUTLS_VFLAGS_TO_PROFILE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-write" title="gnutls_write">gnutls_write</a>, macro in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-AUTHORITY-INFO-ACCESS:CAPS" title="GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS">GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-AUTHORITY-KEY-ID:CAPS" title="GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID">GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-BASIC-CONSTRAINTS:CAPS" title="GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS">GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-CRL-DIST-POINTS:CAPS" title="GNUTLS_X509EXT_OID_CRL_DIST_POINTS">GNUTLS_X509EXT_OID_CRL_DIST_POINTS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-CRT-POLICY:CAPS" title="GNUTLS_X509EXT_OID_CRT_POLICY">GNUTLS_X509EXT_OID_CRT_POLICY</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-CT-SCT-V1:CAPS" title="GNUTLS_X509EXT_OID_CT_SCT_V1">GNUTLS_X509EXT_OID_CT_SCT_V1</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-EXTENDED-KEY-USAGE:CAPS" title="GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE">GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-IAN:CAPS" title="GNUTLS_X509EXT_OID_IAN">GNUTLS_X509EXT_OID_IAN</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-INHIBIT-ANYPOLICY:CAPS" title="GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY">GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-KEY-USAGE:CAPS" title="GNUTLS_X509EXT_OID_KEY_USAGE">GNUTLS_X509EXT_OID_KEY_USAGE</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-NAME-CONSTRAINTS:CAPS" title="GNUTLS_X509EXT_OID_NAME_CONSTRAINTS">GNUTLS_X509EXT_OID_NAME_CONSTRAINTS</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-PRIVATE-KEY-USAGE-PERIOD:CAPS" title="GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD">GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-PROXY-CRT-INFO:CAPS" title="GNUTLS_X509EXT_OID_PROXY_CRT_INFO">GNUTLS_X509EXT_OID_PROXY_CRT_INFO</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-SAN:CAPS" title="GNUTLS_X509EXT_OID_SAN">GNUTLS_X509EXT_OID_SAN</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-SUBJECT-KEY-ID:CAPS" title="GNUTLS_X509EXT_OID_SUBJECT_KEY_ID">GNUTLS_X509EXT_OID_SUBJECT_KEY_ID</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-TLSFEATURES:CAPS" title="GNUTLS_X509EXT_OID_TLSFEATURES">GNUTLS_X509EXT_OID_TLSFEATURES</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aia_deinit, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aia_get, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aia_init, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aia_set, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aia_t, typedef in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aki_deinit, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aki_get_cert_issuer, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aki_get_id, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aki_init, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aki_set_cert_issuer, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aki_set_id, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_aki_t, typedef in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-ava-st" title="gnutls_x509_ava_st">gnutls_x509_ava_st</a>, struct in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-cidr-to-rfc5280" title="gnutls_x509_cidr_to_rfc5280 ()">gnutls_x509_cidr_to_rfc5280</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-check-issuer" title="gnutls_x509_crl_check_issuer ()">gnutls_x509_crl_check_issuer</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-deinit" title="gnutls_x509_crl_deinit ()">gnutls_x509_crl_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crl_dist_points_deinit, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crl_dist_points_get, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crl_dist_points_init, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crl_dist_points_set, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crl_dist_points_t, typedef in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-export" title="gnutls_x509_crl_export ()">gnutls_x509_crl_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-export2" title="gnutls_x509_crl_export2 ()">gnutls_x509_crl_export2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-authority-key-gn-serial" title="gnutls_x509_crl_get_authority_key_gn_serial ()">gnutls_x509_crl_get_authority_key_gn_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-authority-key-id" title="gnutls_x509_crl_get_authority_key_id ()">gnutls_x509_crl_get_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate" title="gnutls_x509_crl_get_certificate">gnutls_x509_crl_get_certificate</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate-count" title="gnutls_x509_crl_get_certificate_count">gnutls_x509_crl_get_certificate_count</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-crt-count" title="gnutls_x509_crl_get_crt_count ()">gnutls_x509_crl_get_crt_count</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-crt-serial" title="gnutls_x509_crl_get_crt_serial ()">gnutls_x509_crl_get_crt_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-dn-oid" title="gnutls_x509_crl_get_dn_oid ()">gnutls_x509_crl_get_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-data" title="gnutls_x509_crl_get_extension_data ()">gnutls_x509_crl_get_extension_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-data2" title="gnutls_x509_crl_get_extension_data2 ()">gnutls_x509_crl_get_extension_data2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()">gnutls_x509_crl_get_extension_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-oid" title="gnutls_x509_crl_get_extension_oid ()">gnutls_x509_crl_get_extension_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn" title="gnutls_x509_crl_get_issuer_dn ()">gnutls_x509_crl_get_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn2" title="gnutls_x509_crl_get_issuer_dn2 ()">gnutls_x509_crl_get_issuer_dn2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn3" title="gnutls_x509_crl_get_issuer_dn3 ()">gnutls_x509_crl_get_issuer_dn3</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn-by-oid" title="gnutls_x509_crl_get_issuer_dn_by_oid ()">gnutls_x509_crl_get_issuer_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-next-update" title="gnutls_x509_crl_get_next_update ()">gnutls_x509_crl_get_next_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-number" title="gnutls_x509_crl_get_number ()">gnutls_x509_crl_get_number</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-raw-issuer-dn" title="gnutls_x509_crl_get_raw_issuer_dn ()">gnutls_x509_crl_get_raw_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature" title="gnutls_x509_crl_get_signature ()">gnutls_x509_crl_get_signature</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature-algorithm" title="gnutls_x509_crl_get_signature_algorithm ()">gnutls_x509_crl_get_signature_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature-oid" title="gnutls_x509_crl_get_signature_oid ()">gnutls_x509_crl_get_signature_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-this-update" title="gnutls_x509_crl_get_this_update ()">gnutls_x509_crl_get_this_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-version" title="gnutls_x509_crl_get_version ()">gnutls_x509_crl_get_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-import" title="gnutls_x509_crl_import ()">gnutls_x509_crl_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-init" title="gnutls_x509_crl_init ()">gnutls_x509_crl_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-int" title="gnutls_x509_crl_int">gnutls_x509_crl_int</a>, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crl_iter, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-crt-serial" title="gnutls_x509_crl_iter_crt_serial ()">gnutls_x509_crl_iter_crt_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-deinit" title="gnutls_x509_crl_iter_deinit ()">gnutls_x509_crl_iter_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-t" title="gnutls_x509_crl_iter_t">gnutls_x509_crl_iter_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-list-import" title="gnutls_x509_crl_list_import ()">gnutls_x509_crl_list_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-list-import2" title="gnutls_x509_crl_list_import2 ()">gnutls_x509_crl_list_import2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-print" title="gnutls_x509_crl_print ()">gnutls_x509_crl_print</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crl-privkey-sign" title="gnutls_x509_crl_privkey_sign ()">gnutls_x509_crl_privkey_sign</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-reason-flags-t" title="enum gnutls_x509_crl_reason_flags_t">gnutls_x509_crl_reason_flags_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crl_reason_t, enum in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-authority-key-id" title="gnutls_x509_crl_set_authority_key_id ()">gnutls_x509_crl_set_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-crt" title="gnutls_x509_crl_set_crt ()">gnutls_x509_crl_set_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-crt-serial" title="gnutls_x509_crl_set_crt_serial ()">gnutls_x509_crl_set_crt_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-next-update" title="gnutls_x509_crl_set_next_update ()">gnutls_x509_crl_set_next_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-number" title="gnutls_x509_crl_set_number ()">gnutls_x509_crl_set_number</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-this-update" title="gnutls_x509_crl_set_this_update ()">gnutls_x509_crl_set_this_update</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-set-version" title="gnutls_x509_crl_set_version ()">gnutls_x509_crl_set_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-sign" title="gnutls_x509_crl_sign ()">gnutls_x509_crl_sign</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-sign2" title="gnutls_x509_crl_sign2 ()">gnutls_x509_crl_sign2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t">gnutls_x509_crl_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-verify" title="gnutls_x509_crl_verify ()">gnutls_x509_crl_verify</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-deinit" title="gnutls_x509_crq_deinit ()">gnutls_x509_crq_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-export" title="gnutls_x509_crq_export ()">gnutls_x509_crq_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-export2" title="gnutls_x509_crq_export2 ()">gnutls_x509_crq_export2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid" title="gnutls_x509_crq_get_attribute_by_oid ()">gnutls_x509_crq_get_attribute_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-data" title="gnutls_x509_crq_get_attribute_data ()">gnutls_x509_crq_get_attribute_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-info" title="gnutls_x509_crq_get_attribute_info ()">gnutls_x509_crq_get_attribute_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-basic-constraints" title="gnutls_x509_crq_get_basic_constraints ()">gnutls_x509_crq_get_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-challenge-password" title="gnutls_x509_crq_get_challenge_password ()">gnutls_x509_crq_get_challenge_password</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn" title="gnutls_x509_crq_get_dn ()">gnutls_x509_crq_get_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn2" title="gnutls_x509_crq_get_dn2 ()">gnutls_x509_crq_get_dn2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn3" title="gnutls_x509_crq_get_dn3 ()">gnutls_x509_crq_get_dn3</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn-by-oid" title="gnutls_x509_crq_get_dn_by_oid ()">gnutls_x509_crq_get_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn-oid" title="gnutls_x509_crq_get_dn_oid ()">gnutls_x509_crq_get_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid" title="gnutls_x509_crq_get_extension_by_oid ()">gnutls_x509_crq_get_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid2" title="gnutls_x509_crq_get_extension_by_oid2 ()">gnutls_x509_crq_get_extension_by_oid2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-data" title="gnutls_x509_crq_get_extension_data ()">gnutls_x509_crq_get_extension_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-data2" title="gnutls_x509_crq_get_extension_data2 ()">gnutls_x509_crq_get_extension_data2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-info" title="gnutls_x509_crq_get_extension_info ()">gnutls_x509_crq_get_extension_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-id" title="gnutls_x509_crq_get_key_id ()">gnutls_x509_crq_get_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-purpose-oid" title="gnutls_x509_crq_get_key_purpose_oid ()">gnutls_x509_crq_get_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-rsa-raw" title="gnutls_x509_crq_get_key_rsa_raw ()">gnutls_x509_crq_get_key_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-key-usage" title="gnutls_x509_crq_get_key_usage ()">gnutls_x509_crq_get_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-pk-algorithm" title="gnutls_x509_crq_get_pk_algorithm ()">gnutls_x509_crq_get_pk_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-pk-oid" title="gnutls_x509_crq_get_pk_oid ()">gnutls_x509_crq_get_pk_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-private-key-usage-period" title="gnutls_x509_crq_get_private_key_usage_period ()">gnutls_x509_crq_get_private_key_usage_period</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-signature-algorithm" title="gnutls_x509_crq_get_signature_algorithm ()">gnutls_x509_crq_get_signature_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-signature-oid" title="gnutls_x509_crq_get_signature_oid ()">gnutls_x509_crq_get_signature_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-spki" title="gnutls_x509_crq_get_spki ()">gnutls_x509_crq_get_spki</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()">gnutls_x509_crq_get_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid" title="gnutls_x509_crq_get_subject_alt_othername_oid ()">gnutls_x509_crq_get_subject_alt_othername_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-tlsfeatures" title="gnutls_x509_crq_get_tlsfeatures ()">gnutls_x509_crq_get_tlsfeatures</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-version" title="gnutls_x509_crq_get_version ()">gnutls_x509_crq_get_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-import" title="gnutls_x509_crq_import ()">gnutls_x509_crq_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-init" title="gnutls_x509_crq_init ()">gnutls_x509_crq_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-int" title="gnutls_x509_crq_int">gnutls_x509_crq_int</a>, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-print" title="gnutls_x509_crq_print ()">gnutls_x509_crq_print</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crq-privkey-sign" title="gnutls_x509_crq_privkey_sign ()">gnutls_x509_crq_privkey_sign</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-attribute-by-oid" title="gnutls_x509_crq_set_attribute_by_oid ()">gnutls_x509_crq_set_attribute_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-basic-constraints" title="gnutls_x509_crq_set_basic_constraints ()">gnutls_x509_crq_set_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-challenge-password" title="gnutls_x509_crq_set_challenge_password ()">gnutls_x509_crq_set_challenge_password</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-dn" title="gnutls_x509_crq_set_dn ()">gnutls_x509_crq_set_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-dn-by-oid" title="gnutls_x509_crq_set_dn_by_oid ()">gnutls_x509_crq_set_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-extension-by-oid" title="gnutls_x509_crq_set_extension_by_oid ()">gnutls_x509_crq_set_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key" title="gnutls_x509_crq_set_key ()">gnutls_x509_crq_set_key</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-purpose-oid" title="gnutls_x509_crq_set_key_purpose_oid ()">gnutls_x509_crq_set_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-rsa-raw" title="gnutls_x509_crq_set_key_rsa_raw ()">gnutls_x509_crq_set_key_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-key-usage" title="gnutls_x509_crq_set_key_usage ()">gnutls_x509_crq_set_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-private-key-usage-period" title="gnutls_x509_crq_set_private_key_usage_period ()">gnutls_x509_crq_set_private_key_usage_period</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crq-set-pubkey" title="gnutls_x509_crq_set_pubkey ()">gnutls_x509_crq_set_pubkey</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-spki" title="gnutls_x509_crq_set_spki ()">gnutls_x509_crq_set_spki</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-name" title="gnutls_x509_crq_set_subject_alt_name ()">gnutls_x509_crq_set_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-othername" title="gnutls_x509_crq_set_subject_alt_othername ()">gnutls_x509_crq_set_subject_alt_othername</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-tlsfeatures" title="gnutls_x509_crq_set_tlsfeatures ()">gnutls_x509_crq_set_tlsfeatures</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()">gnutls_x509_crq_set_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-sign" title="gnutls_x509_crq_sign ()">gnutls_x509_crq_sign</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-sign2" title="gnutls_x509_crq_sign2 ()">gnutls_x509_crq_sign2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t">gnutls_x509_crq_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-verify" title="gnutls_x509_crq_verify ()">gnutls_x509_crq_verify</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-email" title="gnutls_x509_crt_check_email ()">gnutls_x509_crt_check_email</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-hostname" title="gnutls_x509_crt_check_hostname ()">gnutls_x509_crt_check_hostname</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-hostname2" title="gnutls_x509_crt_check_hostname2 ()">gnutls_x509_crt_check_hostname2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-ip" title="gnutls_x509_crt_check_ip ()">gnutls_x509_crt_check_ip</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-key-purpose" title="gnutls_x509_crt_check_key_purpose ()">gnutls_x509_crt_check_key_purpose</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-revocation" title="gnutls_x509_crt_check_revocation ()">gnutls_x509_crt_check_revocation</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-cpy-crl-dist-points" title="gnutls_x509_crt_cpy_crl_dist_points ()">gnutls_x509_crt_cpy_crl_dist_points</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()">gnutls_x509_crt_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-equals" title="gnutls_x509_crt_equals ()">gnutls_x509_crt_equals</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-equals2" title="gnutls_x509_crt_equals2 ()">gnutls_x509_crt_equals2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-export" title="gnutls_x509_crt_export ()">gnutls_x509_crt_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-export2" title="gnutls_x509_crt_export2 ()">gnutls_x509_crt_export2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-flags" title="enum gnutls_x509_crt_flags">gnutls_x509_crt_flags</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t">gnutls_x509_crt_fmt_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_X509_CRT_FULL, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-activation-time" title="gnutls_x509_crt_get_activation_time ()">gnutls_x509_crt_get_activation_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-info-access" title="gnutls_x509_crt_get_authority_info_access ()">gnutls_x509_crt_get_authority_info_access</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-key-gn-serial" title="gnutls_x509_crt_get_authority_key_gn_serial ()">gnutls_x509_crt_get_authority_key_gn_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-key-id" title="gnutls_x509_crt_get_authority_key_id ()">gnutls_x509_crt_get_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-basic-constraints" title="gnutls_x509_crt_get_basic_constraints ()">gnutls_x509_crt_get_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-ca-status" title="gnutls_x509_crt_get_ca_status ()">gnutls_x509_crt_get_ca_status</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-crl-dist-points" title="gnutls_x509_crt_get_crl_dist_points ()">gnutls_x509_crt_get_crl_dist_points</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn" title="gnutls_x509_crt_get_dn ()">gnutls_x509_crt_get_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn2" title="gnutls_x509_crt_get_dn2 ()">gnutls_x509_crt_get_dn2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn3" title="gnutls_x509_crt_get_dn3 ()">gnutls_x509_crt_get_dn3</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn-by-oid" title="gnutls_x509_crt_get_dn_by_oid ()">gnutls_x509_crt_get_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn-oid" title="gnutls_x509_crt_get_dn_oid ()">gnutls_x509_crt_get_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-expiration-time" title="gnutls_x509_crt_get_expiration_time ()">gnutls_x509_crt_get_expiration_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid" title="gnutls_x509_crt_get_extension_by_oid ()">gnutls_x509_crt_get_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid2" title="gnutls_x509_crt_get_extension_by_oid2 ()">gnutls_x509_crt_get_extension_by_oid2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-data" title="gnutls_x509_crt_get_extension_data ()">gnutls_x509_crt_get_extension_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-data2" title="gnutls_x509_crt_get_extension_data2 ()">gnutls_x509_crt_get_extension_data2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()">gnutls_x509_crt_get_extension_info</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-oid" title="gnutls_x509_crt_get_extension_oid ()">gnutls_x509_crt_get_extension_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-fingerprint" title="gnutls_x509_crt_get_fingerprint ()">gnutls_x509_crt_get_fingerprint</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-inhibit-anypolicy" title="gnutls_x509_crt_get_inhibit_anypolicy ()">gnutls_x509_crt_get_inhibit_anypolicy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer" title="gnutls_x509_crt_get_issuer ()">gnutls_x509_crt_get_issuer</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()">gnutls_x509_crt_get_issuer_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name2" title="gnutls_x509_crt_get_issuer_alt_name2 ()">gnutls_x509_crt_get_issuer_alt_name2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid" title="gnutls_x509_crt_get_issuer_alt_othername_oid ()">gnutls_x509_crt_get_issuer_alt_othername_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn" title="gnutls_x509_crt_get_issuer_dn ()">gnutls_x509_crt_get_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn2" title="gnutls_x509_crt_get_issuer_dn2 ()">gnutls_x509_crt_get_issuer_dn2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn3" title="gnutls_x509_crt_get_issuer_dn3 ()">gnutls_x509_crt_get_issuer_dn3</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-by-oid" title="gnutls_x509_crt_get_issuer_dn_by_oid ()">gnutls_x509_crt_get_issuer_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-oid" title="gnutls_x509_crt_get_issuer_dn_oid ()">gnutls_x509_crt_get_issuer_dn_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-unique-id" title="gnutls_x509_crt_get_issuer_unique_id ()">gnutls_x509_crt_get_issuer_unique_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-id" title="gnutls_x509_crt_get_key_id ()">gnutls_x509_crt_get_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-purpose-oid" title="gnutls_x509_crt_get_key_purpose_oid ()">gnutls_x509_crt_get_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-usage" title="gnutls_x509_crt_get_key_usage ()">gnutls_x509_crt_get_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-name-constraints" title="gnutls_x509_crt_get_name_constraints ()">gnutls_x509_crt_get_name_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-algorithm" title="gnutls_x509_crt_get_pk_algorithm ()">gnutls_x509_crt_get_pk_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-dsa-raw" title="gnutls_x509_crt_get_pk_dsa_raw ()">gnutls_x509_crt_get_pk_dsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-ecc-raw" title="gnutls_x509_crt_get_pk_ecc_raw ()">gnutls_x509_crt_get_pk_ecc_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-gost-raw" title="gnutls_x509_crt_get_pk_gost_raw ()">gnutls_x509_crt_get_pk_gost_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-oid" title="gnutls_x509_crt_get_pk_oid ()">gnutls_x509_crt_get_pk_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-rsa-raw" title="gnutls_x509_crt_get_pk_rsa_raw ()">gnutls_x509_crt_get_pk_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-policy" title="gnutls_x509_crt_get_policy ()">gnutls_x509_crt_get_policy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crt_get_preferred_hash_algorithm, function in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-private-key-usage-period" title="gnutls_x509_crt_get_private_key_usage_period ()">gnutls_x509_crt_get_private_key_usage_period</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-proxy" title="gnutls_x509_crt_get_proxy ()">gnutls_x509_crt_get_proxy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-raw-dn" title="gnutls_x509_crt_get_raw_dn ()">gnutls_x509_crt_get_raw_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-raw-issuer-dn" title="gnutls_x509_crt_get_raw_issuer_dn ()">gnutls_x509_crt_get_raw_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-serial" title="gnutls_x509_crt_get_serial ()">gnutls_x509_crt_get_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature" title="gnutls_x509_crt_get_signature ()">gnutls_x509_crt_get_signature</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature-algorithm" title="gnutls_x509_crt_get_signature_algorithm ()">gnutls_x509_crt_get_signature_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature-oid" title="gnutls_x509_crt_get_signature_oid ()">gnutls_x509_crt_get_signature_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-spki" title="gnutls_x509_crt_get_spki ()">gnutls_x509_crt_get_spki</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject" title="gnutls_x509_crt_get_subject ()">gnutls_x509_crt_get_subject</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()">gnutls_x509_crt_get_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name2" title="gnutls_x509_crt_get_subject_alt_name2 ()">gnutls_x509_crt_get_subject_alt_name2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()">gnutls_x509_crt_get_subject_alt_othername_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-key-id" title="gnutls_x509_crt_get_subject_key_id ()">gnutls_x509_crt_get_subject_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-unique-id" title="gnutls_x509_crt_get_subject_unique_id ()">gnutls_x509_crt_get_subject_unique_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-tlsfeatures" title="gnutls_x509_crt_get_tlsfeatures ()">gnutls_x509_crt_get_tlsfeatures</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-version" title="gnutls_x509_crt_get_version ()">gnutls_x509_crt_get_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-import" title="gnutls_x509_crt_import ()">gnutls_x509_crt_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11" title="gnutls_x509_crt_import_pkcs11 ()">gnutls_x509_crt_import_pkcs11</a>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, macro in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-import-url" title="gnutls_x509_crt_import_url ()">gnutls_x509_crt_import_url</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crt_import_url_func, user_function in urls
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-init" title="gnutls_x509_crt_init ()">gnutls_x509_crt_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-int" title="gnutls_x509_crt_int">gnutls_x509_crt_int</a>, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crt_is_issuer, function in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-import" title="gnutls_x509_crt_list_import ()">gnutls_x509_crt_list_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-import2" title="gnutls_x509_crt_list_import2 ()">gnutls_x509_crt_list_import2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<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>, function in <a class="link" href="gnutls-pkcs11.html" title="pkcs11">pkcs11</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-import-url" title="gnutls_x509_crt_list_import_url ()">gnutls_x509_crt_list_import_url</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-verify" title="gnutls_x509_crt_list_verify ()">gnutls_x509_crt_list_verify</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_X509_CRT_ONELINE, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-print" title="gnutls_x509_crt_print ()">gnutls_x509_crt_print</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crt-privkey-sign" title="gnutls_x509_crt_privkey_sign ()">gnutls_x509_crt_privkey_sign</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-activation-time" title="gnutls_x509_crt_set_activation_time ()">gnutls_x509_crt_set_activation_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-authority-info-access" title="gnutls_x509_crt_set_authority_info_access ()">gnutls_x509_crt_set_authority_info_access</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-authority-key-id" title="gnutls_x509_crt_set_authority_key_id ()">gnutls_x509_crt_set_authority_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-basic-constraints" title="gnutls_x509_crt_set_basic_constraints ()">gnutls_x509_crt_set_basic_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-ca-status" title="gnutls_x509_crt_set_ca_status ()">gnutls_x509_crt_set_ca_status</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points" title="gnutls_x509_crt_set_crl_dist_points ()">gnutls_x509_crt_set_crl_dist_points</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points2" title="gnutls_x509_crt_set_crl_dist_points2 ()">gnutls_x509_crt_set_crl_dist_points2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crq" title="gnutls_x509_crt_set_crq ()">gnutls_x509_crt_set_crq</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crq-extensions" title="gnutls_x509_crt_set_crq_extensions ()">gnutls_x509_crt_set_crq_extensions</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-crq-extension-by-oid" title="gnutls_x509_crt_set_crq_extension_by_oid ()">gnutls_x509_crt_set_crq_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn" title="gnutls_x509_crt_set_dn ()">gnutls_x509_crt_set_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()">gnutls_x509_crt_set_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-expiration-time" title="gnutls_x509_crt_set_expiration_time ()">gnutls_x509_crt_set_expiration_time</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-extension-by-oid" title="gnutls_x509_crt_set_extension_by_oid ()">gnutls_x509_crt_set_extension_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-flags" title="gnutls_x509_crt_set_flags ()">gnutls_x509_crt_set_flags</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-inhibit-anypolicy" title="gnutls_x509_crt_set_inhibit_anypolicy ()">gnutls_x509_crt_set_inhibit_anypolicy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-issuer-alt-name" title="gnutls_x509_crt_set_issuer_alt_name ()">gnutls_x509_crt_set_issuer_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-issuer-alt-othername" title="gnutls_x509_crt_set_issuer_alt_othername ()">gnutls_x509_crt_set_issuer_alt_othername</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-issuer-dn" title="gnutls_x509_crt_set_issuer_dn ()">gnutls_x509_crt_set_issuer_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-issuer-dn-by-oid" title="gnutls_x509_crt_set_issuer_dn_by_oid ()">gnutls_x509_crt_set_issuer_dn_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-issuer-unique-id" title="gnutls_x509_crt_set_issuer_unique_id ()">gnutls_x509_crt_set_issuer_unique_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()">gnutls_x509_crt_set_key</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-purpose-oid" title="gnutls_x509_crt_set_key_purpose_oid ()">gnutls_x509_crt_set_key_purpose_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-usage" title="gnutls_x509_crt_set_key_usage ()">gnutls_x509_crt_set_key_usage</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-name-constraints" title="gnutls_x509_crt_set_name_constraints ()">gnutls_x509_crt_set_name_constraints</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-pin-function" title="gnutls_x509_crt_set_pin_function ()">gnutls_x509_crt_set_pin_function</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-policy" title="gnutls_x509_crt_set_policy ()">gnutls_x509_crt_set_policy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-private-key-usage-period" title="gnutls_x509_crt_set_private_key_usage_period ()">gnutls_x509_crt_set_private_key_usage_period</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-proxy" title="gnutls_x509_crt_set_proxy ()">gnutls_x509_crt_set_proxy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-proxy-dn" title="gnutls_x509_crt_set_proxy_dn ()">gnutls_x509_crt_set_proxy_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-abstract.html#gnutls-x509-crt-set-pubkey" title="gnutls_x509_crt_set_pubkey ()">gnutls_x509_crt_set_pubkey</a>, function in <a class="link" href="gnutls-abstract.html" title="abstract">abstract</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-serial" title="gnutls_x509_crt_set_serial ()">gnutls_x509_crt_set_serial</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-spki" title="gnutls_x509_crt_set_spki ()">gnutls_x509_crt_set_spki</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alternative-name" title="gnutls_x509_crt_set_subject_alternative_name ()">gnutls_x509_crt_set_subject_alternative_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()">gnutls_x509_crt_set_subject_alt_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-othername" title="gnutls_x509_crt_set_subject_alt_othername ()">gnutls_x509_crt_set_subject_alt_othername</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-key-id" title="gnutls_x509_crt_set_subject_key_id ()">gnutls_x509_crt_set_subject_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-unique-id" title="gnutls_x509_crt_set_subject_unique_id ()">gnutls_x509_crt_set_subject_unique_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-tlsfeatures" title="gnutls_x509_crt_set_tlsfeatures ()">gnutls_x509_crt_set_tlsfeatures</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-version" title="gnutls_x509_crt_set_version ()">gnutls_x509_crt_set_version</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign" title="gnutls_x509_crt_sign ()">gnutls_x509_crt_sign</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign2" title="gnutls_x509_crt_sign2 ()">gnutls_x509_crt_sign2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t">gnutls_x509_crt_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_X509_CRT_UNSIGNED_FULL, macro in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-verify" title="gnutls_x509_crt_verify ()">gnutls_x509_crt_verify</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-verify-data2" title="gnutls_x509_crt_verify_data2 ()">gnutls_x509_crt_verify_data2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_crt_verify_data3, function in x509_int
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ct_scts_t, typedef in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ct_sct_get, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ct_sct_get_version, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-deinit" title="gnutls_x509_dn_deinit ()">gnutls_x509_dn_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-export" title="gnutls_x509_dn_export ()">gnutls_x509_dn_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-export2" title="gnutls_x509_dn_export2 ()">gnutls_x509_dn_export2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT">GNUTLS_X509_DN_FLAG_COMPAT</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()">gnutls_x509_dn_get_rdn_ava</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-str" title="gnutls_x509_dn_get_str ()">gnutls_x509_dn_get_str</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-str2" title="gnutls_x509_dn_get_str2 ()">gnutls_x509_dn_get_str2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-import" title="gnutls_x509_dn_import ()">gnutls_x509_dn_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-init" title="gnutls_x509_dn_init ()">gnutls_x509_dn_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()">gnutls_x509_dn_oid_known</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-name" title="gnutls_x509_dn_oid_name ()">gnutls_x509_dn_oid_name</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-OID-RETURN-OID:CAPS" title="GNUTLS_X509_DN_OID_RETURN_OID">GNUTLS_X509_DN_OID_RETURN_OID</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-set-str" title="gnutls_x509_dn_set_str ()">gnutls_x509_dn_set_str</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_dn_st, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t">gnutls_x509_dn_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_ct_export_scts, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_ct_import_scts, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_ct_scts_deinit, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_ct_scts_init, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-ext-deinit" title="gnutls_x509_ext_deinit ()">gnutls_x509_ext_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_aia, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_authority_key_id, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_basic_constraints, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_crl_dist_points, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_inhibit_anypolicy, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_issuer_alt_name, macro in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_key_purposes, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_key_usage, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_name_constraints, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_policies, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_private_key_usage_period, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_proxy, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_subject_alt_names, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_subject_key_id, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_export_tlsfeatures, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_aia, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_authority_key_id, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_basic_constraints, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_crl_dist_points, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_inhibit_anypolicy, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_issuer_alt_name, macro in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_key_purposes, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_key_usage, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_name_constraints, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_policies, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_private_key_usage_period, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_proxy, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_subject_alt_names, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_subject_key_id, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_ext_import_tlsfeatures, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-ext-print" title="gnutls_x509_ext_print ()">gnutls_x509_ext_print</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-ext-st" title="gnutls_x509_ext_st">gnutls_x509_ext_st</a>, struct in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_key_purposes_t, typedef in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_key_purpose_deinit, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_key_purpose_get, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_key_purpose_init, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_key_purpose_set, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-add-excluded" title="gnutls_x509_name_constraints_add_excluded ()">gnutls_x509_name_constraints_add_excluded</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-add-permitted" title="gnutls_x509_name_constraints_add_permitted ()">gnutls_x509_name_constraints_add_permitted</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-check" title="gnutls_x509_name_constraints_check ()">gnutls_x509_name_constraints_check</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-check-crt" title="gnutls_x509_name_constraints_check_crt ()">gnutls_x509_name_constraints_check_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-deinit" title="gnutls_x509_name_constraints_deinit ()">gnutls_x509_name_constraints_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-get-excluded" title="gnutls_x509_name_constraints_get_excluded ()">gnutls_x509_name_constraints_get_excluded</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-get-permitted" title="gnutls_x509_name_constraints_get_permitted ()">gnutls_x509_name_constraints_get_permitted</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-init" title="gnutls_x509_name_constraints_init ()">gnutls_x509_name_constraints_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t">gnutls_x509_name_constraints_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509-NO-WELL-DEFINED-EXPIRATION:CAPS" title="GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION">GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#GNUTLS-X509-OID-POLICY-ANY:CAPS" title="GNUTLS_X509_OID_POLICY_ANY">GNUTLS_X509_OID_POLICY_ANY</a>, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_othername_to_virtual, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_policies_deinit, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_policies_get, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_policies_init, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_policies_set, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_policies_t, typedef in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-policy-release" title="gnutls_x509_policy_release ()">gnutls_x509_policy_release</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-policy-st" title="gnutls_x509_policy_st">gnutls_x509_policy_st</a>, struct in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-cpy" title="gnutls_x509_privkey_cpy ()">gnutls_x509_privkey_cpy</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-deinit" title="gnutls_x509_privkey_deinit ()">gnutls_x509_privkey_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export" title="gnutls_x509_privkey_export ()">gnutls_x509_privkey_export</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export2" title="gnutls_x509_privkey_export2 ()">gnutls_x509_privkey_export2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export2-pkcs8" title="gnutls_x509_privkey_export2_pkcs8 ()">gnutls_x509_privkey_export2_pkcs8</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-dsa-raw" title="gnutls_x509_privkey_export_dsa_raw ()">gnutls_x509_privkey_export_dsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-ecc-raw" title="gnutls_x509_privkey_export_ecc_raw ()">gnutls_x509_privkey_export_ecc_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-gost-raw" title="gnutls_x509_privkey_export_gost_raw ()">gnutls_x509_privkey_export_gost_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-pkcs8" title="gnutls_x509_privkey_export_pkcs8 ()">gnutls_x509_privkey_export_pkcs8</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw" title="gnutls_x509_privkey_export_rsa_raw ()">gnutls_x509_privkey_export_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw2" title="gnutls_x509_privkey_export_rsa_raw2 ()">gnutls_x509_privkey_export_rsa_raw2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-fix" title="gnutls_x509_privkey_fix ()">gnutls_x509_privkey_fix</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-generate" title="gnutls_x509_privkey_generate ()">gnutls_x509_privkey_generate</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-generate2" title="gnutls_x509_privkey_generate2 ()">gnutls_x509_privkey_generate2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-key-id" title="gnutls_x509_privkey_get_key_id ()">gnutls_x509_privkey_get_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm" title="gnutls_x509_privkey_get_pk_algorithm ()">gnutls_x509_privkey_get_pk_algorithm</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm2" title="gnutls_x509_privkey_get_pk_algorithm2 ()">gnutls_x509_privkey_get_pk_algorithm2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-seed" title="gnutls_x509_privkey_get_seed ()">gnutls_x509_privkey_get_seed</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-get-spki" title="gnutls_x509_privkey_get_spki ()">gnutls_x509_privkey_get_spki</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import" title="gnutls_x509_privkey_import ()">gnutls_x509_privkey_import</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import2" title="gnutls_x509_privkey_import2 ()">gnutls_x509_privkey_import2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-dsa-raw" title="gnutls_x509_privkey_import_dsa_raw ()">gnutls_x509_privkey_import_dsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-ecc-raw" title="gnutls_x509_privkey_import_ecc_raw ()">gnutls_x509_privkey_import_ecc_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-gost-raw" title="gnutls_x509_privkey_import_gost_raw ()">gnutls_x509_privkey_import_gost_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-openssl" title="gnutls_x509_privkey_import_openssl ()">gnutls_x509_privkey_import_openssl</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-pkcs8" title="gnutls_x509_privkey_import_pkcs8 ()">gnutls_x509_privkey_import_pkcs8</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw" title="gnutls_x509_privkey_import_rsa_raw ()">gnutls_x509_privkey_import_rsa_raw</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw2" title="gnutls_x509_privkey_import_rsa_raw2 ()">gnutls_x509_privkey_import_rsa_raw2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-init" title="gnutls_x509_privkey_init ()">gnutls_x509_privkey_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-int" title="gnutls_x509_privkey_int">gnutls_x509_privkey_int</a>, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-sec-param" title="gnutls_x509_privkey_sec_param ()">gnutls_x509_privkey_sec_param</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-set-flags" title="gnutls_x509_privkey_set_flags ()">gnutls_x509_privkey_set_flags</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-set-pin-function" title="gnutls_x509_privkey_set_pin_function ()">gnutls_x509_privkey_set_pin_function</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-set-spki" title="gnutls_x509_privkey_set_spki ()">gnutls_x509_privkey_set_spki</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-sign-data" title="gnutls_x509_privkey_sign_data ()">gnutls_x509_privkey_sign_data</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_privkey_sign_hash, function in compat
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t">gnutls_x509_privkey_t</a>, typedef in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-verify-params" title="gnutls_x509_privkey_verify_params ()">gnutls_x509_privkey_verify_params</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-verify-seed" title="gnutls_x509_privkey_verify_seed ()">gnutls_x509_privkey_verify_seed</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-qualifier-t" title="enum gnutls_x509_qualifier_t">gnutls_x509_qualifier_t</a>, enum in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get" title="gnutls_x509_rdn_get ()">gnutls_x509_rdn_get</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get2" title="gnutls_x509_rdn_get2 ()">gnutls_x509_rdn_get2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get-by-oid" title="gnutls_x509_rdn_get_by_oid ()">gnutls_x509_rdn_get_by_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get-oid" title="gnutls_x509_rdn_get_oid ()">gnutls_x509_rdn_get_oid</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-spki-deinit" title="gnutls_x509_spki_deinit ()">gnutls_x509_spki_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-spki-get-rsa-pss-params" title="gnutls_x509_spki_get_rsa_pss_params ()">gnutls_x509_spki_get_rsa_pss_params</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-spki-init" title="gnutls_x509_spki_init ()">gnutls_x509_spki_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-spki-set-rsa-pss-params" title="gnutls_x509_spki_set_rsa_pss_params ()">gnutls_x509_spki_set_rsa_pss_params</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_spki_st, struct in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t">gnutls_x509_spki_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t">gnutls_x509_subject_alt_name_t</a>, enum in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_tlsfeatures_add, function in x509-ext
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-check-crt" title="gnutls_x509_tlsfeatures_check_crt ()">gnutls_x509_tlsfeatures_check_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-deinit" title="gnutls_x509_tlsfeatures_deinit ()">gnutls_x509_tlsfeatures_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-get" title="gnutls_x509_tlsfeatures_get ()">gnutls_x509_tlsfeatures_get</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-init" title="gnutls_x509_tlsfeatures_init ()">gnutls_x509_tlsfeatures_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_tlsfeatures_st, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t">gnutls_x509_tlsfeatures_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-cas" title="gnutls_x509_trust_list_add_cas ()">gnutls_x509_trust_list_add_cas</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-crls" title="gnutls_x509_trust_list_add_crls ()">gnutls_x509_trust_list_add_crls</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-named-crt" title="gnutls_x509_trust_list_add_named_crt ()">gnutls_x509_trust_list_add_named_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-system-trust" title="gnutls_x509_trust_list_add_system_trust ()">gnutls_x509_trust_list_add_system_trust</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-trust-dir" title="gnutls_x509_trust_list_add_trust_dir ()">gnutls_x509_trust_list_add_trust_dir</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-trust-file" title="gnutls_x509_trust_list_add_trust_file ()">gnutls_x509_trust_list_add_trust_file</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-trust-mem" title="gnutls_x509_trust_list_add_trust_mem ()">gnutls_x509_trust_list_add_trust_mem</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-deinit" title="gnutls_x509_trust_list_deinit ()">gnutls_x509_trust_list_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-get-issuer" title="gnutls_x509_trust_list_get_issuer ()">gnutls_x509_trust_list_get_issuer</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-get-issuer-by-dn" title="gnutls_x509_trust_list_get_issuer_by_dn ()">gnutls_x509_trust_list_get_issuer_by_dn</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-get-issuer-by-subject-key-id" title="gnutls_x509_trust_list_get_issuer_by_subject_key_id ()">gnutls_x509_trust_list_get_issuer_by_subject_key_id</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-get-ptr" title="gnutls_x509_trust_list_get_ptr ()">gnutls_x509_trust_list_get_ptr</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-init" title="gnutls_x509_trust_list_init ()">gnutls_x509_trust_list_init</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-iter-deinit" title="gnutls_x509_trust_list_iter_deinit ()">gnutls_x509_trust_list_iter_deinit</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-iter-get-ca" title="gnutls_x509_trust_list_iter_get_ca ()">gnutls_x509_trust_list_iter_get_ca</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-iter-t" title="gnutls_x509_trust_list_iter_t">gnutls_x509_trust_list_iter_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-remove-cas" title="gnutls_x509_trust_list_remove_cas ()">gnutls_x509_trust_list_remove_cas</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-remove-trust-file" title="gnutls_x509_trust_list_remove_trust_file ()">gnutls_x509_trust_list_remove_trust_file</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-remove-trust-mem" title="gnutls_x509_trust_list_remove_trust_mem ()">gnutls_x509_trust_list_remove_trust_mem</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-set-getissuer-function" title="gnutls_x509_trust_list_set_getissuer_function ()">gnutls_x509_trust_list_set_getissuer_function</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-set-ptr" title="gnutls_x509_trust_list_set_ptr ()">gnutls_x509_trust_list_set_ptr</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+gnutls_x509_trust_list_st, struct in verify-high
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t">gnutls_x509_trust_list_t</a>, typedef in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt" title="gnutls_x509_trust_list_verify_crt ()">gnutls_x509_trust_list_verify_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt2" title="gnutls_x509_trust_list_verify_crt2 ()">gnutls_x509_trust_list_verify_crt2</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-named-crt" title="gnutls_x509_trust_list_verify_named_crt ()">gnutls_x509_trust_list_verify_named_crt</a>, function in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+GNUTLS_XML_SHOW_ALL, macro in common
+</dt>
+<dd></dd>
+<dt>
+GOST28147_89_CPA_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+GOST28147_89_CPB_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+GOST28147_89_CPC_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+GOST28147_89_CPD_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+GOST28147_89_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+GOST28147_89_TC26Z_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+GOST28147_BLOCK_SIZE, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_cnt_crypt, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_cnt_ctx, struct in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_cnt_init, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_cnt_set_iv, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_ctx, struct in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_decrypt, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_decrypt_simple, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_encrypt, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_encrypt_for_cfb, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_encrypt_simple, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+GOST28147_IMIT_BLOCK_SIZE, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_imit_ctx, struct in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_imit_digest, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+GOST28147_IMIT_DIGEST_SIZE, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+GOST28147_IMIT_KEY_SIZE, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_imit_set_key, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_imit_set_nonce, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_imit_set_param, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_imit_update, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_kdf_cryptopro, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+GOST28147_KEY_SIZE, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_key_unwrap_cryptopro, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_key_wrap_cryptopro, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param, struct in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_CryptoPro_3411, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_CryptoPro_A, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_CryptoPro_B, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_CryptoPro_C, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_CryptoPro_D, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_TC26_Z, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_test_3411, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_param_Test_89, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_set_key, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gost28147_set_param, macro in gost28147
+</dt>
+<dd></dd>
+<dt>
+gostdsa_generate_keypair, macro in ecc-gost-curve
+</dt>
+<dd></dd>
+<dt>
+gostdsa_unmask_key, macro in gostdsa2
+</dt>
+<dd></dd>
+<dt>
+GOST_K, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+gost_point_mul_g, macro in ecc-gost-curve
+</dt>
+<dd></dd>
+<dt>
+gost_point_set, macro in ecc-gost-curve
+</dt>
+<dd></dd>
+<dt>
+GOST_PRIVATE_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+GOST_PUBLIC_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+GOST_X, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+GOST_Y, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+group_list_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<a name="idxH"></a><h3 class="title">H</h3>
+<dt>
+handshake, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+handshake_buffer_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+HANDSHAKE_CLIENT_TRAFFIC_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+HANDSHAKE_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+handshake_remaining_time, function in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+HANDSHAKE_SERVER_TRAFFIC_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+handshake_state_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+hash_deinit_func, user_function in hash_int
+</dt>
+<dd></dd>
+<dt>
+hash_func, user_function in hash_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_GOST_R_3411_94, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_GOST_R_3411_94_CRYPTOPRO_PARAMS, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_MD2, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_MD5, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_RMD160, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA1, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA224, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA256, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA384, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA3_224, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA3_256, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA3_384, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA3_512, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHA512, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHAKE_128, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_SHAKE_256, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_STREEBOG_256, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+HASH_OID_STREEBOG_512, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+hash_to_entry, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+HAVE_ATFORK, macro in atfork
+</dt>
+<dd></dd>
+<dt>
+HAVE_CKM_EDDSA, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+have_creds_for_tls13, function in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+HAVE_LIB_ERROR, macro in fips
+</dt>
+<dd></dd>
+<dt>
+HAVE_NO_LOCKS, macro in system
+</dt>
+<dd></dd>
+<dt>
+HAVE_PTHREAD_LOCKS, macro in system
+</dt>
+<dd></dd>
+<dt>
+HAVE_SSIZE_T, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+HAVE_UNKNOWN_SIGAID, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+HAVE_WIN32_LOCKS, macro in system
+</dt>
+<dd></dd>
+<dt>
+HAVE_WRITEV, macro in system
+</dt>
+<dd></dd>
+<dt>
+header_0, macro in pr_not_a_character
+</dt>
+<dd></dd>
+<dt>
+header_2, macro in pr_not_a_character
+</dt>
+<dd></dd>
+<dt>
+header_3, macro in pr_not_a_character
+</dt>
+<dd></dd>
+<dt>
+header_4, macro in pr_not_a_character
+</dt>
+<dd></dd>
+<dt>
+HEARTBEAT_DEFAULT_POLICY, macro in heartbeat
+</dt>
+<dd></dd>
+<dt>
+HEARTBEAT_REQUEST, macro in heartbeat
+</dt>
+<dd></dd>
+<dt>
+HEARTBEAT_RESPONSE, macro in heartbeat
+</dt>
+<dd></dd>
+<dt>
+heartbeat_state_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+hex_data_size, function in hex
+</dt>
+<dd></dd>
+<dt>
+hex_decode, function in hex
+</dt>
+<dd></dd>
+<dt>
+hex_encode, function in hex
+</dt>
+<dd></dd>
+<dt>
+hex_str_size, function in hex
+</dt>
+<dd></dd>
+<dt>
+HMAC_CTX, function in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+hmac_streebog256_ctx, macro in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+hmac_streebog256_digest, macro in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+hmac_streebog256_set_key, macro in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+hmac_streebog256_update, macro in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+hmac_streebog512_digest, macro in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+hmac_streebog512_set_key, macro in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+hmac_streebog512_update, macro in hmac-gost
+</dt>
+<dd></dd>
+<dt>
+HRR_RANDOM, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+hs_stage_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<a name="idxI"></a><h3 class="title">I</h3>
+<dt>
+IANA2cert_type, function in cert_types
+</dt>
+<dd></dd>
+<dt>
+if, function in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+IMED_RET, macro in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+IMED_RET_FATAL, macro in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+import_pkcs1, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+import_pkcs3, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+import_raw, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+INCREMENT, macro in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+init_level_t, enum in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+INI_ALLOW_BOM, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_ALLOW_INLINE_COMMENTS, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_ALLOW_MULTILINE, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_ALLOW_REALLOC, macro in ini
+</dt>
+<dd></dd>
+<dt>
+ini_handler, user_function in ini
+</dt>
+<dd></dd>
+<dt>
+INI_HANDLER_LINENO, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_INITIAL_ALLOC, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_INLINE_COMMENT_PREFIXES, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_MAX_LINE, macro in ini
+</dt>
+<dd></dd>
+<dt>
+ini_parse_file, function in ini
+</dt>
+<dd></dd>
+<dt>
+ini_reader, user_function in ini
+</dt>
+<dd></dd>
+<dt>
+INI_START_COMMENT_PREFIXES, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_STOP_ON_FIRST_ERROR, macro in ini
+</dt>
+<dd></dd>
+<dt>
+INI_USE_STACK, macro in ini
+</dt>
+<dd></dd>
+<dt>
+install_tpm2_key, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+INT16_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT16_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT16_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int16_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT16_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT32_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT32_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT32_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int32_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT32_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT64_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT64_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT64_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int64_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT64_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT8_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT8_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT8_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int8_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT8_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+internals_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+INTMAX_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INTMAX_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INTMAX_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+intmax_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INTMAX_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INTPTR_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INTPTR_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+intptr_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INTPTR_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST16_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST16_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_fast16_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST16_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST32_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST32_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_fast32_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST32_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST64_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST64_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_fast64_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST64_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST8_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST8_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_fast8_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_FAST8_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST16_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST16_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_least16_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST16_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST32_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST32_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_least32_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST32_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST64_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST64_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_least64_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST64_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST8_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST8_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+int_least8_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_LEAST8_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+INT_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+iov_iter_st, struct in iov
+</dt>
+<dd></dd>
+<dt>
+ip_in_cidr, function in ip-in-cidr
+</dt>
+<dd></dd>
+<dt>
+ISO_SIG_RSA_SHA1_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+is_cert_type_enabled, function in cert_types
+</dt>
+<dd></dd>
+<dt>
+is_cipher_algo_allowed, macro in fips
+</dt>
+<dd></dd>
+<dt>
+is_cipher_algo_approved_in_fips, function in fips
+</dt>
+<dd></dd>
+<dt>
+IS_DTLS, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+IS_EC, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+IS_GOSTEC, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+IS_KTLS_ENABLED, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+is_mac_algo_allowed, macro in fips
+</dt>
+<dd></dd>
+<dt>
+is_mac_algo_approved_in_fips, function in fips
+</dt>
+<dd></dd>
+<dt>
+is_pkcs11_url_object, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+IS_SERVER, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+IS_SRP_KX, macro in srp
+</dt>
+<dd></dd>
+<a name="idxK"></a><h3 class="title">K</h3>
+<dt>
+KEY_ID_OID, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+key_type_to_pk, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+KRB5_PRINCIPAL_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+KUZNYECHIK_BLOCK_SIZE, macro in kuznyechik
+</dt>
+<dd></dd>
+<dt>
+kuznyechik_ctx, struct in kuznyechik
+</dt>
+<dd></dd>
+<dt>
+kuznyechik_decrypt, macro in kuznyechik
+</dt>
+<dd></dd>
+<dt>
+kuznyechik_encrypt, macro in kuznyechik
+</dt>
+<dd></dd>
+<dt>
+KUZNYECHIK_KEY_SIZE, macro in kuznyechik
+</dt>
+<dd></dd>
+<dt>
+kuznyechik_set_key, macro in kuznyechik
+</dt>
+<dd></dd>
+<dt>
+kuznyechik_set_param, macro in kuznyechik
+</dt>
+<dd></dd>
+<dt>
+KUZNYECHIK_SUBKEYS_SIZE, macro in kuznyechik
+</dt>
+<dd></dd>
+<a name="idxL"></a><h3 class="title">L</h3>
+<dt>
+LEVEL, macro in errors
+</dt>
+<dd></dd>
+<dt>
+LIBGNUTLS_EXTRA_VERSION, macro in compat
+</dt>
+<dd></dd>
+<dt>
+LIBGNUTLS_VERSION, macro in compat
+</dt>
+<dd></dd>
+<dt>
+LIBGNUTLS_VERSION_MAJOR, macro in compat
+</dt>
+<dd></dd>
+<dt>
+LIBGNUTLS_VERSION_MINOR, macro in compat
+</dt>
+<dd></dd>
+<dt>
+LIBGNUTLS_VERSION_NUMBER, macro in compat
+</dt>
+<dd></dd>
+<dt>
+LIBGNUTLS_VERSION_PATCH, macro in compat
+</dt>
+<dd></dd>
+<dt>
+likely, function in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+LLONG_MAX, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+LLONG_MIN, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+LLONG_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+LOCAL_ALLOWED_TO_SEND, macro in heartbeat
+</dt>
+<dd></dd>
+<dt>
+LOCAL_NOT_ALLOWED_TO_SEND, macro in heartbeat
+</dt>
+<dd></dd>
+<dt>
+LONG_BIT, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+LONG_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+lookup_fn, user_function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+LSHIFT_ALIEN_UINT64, macro in block-internal
+</dt>
+<dd></dd>
+<dt>
+LTOSTR_MAX_SIZE, macro in parser_aux
+</dt>
+<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
+<dt>
+mac_entry_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+mac_hd_st, struct in hash_int
+</dt>
+<dd></dd>
+<dt>
+mac_to_entry, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+MAGMA_BLOCK_SIZE, macro in magma
+</dt>
+<dd></dd>
+<dt>
+magma_ctx, struct in magma
+</dt>
+<dd></dd>
+<dt>
+magma_decrypt, macro in magma
+</dt>
+<dd></dd>
+<dt>
+magma_encrypt, macro in magma
+</dt>
+<dd></dd>
+<dt>
+MAGMA_KEY_SIZE, macro in magma
+</dt>
+<dd></dd>
+<dt>
+magma_set_key, macro in magma
+</dt>
+<dd></dd>
+<dt>
+magma_set_param, macro in magma
+</dt>
+<dd></dd>
+<dt>
+map_errs_to_zero, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+MAX_ALGOS, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_ALPN_PROTOCOLS, macro in alpn
+</dt>
+<dd></dd>
+<dt>
+MAX_ALPN_PROTOCOL_NAME, macro in alpn
+</dt>
+<dd></dd>
+<dt>
+MAX_BAG_ELEMENTS, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+MAX_CIPHERSUITE_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_CIPHER_BLOCK_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_CIPHER_IV_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_CIPHER_KEY_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_CN, macro in str
+</dt>
+<dd></dd>
+<dt>
+MAX_COMPRESS_CERTIFICATE_METHODS, macro in compress_certificate
+</dt>
+<dd></dd>
+<dt>
+MAX_CRQ_EXTENSIONS_SIZE, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+max_decrypted_size, function in record
+</dt>
+<dd></dd>
+<dt>
+MAX_DN, macro in str
+</dt>
+<dd></dd>
+<dt>
+MAX_DRBG_AES_GENERATE_SIZE, macro in drbg-aes
+</dt>
+<dd></dd>
+<dt>
+MAX_DTLS_TIMEOUT, macro in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+MAX_ECC_CURVE_SIZE, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+MAX_EPOCH_INDEX, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_EXT_TYPES, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_FAKE_SALT_SEED_SIZE, macro in srp_kx
+</dt>
+<dd></dd>
+<dt>
+MAX_FILENAME, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_HANDSHAKE_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_HANDSHAKE_HELLO_VERIFY_REQUESTS, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_HANDSHAKE_MSGS, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_HANDSHAKE_PACKET_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_HASH_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_HASH_VALUE, macro in composition-table
+</dt>
+<dd></dd>
+<dt>
+MAX_HEARTBEAT_LENGTH, macro in heartbeat
+</dt>
+<dd></dd>
+<dt>
+MAX_ITER_COUNT, macro in common
+</dt>
+<dd></dd>
+<dt>
+MAX_KEY_ID_SIZE, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+MAX_LOG_SIZE, macro in int
+</dt>
+<dd></dd>
+<dt>
+MAX_MAC_KEY_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_NAME_SIZE, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-ocsp.html#MAX-OCSP-MSG-SIZE:CAPS" title="MAX_OCSP_MSG_SIZE">MAX_OCSP_MSG_SIZE</a>, macro in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+MAX_OCSP_RESPONSES, macro in cert
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-ocsp.html#MAX-OCSP-VALIDITY-SECS:CAPS" title="MAX_OCSP_VALIDITY_SECS">MAX_OCSP_VALIDITY_SECS</a>, macro in <a class="link" href="gnutls-ocsp.html" title="ocsp">ocsp</a>
+</dt>
+<dd></dd>
+<dt>
+MAX_OID_SIZE, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+MAX_PAD_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_PK_PARAM_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_PREAMBLE_SIZE, macro in cipher
+</dt>
+<dd></dd>
+<dt>
+MAX_PRF_BYTES, macro in tls1-prf
+</dt>
+<dd></dd>
+<dt>
+MAX_PRIV_PARAMS_SIZE, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+MAX_PUBLIC_PARAMS_SIZE, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+MAX_PVP_SEED_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_RECORD_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+max_record_recv_size, function in record
+</dt>
+<dd></dd>
+<dt>
+MAX_RECORD_SEND_OVERHEAD, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_RECORD_SEND_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+max_record_send_size, function in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_SALT_SIZE, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+MAX_SERVER_NAME_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_SIG_SIZE, macro in tls-sig
+</dt>
+<dd></dd>
+<dt>
+MAX_SRTP_PROFILES, macro in srtp
+</dt>
+<dd></dd>
+<dt>
+MAX_STRING_LEN, macro in common
+</dt>
+<dd></dd>
+<dt>
+MAX_USERNAME_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_VERIFY_DATA_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_VERIFY_DEPTH, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MAX_WORD_LENGTH, macro in composition-table
+</dt>
+<dd></dd>
+<dt>
+MAYBE_UNUSED, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+MBUFFER_FLUSH, macro in buffers
+</dt>
+<dd></dd>
+<dt>
+mbuffer_head_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+mbuffer_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MEMSUB, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+merge_sort_fromto, function in array-mergesort
+</dt>
+<dd></dd>
+<dt>
+millisleep, function in system
+</dt>
+<dd></dd>
+<dt>
+MIN_COMPRESS_CERTIFICATE_METHODS, macro in compress_certificate
+</dt>
+<dd></dd>
+<dt>
+MIN_HASH_VALUE, macro in composition-table
+</dt>
+<dd></dd>
+<dt>
+MIN_RECORD_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MIN_RECORD_SIZE_SMALL, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+MIN_WORD_LENGTH, macro in composition-table
+</dt>
+<dd></dd>
+<dt>
+mode, variable in fips
+</dt>
+<dd></dd>
+<dt>
+MODIFIED, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+mod_auth_st, struct in auth
+</dt>
+<dd></dd>
+<dt>
+mpi_dprint_func, user_function in mpi
+</dt>
+<dd></dd>
+<dt>
+mpn_get_base256, function in mpn-base256
+</dt>
+<dd></dd>
+<dt>
+mpn_set_base256, function in mpn-base256
+</dt>
+<dd></dd>
+<dt>
+MSUSER_PRINCIPAL_NAME_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+muc, variable in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()">mutex_deinit_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()">mutex_init_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()">mutex_lock_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()">mutex_unlock_func</a>, user_function in <a class="link" href="gnutls-gnutls.html" title="gnutls">gnutls</a>
+</dt>
+<dd></dd>
+<a name="idxN"></a><h3 class="title">N</h3>
+<dt>
+name_constraints_node_st, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+name_st, struct in x509_ext_int
+</dt>
+<dd></dd>
+<dt>
+NEED_CERT_ENUM_CRLS, macro in system
+</dt>
+<dd></dd>
+<dt>
+nettle_block16, macro in block8
+</dt>
+<dd></dd>
+<dt>
+nettle_block8, macro in block8
+</dt>
+<dd></dd>
+<dt>
+nettle_get_gost_gc256b, macro in ecc-gost-curve
+</dt>
+<dd></dd>
+<dt>
+nettle_get_gost_gc512a, macro in ecc-gost-curve
+</dt>
+<dd></dd>
+<dt>
+nettle_mpz_get_str_256_u_le, macro in bignum-le
+</dt>
+<dd></dd>
+<dt>
+nettle_mpz_init_set_str_256_u_le, macro in bignum-le
+</dt>
+<dd></dd>
+<dt>
+nettle_mpz_set_str_256_u_le, macro in bignum-le
+</dt>
+<dd></dd>
+<dt>
+nettle_mpz_sizeinbase_256_u_le, macro in bignum-le
+</dt>
+<dd></dd>
+<dt>
+NETTLE_PURE, macro in ecc-gost-curve
+</dt>
+<dd></dd>
+<dt>
+nettle_streebog256, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+nettle_streebog512, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+new_allocated, variable in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+NN_HASH, macro in x86-common
+</dt>
+<dd></dd>
+<dt>
+node_asn, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+node_asn_struct, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+node_data_struct, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+node_tail_cache_st, struct in element
+</dt>
+<dd></dd>
+<dt>
+NODISCARD, macro in attribute
+</dt>
+<dd></dd>
+<dt>
+nonce_func, user_function in hash_int
+</dt>
+<dd></dd>
+<dt>
+now_ms, variable in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+nversion_to_entry, function in algorithms
+</dt>
+<dd></dd>
+<dt>
+N_, macro in str
+</dt>
+<dd></dd>
+<a name="idxO"></a><h3 class="title">O</h3>
+<dt>
+off_t, macro in types
+</dt>
+<dd></dd>
+<dt>
+OID_ATTR_PROV_SEED, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_LDAP_DC, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_LDAP_UID, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_PKCS9_EMAIL, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+oid_to_string, struct in common
+</dt>
+<dd></dd>
+<dt>
+OID_X520_COMMON_NAME, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_X520_COUNTRY_NAME, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_X520_LOCALITY_NAME, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_X520_ORGANIZATIONAL_UNIT_NAME, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_X520_ORGANIZATION_NAME, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+OID_X520_STATE_OR_PROVINCE_NAME, macro in x509_int
+</dt>
+<dd></dd>
+<dt>
+old_allocated, variable in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+option_set_func, user_function in priority_options
+</dt>
+<dd></dd>
+<dt>
+output_func, user_function in hash_int
+</dt>
+<dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
+<dt>
+PACKED_SESSION_MAGIC, macro in db
+</dt>
+<dd></dd>
+<dt>
+padlock_aes_cipher_setkey, function in aes-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_capability, function in aes-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_cbc_encrypt, function in aes-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_cipher_data, struct in aes-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_ctx, struct in aes-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_ecb_encrypt, function in aes-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_reload_key, function in aes-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha1, variable in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha1_blocks, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha1_oneshot, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha1_update, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha224, variable in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha256, variable in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha256_blocks, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha256_oneshot, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha256_update, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha384, variable in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha512, variable in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha512_blocks, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+padlock_sha512_update, function in sha-padlock
+</dt>
+<dd></dd>
+<dt>
+pbe_enc_params, struct in pkcs7_int
+</dt>
+<dd></dd>
+<dt>
+pbkdf2_params, struct in x509_int
+</dt>
+<dd></dd>
+<dt>
+pCertEnumCRLsInStore, variable in system
+</dt>
+<dd></dd>
+<dt>
+PEM_CERT_SEP, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+PEM_CERT_SEP2, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+PEM_CRL, macro in common
+</dt>
+<dd></dd>
+<dt>
+PEM_CRL_SEP, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+PEM_OCSP_RESPONSE, macro in <a class="link" href="gnutls-x509.html" title="x509">x509</a>
+</dt>
+<dd></dd>
+<dt>
+PEM_PK, macro in common
+</dt>
+<dd></dd>
+<dt>
+PEM_PKCS12, macro in common
+</dt>
+<dd></dd>
+<dt>
+PEM_PKCS7, macro in common
+</dt>
+<dd></dd>
+<dt>
+PEM_X509_CERT, macro in common
+</dt>
+<dd></dd>
+<dt>
+PEM_X509_CERT2, macro in common
+</dt>
+<dd></dd>
+<dt>
+pin_info_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+pk, variable in algorithms
+</dt>
+<dd></dd>
+<dt>
+pkcs11_call_token_func, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PKCS11_CHECK_INIT, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PKCS11_CHECK_INIT_FLAGS, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PKCS11_CHECK_INIT_FLAGS_RET, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PKCS11_CHECK_INIT_RET, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_close_session, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_create_object, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_decrypt, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_decrypt_init, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_destroy_object, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_find_objects, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_find_objects_final, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_find_objects_init, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_find_slot, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_generate_key, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_generate_key_pair, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_attribute_avalue, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_attribute_value, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_info, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_mechanism_info, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_mechanism_list, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_module_info, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_slot_info, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_slot_list, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_get_token_info, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PKCS11_ID_SIZE, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_info_to_url, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_init_pin, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_init_token, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PKCS11_LABEL_SIZE, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_login, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_obj_flags_to_int, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_open_session, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_override_cert_exts, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_read_pubkey, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_reinit_function, user_function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_rescan_slots, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_retrieve_pin, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_rv_to_err, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_session_info, struct in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_set_attribute_value, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_set_pin, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_sign, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_sign_init, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_strerror, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_strtype_to_class, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_token_matches_info, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs11_type_to_class, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PKCS11_URL, macro in urls
+</dt>
+<dd></dd>
+<dt>
+PKCS11_URL_SIZE, macro in urls
+</dt>
+<dd></dd>
+<dt>
+pkcs11_url_to_info, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pkcs_cipher_schema_st, struct in pkcs7_int
+</dt>
+<dd></dd>
+<dt>
+PKIX1_RSA_PSS_MGF1_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+PK_DSA_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+PK_GOST_R3410_2001_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+PK_GOST_R3410_2012_256_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+PK_GOST_R3410_2012_512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+PK_GOST_R3410_94_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+pk_hash_data, function in pk
+</dt>
+<dd></dd>
+<dt>
+PK_PKIX1_RSA_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+PK_PKIX1_RSA_PSS_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+pk_prepare_hash, function in pk
+</dt>
+<dd></dd>
+<dt>
+pk_to_genmech, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pk_to_key_type, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+pk_to_mech, function in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+PK_X509_RSA_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+PRE_SHARED_KEY_TLS_ID, macro in pre_shared_key
+</dt>
+<dd></dd>
+<dt>
+prf_raw, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+PRIME_CHECK_PARAM, macro in gnettle
+</dt>
+<dd></dd>
+<dt>
+priority_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+privkey_sign_and_hash_data, function in abstract_int
+</dt>
+<dd></dd>
+<dt>
+privkey_sign_raw_data, function in abstract_int
+</dt>
+<dd></dd>
+<dt>
+psk_client_credentials_st, struct in psk
+</dt>
+<dd></dd>
+<dt>
+psk_ext_iter_st, typedef in psk_ext_parser
+</dt>
+<dd></dd>
+<dt>
+psk_ext_parser_st, struct in psk_ext_parser
+</dt>
+<dd></dd>
+<dt>
+psk_server_cred_st, struct in psk
+</dt>
+<dd></dd>
+<dt>
+psk_st, struct in psk_ext_parser
+</dt>
+<dd></dd>
+<dt>
+ptr, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+PTRDIFF_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+PTRDIFF_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+PTRDIFF_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+pubkey_to_bits, function in abstract_int
+</dt>
+<dd></dd>
+<dt>
+pubkey_verify_data, function in abstract_int
+</dt>
+<dd></dd>
+<a name="idxR"></a><h3 class="title">R</h3>
+<dt>
+REAL_HSK_TYPE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+REAUTH_STATE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+reauth_state_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+record_aes_gcm_encrypt_size, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+RECORD_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+record_parameters_st, typedef in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+record_send_state_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+record_state_st, typedef in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+recv, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+recv_state_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+register_aarch64_crypto, function in aarch64-common
+</dt>
+<dd></dd>
+<dt>
+register_x86_crypto, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+release_tpm2_ctx, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+reset_binders, function in state
+</dt>
+<dd></dd>
+<dt>
+reset_cand_groups, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+RESUMPTION_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+RES_BINDER_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+ret, variable in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+RETURN_DTLS_EAGAIN_OR_TIMEOUT, macro in <a class="link" href="gnutls-dtls.html" title="dtls">dtls</a>
+</dt>
+<dd></dd>
+<dt>
+RIGHT, macro in int
+</dt>
+<dd></dd>
+<dt>
+RMS_MASTER_LABEL, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+rpl_dev_t, typedef in types
+</dt>
+<dd></dd>
+<dt>
+RSA_COEF, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_E1, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_E2, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+rsa_generate_fips186_4_keypair, function in rsa-fips
+</dt>
+<dd></dd>
+<dt>
+RSA_MODULUS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_PRIME1, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_PRIME2, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_PRIV, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_PRIVATE_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_PUB, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSA_PUBLIC_PARAMS, macro in crypto-backend
+</dt>
+<dd></dd>
+<dt>
+RSHIFT_ALIEN_UINT64, macro in block-internal
+</dt>
+<dd></dd>
+<a name="idxS"></a><h3 class="title">S</h3>
+<dt>
+safe_memset, function in gstr
+</dt>
+<dd></dd>
+<dt>
+safe_renegotiation_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+saved_errno, variable in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+SCHAR_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+schema_id, enum in pkcs7_int
+</dt>
+<dd></dd>
+<dt>
+security_parameters_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+send_appropriate_alert, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+send_ticket_state_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+server_session, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+session, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+SESSION_CONTEXT_SPECIFIC, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+SESSION_FORCE_LOGIN, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+SESSION_LOGIN, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+SESSION_NO_CLOSE, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+SESSION_SO, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+SESSION_TRUSTED, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+SESSION_WRITE, macro in pkcs11_int
+</dt>
+<dd></dd>
+<dt>
+setkey_func, user_function in hash_int
+</dt>
+<dd></dd>
+<dt>
+set_adv_version, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+set_certificate_request, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_credentials, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_credentials_file, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_credentials_function, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_db, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_default_version, function in state
+</dt>
+<dd></dd>
+<dt>
+set_dh_params, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_params_function, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_priority, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_retrieve_function, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_rsa_export_params, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_server_name, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_simple_pkcs12_file, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_transport_ptr, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_transport_pull_function, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_transport_pull_timeout_function, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_transport_push_function, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_transport_vec_push_function, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_user_ptr, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_verify_cert, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_verify_flags, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_verify_limits, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_x509_crl, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_x509_crl_file, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_x509_key, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_x509_key_file, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_x509_trust, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+set_x509_trust_file, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+shift, variable in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+SHRT_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+SIGNED_DATA_OID, macro in pkcs7_int
+</dt>
+<dd></dd>
+<dt>
+sign_algorithm_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+sign_algo_list_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+SIG_ATOMIC_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+SIG_ATOMIC_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+SIG_ATOMIC_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA1_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA224_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA256_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA384_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA3_224_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA3_256_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA3_384_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA3_512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_DSA_SHA512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_ECDSA_SHA3_224_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_ECDSA_SHA3_256_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_ECDSA_SHA3_384_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_ECDSA_SHA3_512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_ED448_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_EDDSA_SHA512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_GOST_R3410_2001_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_GOST_R3410_2012_256_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_GOST_R3410_2012_512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_GOST_R3410_94_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_MD2_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_MD5_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_RMD160_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA1_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA224_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA256_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA384_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA3_224_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA3_256_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA3_384_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA3_512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_RSA_SHA512_OID, macro in common
+</dt>
+<dd></dd>
+<dt>
+SIG_SEM_DEFAULT, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+SIG_SEM_PRE_TLS12, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+SIG_SEM_TLS13, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+sizeof, function in u-normalize-internal
+</dt>
+<dd></dd>
+<dt>
+SIZEOF_MPZT, macro in gnettle
+</dt>
+<dd></dd>
+<dt>
+SIZE_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+SIZE_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+srp_client_credentials_st, struct in srp_kx
+</dt>
+<dd></dd>
+<dt>
+srp_ext_st, struct in srp
+</dt>
+<dd></dd>
+<dt>
+SRP_MAX_HASH_SIZE, macro in srp
+</dt>
+<dd></dd>
+<dt>
+SRP_PWD_ENTRY, struct in srp_passwd
+</dt>
+<dd></dd>
+<dt>
+srp_server_cred_st, struct in srp_kx
+</dt>
+<dd></dd>
+<dt>
+srtp_ext_st, struct in srtp
+</dt>
+<dd></dd>
+<dt>
+sr_ext_st, struct in safe_renegotiation
+</dt>
+<dd></dd>
+<dt>
+ssize_t, typedef in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+STATE, macro in <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">handshake</a>
+</dt>
+<dd></dd>
+<dt>
+static_struct_asn, macro in libtasn1
+</dt>
+<dd></dd>
+<dt>
+STATUS_REQUEST_TLS_ID, macro in status_request
+</dt>
+<dd></dd>
+<dt>
+STEK_ROTATION_PERIOD_PRODUCT, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+STREEBOG256_BLOCK_SIZE, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog256_ctx, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog256_digest, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+STREEBOG256_DIGEST_SIZE, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog256_init, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog256_update, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+STREEBOG512_BLOCK_SIZE, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog512_ctx, struct in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog512_digest, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+STREEBOG512_DIGEST_SIZE, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog512_init, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+streebog512_update, macro in streebog
+</dt>
+<dd></dd>
+<dt>
+st_provable_prime, function in dsa-fips
+</dt>
+<dd></dd>
+<dt>
+SYSTEM_CONFIG_OR_CONST, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+system_errno, function in system
+</dt>
+<dd></dd>
+<dt>
+system_key_iter_st, struct in system-keys
+</dt>
+<dd></dd>
+<dt>
+system_read, function in system
+</dt>
+<dd></dd>
+<dt>
+SYSTEM_URL, macro in urls
+</dt>
+<dd></dd>
+<dt>
+SYSTEM_URL_SIZE, macro in urls
+</dt>
+<dd></dd>
+<dt>
+system_write, function in system
+</dt>
+<dd></dd>
+<dt>
+system_writev, function in system
+</dt>
+<dd></dd>
+<dt>
+system_writev_nosignal, function in system
+</dt>
+<dd></dd>
+<dt>
+system_writev_nosignal_tfo, function in system
+</dt>
+<dd></dd>
+<dt>
+system_writev_tfo, function in system
+</dt>
+<dd></dd>
+<a name="idxT"></a><h3 class="title">T</h3>
+<dt>
+tfo_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_BLOCK_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_CIPHER, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_CIPHER_KEY_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_IV_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_KEY_NAME_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_MAC_ALGO, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_MAC_SECRET_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_MAC_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_MASTER_KEY_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+ticket_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TICKET_STATE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+timespec_sub_ms, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+tls10_prf, macro in tls1-prf
+</dt>
+<dd></dd>
+<dt>
+tls12_prf, macro in tls1-prf
+</dt>
+<dd></dd>
+<dt>
+TLS13_APPENDIX_D4, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+TLS13_TICKETS_TO_SEND, macro in handshake-defs
+</dt>
+<dd></dd>
+<dt>
+tls13_ticket_deinit, function in session_ticket
+</dt>
+<dd></dd>
+<dt>
+tls13_ticket_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TLS_HANDSHAKE_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TLS_RECORD_HEADER_SIZE, macro in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+TLS_SIGN_AID_UNKNOWN, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+TMP_ALLOC, macro in nettle-alloca
+</dt>
+<dd></dd>
+<dt>
+TMP_DECL, macro in nettle-alloca
+</dt>
+<dd></dd>
+<dt>
+TOMPZ, macro in gnettle
+</dt>
+<dd></dd>
+<dt>
+TOTAL_KEYWORDS, macro in composition-table
+</dt>
+<dd></dd>
+<dt>
+tpm2_convert_public, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_deinit_fn, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_ec_sign_hash_fn, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_esys_deinit, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_info_init, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_info_st, struct in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_key_curve, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_rsa_key_bits, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+tpm2_rsa_sign_hash_fn, function in tpm2
+</dt>
+<dd></dd>
+<dt>
+TPMKEY_URL, macro in urls
+</dt>
+<dd></dd>
+<dt>
+TPMKEY_URL_SIZE, macro in urls
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gnutls-tpm.html#tpm-key-list-st" title="struct tpm_key_list_st">tpm_key_list_st</a>, struct in <a class="link" href="gnutls-tpm.html" title="tpm">tpm</a>
+</dt>
+<dd></dd>
+<dt>
+transport_t, enum in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+type, variable in int
+</dt>
+<dd></dd>
+<a name="idxU"></a><h3 class="title">U</h3>
+<dt>
+u16_cpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_cpy_alloc, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_mbtouc, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_mbtoucr, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_mbtouc_aux, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_mbtouc_unsafe, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_mbtouc_unsafe_aux, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_move, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_next, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_normalize, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u16_normcmp, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u16_normcoll, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u16_normxfrm, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u16_prev, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_set, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_stpcpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_stpncpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strcat, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strcoll, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strcpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strdup, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strmbtouc, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strncat, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strncpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_strtok, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_to_u32, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_to_u8, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_uctomb, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u16_uctomb_aux, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_cpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_cpy_alloc, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_mbtouc, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_mbtoucr, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_mbtouc_unsafe, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_move, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_next, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_normalize, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u32_normcmp, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u32_normcoll, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u32_normxfrm, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u32_prev, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_set, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_stpcpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_stpncpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strcat, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strcoll, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strcpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strdup, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strmbtouc, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strncat, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strncpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_strtok, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_to_u16, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_to_u8, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u32_uctomb, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_check, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_cmp, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_cpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_mblen, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_mbtouc, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_mbtoucr, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_mbtouc_aux, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_mbtouc_unsafe, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_mbtouc_unsafe_aux, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_move, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_next, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_normcmp, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u8_normcoll, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u8_normxfrm, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+u8_prev, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_set, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_stpcpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_stpncpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strcat, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strchr, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strcmp_gnu, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strlen, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strmblen, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strncat, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strncmp, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_strncpy, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_to_u32, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_uctomb, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+u8_uctomb_aux, function in unistr.in
+</dt>
+<dd></dd>
+<dt>
+UCHAR_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+ucs4_t, typedef in unitypes.in
+</dt>
+<dd></dd>
+<dt>
+ucs4_with_ccc, struct in decompose-internal
+</dt>
+<dd></dd>
+<dt>
+uc_block, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_canonical_decomposition, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+UC_CASED_LETTER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_C, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Cc, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Cf, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Cn, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Co, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Cs, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_L, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_LC, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Ll, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Lm, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Lo, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Lt, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Lu, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_M, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Mc, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Me, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Mn, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_N, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Nd, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Nl, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_No, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_P, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Pc, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Pd, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Pe, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Pf, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Pi, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Po, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Ps, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_S, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Sc, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Sk, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Sm, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_So, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Z, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Zl, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Zp, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CATEGORY_Zs, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CLOSE_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_COMBINING_SPACING_MARK, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_compat_decomposition, function in decompose-internal
+</dt>
+<dd></dd>
+<dt>
+uc_composition, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+UC_CONNECTOR_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CONTROL, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_CURRENCY_SYMBOL, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_DASH_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_DECIMAL_DIGIT_NUMBER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_decomposition, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+UC_DECOMPOSITION_MAX_LENGTH, macro in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+UC_ENCLOSING_MARK, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_FINAL_QUOTE_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_FORMAT, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_general_category_and, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_general_category_and_not, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_general_category_name, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_general_category_or, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_INITIAL_QUOTE_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_is_property, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_is_property_white_space, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_joining_type_name, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_LETTER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_LETTER_NUMBER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_LINE_SEPARATOR, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_LOWERCASE_LETTER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_MARK, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_MATH_SYMBOL, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_MODIFIER_LETTER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_MODIFIER_SYMBOL, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_NON_SPACING_MARK, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_NUMBER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_OPEN_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_OTHER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_OTHER_LETTER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_OTHER_NUMBER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_OTHER_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_OTHER_SYMBOL, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PARAGRAPH_SEPARATOR, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PRIVATE_USE, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_ALPHABETIC, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_ASCII_HEX_DIGIT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_ARABIC_DIGIT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_ARABIC_RIGHT_TO_LEFT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_BLOCK_SEPARATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_BOUNDARY_NEUTRAL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_COMMON_SEPARATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_CONTROL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_EMBEDDING_OR_OVERRIDE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_EUROPEAN_DIGIT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_EUR_NUM_SEPARATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_EUR_NUM_TERMINATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_HEBREW_RIGHT_TO_LEFT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_LEFT_TO_RIGHT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_NON_SPACING_MARK, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_OTHER_NEUTRAL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_PDF, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_SEGMENT_SEPARATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_BIDI_WHITESPACE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_property_byname, function in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CASED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CASE_IGNORABLE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CHANGES_WHEN_CASEFOLDED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CHANGES_WHEN_CASEMAPPED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CHANGES_WHEN_LOWERCASED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CHANGES_WHEN_TITLECASED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CHANGES_WHEN_UPPERCASED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_COMBINING, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_COMPOSITE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_CURRENCY_SYMBOL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_DASH, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_DECIMAL_DIGIT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_DEFAULT_IGNORABLE_CODE_POINT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_DEPRECATED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_DIACRITIC, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_EXTENDER, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_FORMAT_CONTROL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_GRAPHEME_BASE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_GRAPHEME_EXTEND, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_GRAPHEME_LINK, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_HEX_DIGIT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_HYPHEN, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_IDEOGRAPHIC, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_IDS_BINARY_OPERATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_IDS_TRINARY_OPERATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_ID_CONTINUE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_ID_START, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_IGNORABLE_CONTROL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_ISO_CONTROL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+uc_property_is_valid, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_JOIN_CONTROL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_LEFT_OF_PAIR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_LINE_SEPARATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_LOGICAL_ORDER_EXCEPTION, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_LOWERCASE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_MATH, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_NON_BREAK, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_NOT_A_CHARACTER, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_NUMERIC, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_ALPHABETIC, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_DEFAULT_IGNORABLE_CODE_POINT, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_GRAPHEME_EXTEND, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_ID_CONTINUE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_ID_START, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_LOWERCASE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_MATH, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_OTHER_UPPERCASE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_PAIRED_PUNCTUATION, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_PARAGRAPH_SEPARATOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_PATTERN_SYNTAX, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_PATTERN_WHITE_SPACE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_PRIVATE_USE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_PUNCTUATION, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_QUOTATION_MARK, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_RADICAL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_SENTENCE_TERMINAL, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_SOFT_DOTTED, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_SPACE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_TERMINAL_PUNCTUATION, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_TITLECASE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_UNASSIGNED_CODE_VALUE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_UNIFIED_IDEOGRAPH, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_UPPERCASE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_VARIATION_SELECTOR, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_WHITE_SPACE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_XID_CONTINUE, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_XID_START, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PROPERTY_ZERO_WIDTH, variable in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_PUNCTUATION, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_SEPARATOR, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_SPACE_SEPARATOR, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_SURROGATE, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_SYMBOL, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_TITLECASE_LETTER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_UNASSIGNED, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UC_UPPERCASE_LETTER, macro in unictype.in
+</dt>
+<dd></dd>
+<dt>
+UINT16_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT16_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint16_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT16_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT32_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT32_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint32_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT32_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT64_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT64_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint64_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT64_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT8_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT8_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint8_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT8_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINTMAX_C, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINTMAX_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uintmax_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINTMAX_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINTPTR_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uintptr_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINTPTR_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST16_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_fast16_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST16_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST32_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_fast32_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST32_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST64_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_fast64_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST64_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST8_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_fast8_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_FAST8_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST16_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_least16_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST16_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST32_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_least32_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST32_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST64_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_least64_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST64_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST8_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+uint_least8_t, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_LEAST8_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+UINT_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+ULLONG_MAX, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+ULLONG_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+ULONG_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+unicode_normalization_form, struct in normalize-internal
+</dt>
+<dd></dd>
+<dt>
+uninorm_filter, struct in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+uninorm_filter_create, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+uninorm_filter_flush, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+uninorm_filter_free, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+uninorm_filter_write, function in uninorm.in
+</dt>
+<dd></dd>
+<dt>
+unlikely, function in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+UP, macro in int
+</dt>
+<dd></dd>
+<dt>
+USHRT_WIDTH, macro in limits.in
+</dt>
+<dd></dd>
+<a name="idxV"></a><h3 class="title">V</h3>
+<dt>
+version_entry_st, struct in gnutls_int
+</dt>
+<dd></dd>
+<dt>
+version_to_entry, macro in algorithms
+</dt>
+<dd></dd>
+<dt>
+vpaes_cbc_encrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+vpaes_decrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+vpaes_encrypt, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+vpaes_set_decrypt_key, function in aes-x86
+</dt>
+<dd></dd>
+<dt>
+vpaes_set_encrypt_key, function in aes-x86
+</dt>
+<dd></dd>
+<a name="idxW"></a><h3 class="title">W</h3>
+<dt>
+WCHAR_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+WCHAR_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+WCHAR_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+what, function in gnutlsxx
+</dt>
+<dd></dd>
+<dt>
+WINT_MAX, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+WINT_MIN, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+WINT_WIDTH, macro in stdint.in
+</dt>
+<dd></dd>
+<dt>
+WORD_BIT, macro in limits.in
+</dt>
+<dd></dd>
+<dt>
+wrap_padlock_hash_fast, function in sha-padlock
+</dt>
+<dd></dd>
+<a name="idxX"></a><h3 class="title">X</h3>
+<dt>
+x509_crt_to_raw_pubkey, function in common
+</dt>
+<dd></dd>
+<dt>
+x86_sha1, variable in sha-x86
+</dt>
+<dd></dd>
+<dt>
+x86_sha1_update, function in sha-x86
+</dt>
+<dd></dd>
+<dt>
+x86_sha224, variable in sha-x86
+</dt>
+<dd></dd>
+<dt>
+x86_sha256, variable in sha-x86
+</dt>
+<dd></dd>
+<dt>
+x86_sha256_update, function in sha-x86
+</dt>
+<dd></dd>
+<dt>
+x86_sha384, variable in sha-x86
+</dt>
+<dd></dd>
+<dt>
+x86_sha512, variable in sha-x86
+</dt>
+<dd></dd>
+<dt>
+x86_sha512_update, function in sha-x86
+</dt>
+<dd></dd>
+<dt>
+XMPP_OID, macro in common
+</dt>
+<dd></dd>
+<a name="idxZ"></a><h3 class="title">Z</h3>
+<dt>
+zeroize_key, macro in mem
+</dt>
+<dd></dd>
+<dt>
+zeroize_temp_key, macro in mem
+</dt>
+<dd></dd>
+<dt>
+zrelease_mpi_key, macro in mem
+</dt>
+<dd></dd>
+<dt>
+zrelease_temp_mpi_key, macro in mem
+</dt>
+<dd></dd>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-abstract.html b/doc/reference/html/gnutls-abstract.html
new file mode 100644
index 0000000..9d3d1ff
--- /dev/null
+++ b/doc/reference/html/gnutls-abstract.html
@@ -0,0 +1,7027 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>abstract: 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-gnutls.html" title="gnutls">
+<link rel="next" href="gnutls-x509.html" title="x509">
+<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-abstract.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-gnutls.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-x509.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-abstract"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-abstract.top_of_page"></a>abstract</span></h2>
+<p>abstract</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-abstract.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-abstract.html#gnutls-privkey-sign-func" title="gnutls_privkey_sign_func ()">*gnutls_privkey_sign_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func" title="gnutls_privkey_decrypt_func ()">*gnutls_privkey_decrypt_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func2" title="gnutls_privkey_decrypt_func2 ()">*gnutls_privkey_decrypt_func2</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash-func" title="gnutls_privkey_sign_hash_func ()">*gnutls_privkey_sign_hash_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data-func" title="gnutls_privkey_sign_data_func ()">*gnutls_privkey_sign_data_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit-func" title="gnutls_privkey_deinit_func ()">*gnutls_privkey_deinit_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-abstract.html#GNUTLS-SIGN-ALGO-TO-FLAGS:CAPS" title="GNUTLS_SIGN_ALGO_TO_FLAGS()">GNUTLS_SIGN_ALGO_TO_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-abstract.html#GNUTLS-FLAGS-TO-SIGN-ALGO:CAPS" title="GNUTLS_FLAGS_TO_SIGN_ALGO()">GNUTLS_FLAGS_TO_SIGN_ALGO</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-abstract.html#gnutls-privkey-info-func" title="gnutls_privkey_info_func ()">*gnutls_privkey_info_func</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-abstract.html#gnutls-pubkey-init" title="gnutls_pubkey_init ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-deinit" title="gnutls_pubkey_deinit ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-verify-params" title="gnutls_pubkey_verify_params ()">gnutls_pubkey_verify_params</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-abstract.html#gnutls-pubkey-set-pin-function" title="gnutls_pubkey_set_pin_function ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-get-pk-algorithm" title="gnutls_pubkey_get_pk_algorithm ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-set-spki" title="gnutls_pubkey_set_spki ()">gnutls_pubkey_set_spki</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-abstract.html#gnutls-pubkey-get-spki" title="gnutls_pubkey_get_spki ()">gnutls_pubkey_get_spki</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-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()">gnutls_pubkey_import_x509</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-abstract.html#gnutls-pubkey-import-x509-crq" title="gnutls_pubkey_import_x509_crq ()">gnutls_pubkey_import_x509_crq</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-abstract.html#gnutls-pubkey-import-pkcs11" title="gnutls_pubkey_import_pkcs11 ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-import-openpgp" title="gnutls_pubkey_import_openpgp ()">gnutls_pubkey_import_openpgp</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-abstract.html#gnutls-pubkey-import-openpgp-raw" title="gnutls_pubkey_import_openpgp_raw ()">gnutls_pubkey_import_openpgp_raw</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-abstract.html#gnutls-pubkey-import-x509-raw" title="gnutls_pubkey_import_x509_raw ()">gnutls_pubkey_import_x509_raw</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-abstract.html#gnutls-pubkey-import-privkey" title="gnutls_pubkey_import_privkey ()">gnutls_pubkey_import_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-abstract.html#gnutls-pubkey-import-tpm-url" title="gnutls_pubkey_import_tpm_url ()">gnutls_pubkey_import_tpm_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-abstract.html#gnutls-pubkey-import-url" title="gnutls_pubkey_import_url ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-import-tpm-raw" title="gnutls_pubkey_import_tpm_raw ()">gnutls_pubkey_import_tpm_raw</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-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()">gnutls_pubkey_get_preferred_hash_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-abstract.html#gnutls-pubkey-export-rsa-raw" title="gnutls_pubkey_export_rsa_raw ()">gnutls_pubkey_export_rsa_raw</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-abstract.html#gnutls-pubkey-export-rsa-raw2" title="gnutls_pubkey_export_rsa_raw2 ()">gnutls_pubkey_export_rsa_raw2</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-abstract.html#gnutls-pubkey-export-dsa-raw" title="gnutls_pubkey_export_dsa_raw ()">gnutls_pubkey_export_dsa_raw</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-abstract.html#gnutls-pubkey-export-dsa-raw2" title="gnutls_pubkey_export_dsa_raw2 ()">gnutls_pubkey_export_dsa_raw2</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-abstract.html#gnutls-pubkey-export-ecc-raw2" title="gnutls_pubkey_export_ecc_raw2 ()">gnutls_pubkey_export_ecc_raw2</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-abstract.html#gnutls-pubkey-export-gost-raw2" title="gnutls_pubkey_export_gost_raw2 ()">gnutls_pubkey_export_gost_raw2</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-abstract.html#gnutls-pubkey-export-ecc-raw" title="gnutls_pubkey_export_ecc_raw ()">gnutls_pubkey_export_ecc_raw</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-abstract.html#gnutls-pubkey-export-ecc-x962" title="gnutls_pubkey_export_ecc_x962 ()">gnutls_pubkey_export_ecc_x962</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-abstract.html#gnutls-pubkey-export" title="gnutls_pubkey_export ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-export2" title="gnutls_pubkey_export2 ()">gnutls_pubkey_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-abstract.html#gnutls-pubkey-get-key-id" title="gnutls_pubkey_get_key_id ()">gnutls_pubkey_get_key_id</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-abstract.html#gnutls-pubkey-get-openpgp-key-id" title="gnutls_pubkey_get_openpgp_key_id ()">gnutls_pubkey_get_openpgp_key_id</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-abstract.html#gnutls-pubkey-get-key-usage" title="gnutls_pubkey_get_key_usage ()">gnutls_pubkey_get_key_usage</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-abstract.html#gnutls-pubkey-set-key-usage" title="gnutls_pubkey_set_key_usage ()">gnutls_pubkey_set_key_usage</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-abstract.html#gnutls-pubkey-import" title="gnutls_pubkey_import ()">gnutls_pubkey_import</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" title="gnutls_pubkey_import_pkcs11_url()">gnutls_pubkey_import_pkcs11_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-abstract.html#gnutls-pubkey-import-dsa-raw" title="gnutls_pubkey_import_dsa_raw ()">gnutls_pubkey_import_dsa_raw</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-abstract.html#gnutls-pubkey-import-rsa-raw" title="gnutls_pubkey_import_rsa_raw ()">gnutls_pubkey_import_rsa_raw</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-abstract.html#gnutls-pubkey-import-ecc-x962" title="gnutls_pubkey_import_ecc_x962 ()">gnutls_pubkey_import_ecc_x962</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-abstract.html#gnutls-pubkey-import-ecc-raw" title="gnutls_pubkey_import_ecc_raw ()">gnutls_pubkey_import_ecc_raw</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-abstract.html#gnutls-pubkey-import-gost-raw" title="gnutls_pubkey_import_gost_raw ()">gnutls_pubkey_import_gost_raw</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-abstract.html#gnutls-pubkey-encrypt-data" title="gnutls_pubkey_encrypt_data ()">gnutls_pubkey_encrypt_data</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-abstract.html#gnutls-x509-crt-set-pubkey" title="gnutls_x509_crt_set_pubkey ()">gnutls_x509_crt_set_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-abstract.html#gnutls-x509-crq-set-pubkey" title="gnutls_x509_crq_set_pubkey ()">gnutls_x509_crq_set_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-abstract.html#gnutls-pubkey-verify-hash2" title="gnutls_pubkey_verify_hash2 ()">gnutls_pubkey_verify_hash2</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-abstract.html#gnutls-pubkey-verify-data2" title="gnutls_pubkey_verify_data2 ()">gnutls_pubkey_verify_data2</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-abstract.html#gnutls-privkey-init" title="gnutls_privkey_init ()">gnutls_privkey_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-abstract.html#gnutls-privkey-deinit" title="gnutls_privkey_deinit ()">gnutls_privkey_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-abstract.html#GNUTLS-SUBGROUP-TO-BITS:CAPS" title="GNUTLS_SUBGROUP_TO_BITS()">GNUTLS_SUBGROUP_TO_BITS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-abstract.html#GNUTLS-BITS-TO-SUBGROUP:CAPS" title="GNUTLS_BITS_TO_SUBGROUP()">GNUTLS_BITS_TO_SUBGROUP</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-abstract.html#GNUTLS-BITS-TO-GROUP:CAPS" title="GNUTLS_BITS_TO_GROUP()">GNUTLS_BITS_TO_GROUP</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-abstract.html#GNUTLS-BITS-HAVE-SUBGROUP:CAPS" title="GNUTLS_BITS_HAVE_SUBGROUP()">GNUTLS_BITS_HAVE_SUBGROUP</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-abstract.html#gnutls-privkey-generate" title="gnutls_privkey_generate ()">gnutls_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-abstract.html#gnutls-privkey-generate2" title="gnutls_privkey_generate2 ()">gnutls_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-abstract.html#gnutls-privkey-set-spki" title="gnutls_privkey_set_spki ()">gnutls_privkey_set_spki</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-abstract.html#gnutls-privkey-get-spki" title="gnutls_privkey_get_spki ()">gnutls_privkey_get_spki</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-abstract.html#gnutls-privkey-verify-seed" title="gnutls_privkey_verify_seed ()">gnutls_privkey_verify_seed</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-abstract.html#gnutls-privkey-get-seed" title="gnutls_privkey_get_seed ()">gnutls_privkey_get_seed</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-abstract.html#gnutls-privkey-verify-params" title="gnutls_privkey_verify_params ()">gnutls_privkey_verify_params</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-abstract.html#gnutls-privkey-set-flags" title="gnutls_privkey_set_flags ()">gnutls_privkey_set_flags</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-abstract.html#gnutls-privkey-set-pin-function" title="gnutls_privkey_set_pin_function ()">gnutls_privkey_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-abstract.html#gnutls-privkey-get-pk-algorithm" title="gnutls_privkey_get_pk_algorithm ()">gnutls_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-abstract.html#gnutls-privkey-status" title="gnutls_privkey_status ()">gnutls_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-abstract.html#gnutls-privkey-import-pkcs11" title="gnutls_privkey_import_pkcs11 ()">gnutls_privkey_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-abstract.html#gnutls-privkey-import-x509" title="gnutls_privkey_import_x509 ()">gnutls_privkey_import_x509</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-abstract.html#gnutls-privkey-import-openpgp" title="gnutls_privkey_import_openpgp ()">gnutls_privkey_import_openpgp</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-abstract.html#gnutls-privkey-export-x509" title="gnutls_privkey_export_x509 ()">gnutls_privkey_export_x509</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-abstract.html#gnutls-privkey-export-openpgp" title="gnutls_privkey_export_openpgp ()">gnutls_privkey_export_openpgp</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-abstract.html#gnutls-privkey-export-pkcs11" title="gnutls_privkey_export_pkcs11 ()">gnutls_privkey_export_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-abstract.html#gnutls-privkey-import-openpgp-raw" title="gnutls_privkey_import_openpgp_raw ()">gnutls_privkey_import_openpgp_raw</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-abstract.html#gnutls-privkey-import-x509-raw" title="gnutls_privkey_import_x509_raw ()">gnutls_privkey_import_x509_raw</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-abstract.html#gnutls-privkey-import-tpm-raw" title="gnutls_privkey_import_tpm_raw ()">gnutls_privkey_import_tpm_raw</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-abstract.html#gnutls-privkey-import-tpm-url" title="gnutls_privkey_import_tpm_url ()">gnutls_privkey_import_tpm_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-abstract.html#gnutls-privkey-import-url" title="gnutls_privkey_import_url ()">gnutls_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-abstract.html#gnutls-privkey-import-pkcs11-url" title="gnutls_privkey_import_pkcs11_url ()">gnutls_privkey_import_pkcs11_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-abstract.html#gnutls-privkey-import-ext" title="gnutls_privkey_import_ext ()">gnutls_privkey_import_ext</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-abstract.html#gnutls-privkey-import-ext2" title="gnutls_privkey_import_ext2 ()">gnutls_privkey_import_ext2</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-abstract.html#gnutls-privkey-import-ext3" title="gnutls_privkey_import_ext3 ()">gnutls_privkey_import_ext3</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-abstract.html#gnutls-privkey-import-ext4" title="gnutls_privkey_import_ext4 ()">gnutls_privkey_import_ext4</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-abstract.html#gnutls-privkey-import-dsa-raw" title="gnutls_privkey_import_dsa_raw ()">gnutls_privkey_import_dsa_raw</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-abstract.html#gnutls-privkey-import-rsa-raw" title="gnutls_privkey_import_rsa_raw ()">gnutls_privkey_import_rsa_raw</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-abstract.html#gnutls-privkey-import-ecc-raw" title="gnutls_privkey_import_ecc_raw ()">gnutls_privkey_import_ecc_raw</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-abstract.html#gnutls-privkey-import-gost-raw" title="gnutls_privkey_import_gost_raw ()">gnutls_privkey_import_gost_raw</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-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()">gnutls_privkey_sign_data</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-abstract.html#gnutls-privkey-sign-data2" title="gnutls_privkey_sign_data2 ()">gnutls_privkey_sign_data2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-raw-data" title="gnutls_privkey_sign_raw_data()">gnutls_privkey_sign_raw_data</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-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()">gnutls_privkey_sign_hash</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-abstract.html#gnutls-privkey-sign-hash2" title="gnutls_privkey_sign_hash2 ()">gnutls_privkey_sign_hash2</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-abstract.html#gnutls-privkey-decrypt-data" title="gnutls_privkey_decrypt_data ()">gnutls_privkey_decrypt_data</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-abstract.html#gnutls-privkey-decrypt-data2" title="gnutls_privkey_decrypt_data2 ()">gnutls_privkey_decrypt_data2</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-abstract.html#gnutls-privkey-export-rsa-raw" title="gnutls_privkey_export_rsa_raw ()">gnutls_privkey_export_rsa_raw</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-abstract.html#gnutls-privkey-export-rsa-raw2" title="gnutls_privkey_export_rsa_raw2 ()">gnutls_privkey_export_rsa_raw2</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-abstract.html#gnutls-privkey-export-dsa-raw" title="gnutls_privkey_export_dsa_raw ()">gnutls_privkey_export_dsa_raw</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-abstract.html#gnutls-privkey-export-dsa-raw2" title="gnutls_privkey_export_dsa_raw2 ()">gnutls_privkey_export_dsa_raw2</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-abstract.html#gnutls-privkey-export-ecc-raw" title="gnutls_privkey_export_ecc_raw ()">gnutls_privkey_export_ecc_raw</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-abstract.html#gnutls-privkey-export-ecc-raw2" title="gnutls_privkey_export_ecc_raw2 ()">gnutls_privkey_export_ecc_raw2</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-abstract.html#gnutls-privkey-export-gost-raw2" title="gnutls_privkey_export_gost_raw2 ()">gnutls_privkey_export_gost_raw2</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-abstract.html#gnutls-x509-crt-privkey-sign" title="gnutls_x509_crt_privkey_sign ()">gnutls_x509_crt_privkey_sign</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-abstract.html#gnutls-x509-crl-privkey-sign" title="gnutls_x509_crl_privkey_sign ()">gnutls_x509_crl_privkey_sign</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-abstract.html#gnutls-x509-crq-privkey-sign" title="gnutls_x509_crq_privkey_sign ()">gnutls_x509_crq_privkey_sign</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-abstract.html#gnutls-pcert-import-x509" title="gnutls_pcert_import_x509 ()">gnutls_pcert_import_x509</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-abstract.html#gnutls-pcert-import-x509-list" title="gnutls_pcert_import_x509_list ()">gnutls_pcert_import_x509_list</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-abstract.html#gnutls-pcert-export-x509" title="gnutls_pcert_export_x509 ()">gnutls_pcert_export_x509</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-abstract.html#gnutls-pcert-list-import-x509-raw" title="gnutls_pcert_list_import_x509_raw ()">gnutls_pcert_list_import_x509_raw</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-abstract.html#gnutls-pcert-list-import-x509-file" title="gnutls_pcert_list_import_x509_file ()">gnutls_pcert_list_import_x509_file</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-abstract.html#gnutls-pcert-import-x509-raw" title="gnutls_pcert_import_x509_raw ()">gnutls_pcert_import_x509_raw</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-abstract.html#gnutls-pcert-import-openpgp-raw" title="gnutls_pcert_import_openpgp_raw ()">gnutls_pcert_import_openpgp_raw</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-abstract.html#gnutls-pcert-import-openpgp" title="gnutls_pcert_import_openpgp ()">gnutls_pcert_import_openpgp</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-abstract.html#gnutls-pcert-export-openpgp" title="gnutls_pcert_export_openpgp ()">gnutls_pcert_export_openpgp</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-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()">gnutls_pcert_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-abstract.html#gnutls-pcert-import-rawpk" title="gnutls_pcert_import_rawpk ()">gnutls_pcert_import_rawpk</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-abstract.html#gnutls-pcert-import-rawpk-raw" title="gnutls_pcert_import_rawpk_raw ()">gnutls_pcert_import_rawpk_raw</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-abstract.html#gnutls-certificate-set-retrieve-function2" title="gnutls_certificate_set_retrieve_function2 ()">gnutls_certificate_set_retrieve_function2</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-abstract.html#gnutls-certificate-set-retrieve-function3" title="gnutls_certificate_set_retrieve_function3 ()">gnutls_certificate_set_retrieve_function3</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-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()">gnutls_certificate_set_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-abstract.html#gnutls-pubkey-print" title="gnutls_pubkey_print ()">gnutls_pubkey_print</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-abstract.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-abstract.html#GNUTLS-PUBKEY-VERIFY-FLAG-TLS-RSA:CAPS" title="GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA">GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-pubkey-flags-t" title="enum gnutls_pubkey_flags_t">gnutls_pubkey_flags_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t">gnutls_abstract_export_flags_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#GNUTLS-PUBKEY-VERIFY-FLAG-TLS1-RSA:CAPS" title="GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA">GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_PK_ALGO">GNUTLS_PRIVKEY_INFO_PK_ALGO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-SIGN-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_SIGN_ALGO">GNUTLS_PRIVKEY_INFO_SIGN_ALGO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-HAVE-SIGN-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO">GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO-BITS:CAPS" title="GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS">GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw" title="gnutls_pubkey_get_pk_rsa_raw">gnutls_pubkey_get_pk_rsa_raw</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw" title="gnutls_pubkey_get_pk_dsa_raw">gnutls_pubkey_get_pk_dsa_raw</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-ecc-raw" title="gnutls_pubkey_get_pk_ecc_raw">gnutls_pubkey_get_pk_ecc_raw</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-pk-ecc-x962" title="gnutls_pubkey_get_pk_ecc_x962">gnutls_pubkey_get_pk_ecc_x962</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t">gnutls_privkey_flags_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st">gnutls_pcert_st</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#GNUTLS-PCERT-NO-CERT:CAPS" title="GNUTLS_PCERT_NO_CERT">GNUTLS_PCERT_NO_CERT</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#gnutls-cert-retr-st" title="struct gnutls_cert_retr_st">gnutls_cert_retr_st</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-abstract.html#GNUTLS-CERT-RETR-DEINIT-ALL:CAPS" title="GNUTLS_CERT_RETR_DEINIT_ALL">GNUTLS_CERT_RETR_DEINIT_ALL</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-abstract.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-abstract.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-privkey-sign-func"></a><h3>gnutls_privkey_sign_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_privkey_sign_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</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> *raw_data</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> *signature</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-decrypt-func"></a><h3>gnutls_privkey_decrypt_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_privkey_decrypt_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</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> *ciphertext</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> *plaintext</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-decrypt-func2"></a><h3>gnutls_privkey_decrypt_func2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_privkey_decrypt_func2<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</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> *ciphertext</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *plaintext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> plaintext_size</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-sign-hash-func"></a><h3>gnutls_privkey_sign_hash_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_privkey_sign_hash_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *hash</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> *signature</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-sign-data-func"></a><h3>gnutls_privkey_sign_data_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_privkey_sign_data_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *data</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> *signature</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-deinit-func"></a><h3>gnutls_privkey_deinit_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_privkey_deinit_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-SIGN-ALGO-TO-FLAGS:CAPS"></a><h3>GNUTLS_SIGN_ALGO_TO_FLAGS()</h3>
+<pre class="programlisting">#define GNUTLS_SIGN_ALGO_TO_FLAGS(sig) (unsigned int)((sig)&lt;&lt;20)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FLAGS-TO-SIGN-ALGO:CAPS"></a><h3>GNUTLS_FLAGS_TO_SIGN_ALGO()</h3>
+<pre class="programlisting">#define GNUTLS_FLAGS_TO_SIGN_ALGO(flags) (unsigned int)((flags)&gt;&gt;20)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-info-func"></a><h3>gnutls_privkey_info_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_privkey_info_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-init"></a><h3>gnutls_pubkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_init (<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> *key</code></em>);</pre>
+<p>This function will initialize a public key.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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-pubkey-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-pubkey-deinit"></a><h3>gnutls_pubkey_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pubkey_deinit (<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> key</code></em>);</pre>
+<p>This function will deinitialize a public key structure.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-verify-params"></a><h3>gnutls_pubkey_verify_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_verify_params (<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> key</code></em>);</pre>
+<p>This function will verify the public key parameters.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-verify-params.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-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-verify-params.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-set-pin-function"></a><h3>gnutls_pubkey_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pubkey_set_pin_function (<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> 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 any other
+global PIN functions.</p>
+<p>Note that this function must be called right after initialization
+to have effect.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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>A key of type <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a></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-pubkey-get-pk-algorithm"></a><h3>gnutls_pubkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_get_pk_algorithm (<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> 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 public
+key and if possible will return a number of bits that indicates
+the security parameter of the key.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_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 set will return the number of bits of the parameters (may be NULL)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-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>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-set-spki"></a><h3>gnutls_pubkey_set_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_set_spki (<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> key</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the public key information.
+The provided <em class="parameter"><code>spki</code></em>
+ must be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-set-spki.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>pubkey</p></td>
+<td class="parameter_description"><p>a public key of type <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <span class="type">gnutls_pubkey_spki_t</span></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-pubkey-set-spki.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-spki"></a><h3>gnutls_pubkey_get_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_get_spki (<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> key</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the public key information if available.
+The provided <em class="parameter"><code>spki</code></em>
+ must be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-get-spki.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>pubkey</p></td>
+<td class="parameter_description"><p>a public key of type <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <span class="type">gnutls_pubkey_spki_t</span></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-pubkey-get-spki.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-import-x509"></a><h3>gnutls_pubkey_import_x509 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_x509 (<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> key</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>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given public key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> type.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-x509.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 public key</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 be imported</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-pubkey-import-x509.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-pubkey-import-x509-crq"></a><h3>gnutls_pubkey_import_x509_crq ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_x509_crq (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given public key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> type.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-x509-crq.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crq</p></td>
+<td class="parameter_description"><p>The certificate to be imported</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-pubkey-import-x509-crq.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-pubkey-import-pkcs11"></a><h3>gnutls_pubkey_import_pkcs11 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_pkcs11 (<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> key</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> obj</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>Imports a public key from a pkcs11 key. This function will import
+the given public key to the abstract <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> type.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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>key</p></td>
+<td class="parameter_description"><p>The public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>obj</p></td>
+<td class="parameter_description"><p>The parameters to be imported</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-pubkey-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-pubkey-import-openpgp"></a><h3>gnutls_pubkey_import_openpgp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_openpgp (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-openpgp.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 public key</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 be imported</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-pubkey-import-openpgp.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-import-openpgp-raw"></a><h3>gnutls_pubkey_import_openpgp_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_openpgp_raw (<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> pkey</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> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-openpgp-raw.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The public key data to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>keyid</p></td>
+<td class="parameter_description"><p>The key id to use (optional)</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-pubkey-import-openpgp-raw.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-import-x509-raw"></a><h3>gnutls_pubkey_import_x509_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_x509_raw (<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> pkey</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> *data</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given public key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> type.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-x509-raw.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The public key data to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of 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-pubkey-import-x509-raw.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.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-import-privkey"></a><h3>gnutls_pubkey_import_privkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_privkey (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>Imports the public key from a private. This function will import
+the given public key to the abstract <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> type.</p>
+<p>Note that in certain keys this operation may not be possible, e.g.,
+in other than RSA PKCS<span class="type">11</span> keys.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-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>key</p></td>
+<td class="parameter_description"><p>The public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<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>usage</p></td>
+<td class="parameter_description"><p>GNUTLS_KEY_* key usage flags.</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-pubkey-import-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-pubkey-import-tpm-url"></a><h3>gnutls_pubkey_import_tpm_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_tpm_url (<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> pkey</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *srk_password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given private key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type. </p>
+<p>Note that unless <a class="link" href="gnutls-abstract.html#GNUTLS-PUBKEY-DISABLE-CALLBACKS:CAPS"><code class="literal">GNUTLS_PUBKEY_DISABLE_CALLBACKS</code></a>
+is specified, if incorrect (or NULL) passwords are given
+the PKCS11 callback functions will be used to obtain the
+correct passwords. Otherwise if the SRK password is wrong
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-SRK-PASSWORD-ERROR:CAPS" title="GNUTLS_E_TPM_SRK_PASSWORD_ERROR"><code class="literal">GNUTLS_E_TPM_SRK_PASSWORD_ERROR</code></a> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-tpm-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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>The URL of the TPM key to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>srk_password</p></td>
+<td class="parameter_description"><p>The password for the SRK key (optional)</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-pubkey-import-tpm-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: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-import-url"></a><h3>gnutls_pubkey_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_url (<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> key</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 public key from the provided URL.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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>key</p></td>
+<td class="parameter_description"><p>A key of type <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a></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</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-pubkey-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: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-import-tpm-raw"></a><h3>gnutls_pubkey_import_tpm_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_tpm_raw (<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> pkey</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> *fdata</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-tpm.html#gnutls-tpmkey-fmt-t" title="enum gnutls_tpmkey_fmt_t"><span class="type">gnutls_tpmkey_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *srk_password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the public key from the provided TPM key
+structure.</p>
+<p>With respect to passwords the same as in
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-tpm-url" title="gnutls_pubkey_import_tpm_url ()"><code class="function">gnutls_pubkey_import_tpm_url()</code></a> apply.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-tpm-raw.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fdata</p></td>
+<td class="parameter_description"><p>The TPM key to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>srk_password</p></td>
+<td class="parameter_description"><p>The password for the SRK key (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of the GNUTLS_PUBKEY_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-tpm-raw.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-preferred-hash-algorithm"></a><h3>gnutls_pubkey_get_preferred_hash_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_get_preferred_hash_algorithm
+ (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *mand</code></em>);</pre>
+<p>This function will read the certificate and return the appropriate digest
+algorithm to use for signing with this certificate. Some certificates (i.e.
+DSA might not be able to sign without the preferred algorithm).</p>
+<p>To get the signature algorithm instead of just the hash use <code class="function">gnutls_pk_to_sign()</code>
+with the algorithm of the certificate/key and the provided <em class="parameter"><code>hash</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-get-preferred-hash-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>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>The result of the call with the hash algorithm used for signature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mand</p></td>
+<td class="parameter_description"><p>If non zero it means that the algorithm MUST use this hash. May be NULL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-get-preferred-hash-algorithm.returns"></a><h4>Returns</h4>
+<p> the 0 if the hash algorithm is found. A negative error code is
+returned on error.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-rsa-raw"></a><h3>gnutls_pubkey_export_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_rsa_raw (<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> key</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> *m</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> *e</code></em>);</pre>
+<p>This function will export the RSA public key's parameters found in
+the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>This function allows for <code class="literal">NULL</code> parameters since 3.4.1.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-rsa-raw.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 certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-rsa-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-rsa-raw2"></a><h3>gnutls_pubkey_export_rsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_rsa_raw2 (<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> key</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> *m</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> *e</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will export the RSA public key's parameters found in
+the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>This function allows for <code class="literal">NULL</code> parameters since 3.4.1.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-rsa-raw2.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 certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent (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>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-rsa-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-dsa-raw"></a><h3>gnutls_pubkey_export_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_dsa_raw (<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> key</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> *p</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> *q</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> *g</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> *y</code></em>);</pre>
+<p>This function will export the DSA public key's parameters found in
+the given certificate. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>This function allows for <code class="literal">NULL</code> parameters since 3.4.1.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-dsa-raw.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the p (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the q (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>will hold the g (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-dsa-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-dsa-raw2"></a><h3>gnutls_pubkey_export_dsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_dsa_raw2 (<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> key</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> *p</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> *q</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> *g</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> *y</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will export the DSA public key's parameters found in
+the given certificate. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>This function allows for <code class="literal">NULL</code> parameters since 3.4.1.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-dsa-raw2.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the p (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the q (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>will hold the g (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y (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>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-dsa-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-ecc-raw2"></a><h3>gnutls_pubkey_export_ecc_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_ecc_raw2 (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</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> *x</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> *y</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will export the ECC public key's parameters found in
+the given key. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter will be <code class="literal">NULL</code> and the other parameters
+will be in the native format for the curve.</p>
+<p>This function allows for <code class="literal">NULL</code> parameters since 3.4.1.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-ecc-raw2.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold x-coordinate (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold y-coordinate (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>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-ecc-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-gost-raw2"></a><h3>gnutls_pubkey_export_gost_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_gost_raw2 (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *digest</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t"><span class="type">gnutls_gost_paramset_t</span></a> *paramset</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> *x</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> *y</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will export the GOST public key's parameters found in
+the given key. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>Note: parameters will be stored with least significant byte first. On
+version 3.6.3 this was incorrectly returned in big-endian format.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-gost-raw2.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>will hold the curve (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>paramset</p></td>
+<td class="parameter_description"><p>will hold the parameters id (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate (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>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-gost-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-ecc-raw"></a><h3>gnutls_pubkey_export_ecc_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_ecc_raw (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</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> *x</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> *y</code></em>);</pre>
+<p>This function will export the ECC public key's parameters found in
+the given key. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter will be <code class="literal">NULL</code> and the other parameters
+will be in the native format for the curve.</p>
+<p>This function allows for <code class="literal">NULL</code> parameters since 3.4.1.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-ecc-raw.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold x-coordinate (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold y-coordinate (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-ecc-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export-ecc-x962"></a><h3>gnutls_pubkey_export_ecc_x962 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export_ecc_x962 (<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> key</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> *parameters</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> *ecpoint</code></em>);</pre>
+<p>This function will export the ECC public key's parameters found in
+the given certificate. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-ecc-x962.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>parameters</p></td>
+<td class="parameter_description"><p>DER encoding of an ANSI X9.62 parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ecpoint</p></td>
+<td class="parameter_description"><p>DER encoding of ANSI X9.62 ECPoint</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export-ecc-x962.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export"></a><h3>gnutls_pubkey_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export (<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> key</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> format</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 public key to DER or PEM format.
+The contents of the exported data is the SubjectPublicKeyInfo
+X.509 structure.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*output_data_size is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will
+be returned.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN CERTIFICATE".</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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>key</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</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 a certificate PEM or DER encoded</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-pubkey-export.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-export2"></a><h3>gnutls_pubkey_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_export2 (<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> key</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> format</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 public key to DER or PEM format.
+The contents of the exported data is the SubjectPublicKeyInfo
+X.509 structure.</p>
+<p>The output buffer will be allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN CERTIFICATE".</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-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>key</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a certificate PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-export2.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-key-id"></a><h3>gnutls_pubkey_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_get_key_id (<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> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</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 return a unique ID that depends on the public
+key parameters. This ID can be used in checking whether a
+certificate corresponds to the given public key.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*output_data_size is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will
+be returned. The output will normally be a SHA-1 hash output,
+which is 20 bytes.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-get-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>key</p></td>
+<td class="parameter_description"><p>Holds 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 one of the flags from <a class="link" href="gnutls-x509.html#gnutls-keyid-flags-t" title="enum gnutls_keyid_flags_t"><code class="literal">gnutls_keyid_flags_t</code></a></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 key ID</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-pubkey-get-key-id.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-openpgp-key-id"></a><h3>gnutls_pubkey_get_openpgp_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_get_openpgp_key_id (<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> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *output_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *output_data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *subkey</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-key-usage"></a><h3>gnutls_pubkey_get_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_get_key_usage (<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> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *usage</code></em>);</pre>
+<p>This function will return the key usage of the public key.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-get-key-usage.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-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>usage</p></td>
+<td class="parameter_description"><p>If set will return the number of bits of the parameters (may be NULL)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-get-key-usage.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-pubkey-set-key-usage"></a><h3>gnutls_pubkey_set_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_set_key_usage (<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> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);</pre>
+<p>This function will set the key usage flags of the public key. This
+is only useful if the key is to be exported to a certificate or
+certificate request.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-set-key-usage.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 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>usage</p></td>
+<td class="parameter_description"><p>an ORed sequence of the GNUTLS_KEY_* elements.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-set-key-usage.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-pubkey-import"></a><h3>gnutls_pubkey_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import (<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> key</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> *data</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> format</code></em>);</pre>
+<p>This function will import the provided public key in
+a SubjectPublicKeyInfo X.509 structure to a native
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><code class="literal">gnutls_pubkey_t</code></a> type. The output will be stored
+in <em class="parameter"><code>key</code></em>
+. If the public key is PEM encoded it should have a header
+of "PUBLIC KEY".</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import.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 public key. </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded certificate. </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-import.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-pubkey-import-pkcs11-url"></a><h3>gnutls_pubkey_import_pkcs11_url()</h3>
+<pre class="programlisting">#define gnutls_pubkey_import_pkcs11_url(key, url, flags) gnutls_pubkey_import_url(key, url, flags)
+</pre>
+<p>This function will import a PKCS 11 certificate to a <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-pkcs11-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>A key of type <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a></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</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-pubkey-import-pkcs11-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-pubkey-import-dsa-raw"></a><h3>gnutls_pubkey_import_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_dsa_raw (<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> key</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> *p</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> *q</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> *g</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> *y</code></em>);</pre>
+<p>This function will convert the given DSA raw parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> format. The output will be stored
+in <em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-dsa-raw.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 structure to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>holds the p</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>holds the q</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>holds the g</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-dsa-raw.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-pubkey-import-rsa-raw"></a><h3>gnutls_pubkey_import_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_rsa_raw (<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> key</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> *m</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> *e</code></em>);</pre>
+<p>This function will replace the parameters in the given structure.
+The new parameters should be stored in the appropriate
+gnutls_datum.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-rsa-raw.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</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>holds the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>holds the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-rsa-raw.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> on success, or an negative error code.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-import-ecc-x962"></a><h3>gnutls_pubkey_import_ecc_x962 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_ecc_x962 (<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> key</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> *parameters</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> *ecpoint</code></em>);</pre>
+<p>This function will convert the given elliptic curve parameters to a
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>. The output will be stored in <em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-ecc-x962.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 structure to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>parameters</p></td>
+<td class="parameter_description"><p>DER encoding of an ANSI X9.62 parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ecpoint</p></td>
+<td class="parameter_description"><p>DER encoding of ANSI X9.62 ECPoint</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-ecc-x962.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-pubkey-import-ecc-raw"></a><h3>gnutls_pubkey_import_ecc_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_ecc_raw (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> curve</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> *x</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> *y</code></em>);</pre>
+<p>This function will convert the given elliptic curve parameters to a
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>. The output will be stored in <em class="parameter"><code>key</code></em>
+.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter should be <code class="literal">NULL</code> and the <em class="parameter"><code>x</code></em>
+ parameter must
+be the value in the native format for the curve.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-ecc-raw.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 structure to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>holds the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-ecc-raw.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-pubkey-import-gost-raw"></a><h3>gnutls_pubkey_import_gost_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_import_gost_raw (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> curve</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> digest</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t"><span class="type">gnutls_gost_paramset_t</span></a> paramset</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> *x</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> *y</code></em>);</pre>
+<p>This function will convert the given GOST public key's parameters to a
+<a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a>. The output will be stored in <em class="parameter"><code>key</code></em>
+. <em class="parameter"><code>digest</code></em>
+ should be
+one of GNUTLS_DIG_GOSR_94, GNUTLS_DIG_STREEBOG_256 or
+GNUTLS_DIG_STREEBOG_512. If <em class="parameter"><code>paramset</code></em>
+ is set to GNUTLS_GOST_PARAMSET_UNKNOWN
+default one will be selected depending on <em class="parameter"><code>digest</code></em>
+.</p>
+<p>Note: parameters should be stored with least significant byte first. On
+version 3.6.3 big-endian format was used incorrectly.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-gost-raw.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 structure to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>holds the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>holds the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>paramset</p></td>
+<td class="parameter_description"><p>holds the parameters id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-import-gost-raw.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.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-encrypt-data"></a><h3>gnutls_pubkey_encrypt_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_encrypt_data (<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> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *plaintext</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> *ciphertext</code></em>);</pre>
+<p>This function will encrypt the given data, using the public
+key. On success the <em class="parameter"><code>ciphertext</code></em>
+ will be allocated using <code class="function">gnutls_malloc()</code>.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-encrypt-data.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 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 0 for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>plaintext</p></td>
+<td class="parameter_description"><p>The data to be encrypted</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ciphertext</p></td>
+<td class="parameter_description"><p>contains the encrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-encrypt-data.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-x509-crt-set-pubkey"></a><h3>gnutls_x509_crt_set_pubkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_pubkey (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+ <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> key</code></em>);</pre>
+<p>This function will set the public parameters from the given public
+key to the certificate. The <em class="parameter"><code>key</code></em>
+ can be deallocated after that.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>crt</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>holds a public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-pubkey"></a><h3>gnutls_x509_crq_set_pubkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_pubkey (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> key</code></em>);</pre>
+<p>This function will set the public parameters from the given public
+key to the request. The <em class="parameter"><code>key</code></em>
+ can be deallocated after that.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>holds a public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-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: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-verify-hash2"></a><h3>gnutls_pubkey_verify_hash2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_verify_hash2 (<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> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *hash</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> *signature</code></em>);</pre>
+<p>This function will verify the given signed digest, using the
+parameters from the public key. Note that unlike <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()"><code class="function">gnutls_privkey_sign_hash()</code></a>,
+this function accepts a signature algorithm instead of a digest algorithm.
+You can use <code class="function">gnutls_pk_to_sign()</code> to get the appropriate value.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-verify-hash2.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>The signature algorithm used</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 list of <a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>holds the hash digest to be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>contains the signature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-verify-hash2.returns"></a><h4>Returns</h4>
+<p> In case of a verification failure <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED"><code class="literal">GNUTLS_E_PK_SIG_VERIFY_FAILED</code></a>
+is returned, and zero or positive code on success. For known to be insecure
+signatures this function will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-SECURITY:CAPS" title="GNUTLS_E_INSUFFICIENT_SECURITY"><code class="literal">GNUTLS_E_INSUFFICIENT_SECURITY</code></a> unless
+the flag <a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-BROKEN:CAPS" title="GNUTLS_VERIFY_ALLOW_BROKEN"><code class="literal">GNUTLS_VERIFY_ALLOW_BROKEN</code></a> is specified.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-verify-data2"></a><h3>gnutls_pubkey_verify_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_verify_data2 (<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> pubkey</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *data</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> *signature</code></em>);</pre>
+<p>This function will verify the given signed data, using the
+parameters from the certificate.</p>
+<div class="refsect3">
+<a name="gnutls-pubkey-verify-data2.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>pubkey</p></td>
+<td class="parameter_description"><p>Holds the public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>The signature algorithm used</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 list of <a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>holds the signed data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>contains the signature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-verify-data2.returns"></a><h4>Returns</h4>
+<p> In case of a verification failure <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED"><code class="literal">GNUTLS_E_PK_SIG_VERIFY_FAILED</code></a>
+is returned, and zero or positive code on success. For known to be insecure
+signatures this function will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-SECURITY:CAPS" title="GNUTLS_E_INSUFFICIENT_SECURITY"><code class="literal">GNUTLS_E_INSUFFICIENT_SECURITY</code></a> unless
+the flag <a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-BROKEN:CAPS" title="GNUTLS_VERIFY_ALLOW_BROKEN"><code class="literal">GNUTLS_VERIFY_ALLOW_BROKEN</code></a> is specified.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-init"></a><h3>gnutls_privkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> *key</code></em>);</pre>
+<p>This function will initialize a private key object. The object can
+be used to generate, import, and perform cryptographic operations
+on the associated private key.</p>
+<p>Note that when the underlying private key is a PKCS<span class="type">11</span> key (i.e.,
+when imported with a PKCS<span class="type">11</span> URI), the limitations of <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init" title="gnutls_pkcs11_privkey_init ()"><code class="function">gnutls_pkcs11_privkey_init()</code></a>
+apply to this object as well. 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-privkey-t" title="gnutls_privkey_t"><code class="literal">gnutls_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-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-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>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-deinit"></a><h3>gnutls_privkey_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_privkey_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
+<p>This function will deinitialize a private key structure.</p>
+<div class="refsect3">
+<a name="gnutls-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>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-SUBGROUP-TO-BITS:CAPS"></a><h3>GNUTLS_SUBGROUP_TO_BITS()</h3>
+<pre class="programlisting">#define GNUTLS_SUBGROUP_TO_BITS(group, subgroup) (unsigned int)((subgroup&lt;&lt;16)|(group))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-BITS-TO-SUBGROUP:CAPS"></a><h3>GNUTLS_BITS_TO_SUBGROUP()</h3>
+<pre class="programlisting">#define GNUTLS_BITS_TO_SUBGROUP(bits) ((bits &gt;&gt; 16) &amp; 0xFFFF)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-BITS-TO-GROUP:CAPS"></a><h3>GNUTLS_BITS_TO_GROUP()</h3>
+<pre class="programlisting">#define GNUTLS_BITS_TO_GROUP(bits) (bits &amp; 0xFFFF)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-BITS-HAVE-SUBGROUP:CAPS"></a><h3>GNUTLS_BITS_HAVE_SUBGROUP()</h3>
+<pre class="programlisting">#define GNUTLS_BITS_HAVE_SUBGROUP(bits) ((bits) &amp; 0xFFFF0000)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-generate"></a><h3>gnutls_privkey_generate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_generate (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will generate a random private key. Note that this
+function must be called on an initialized private key.</p>
+<p>The flag <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-PROVABLE:CAPS"><code class="literal">GNUTLS_PRIVKEY_FLAG_PROVABLE</code></a>
+instructs the key generation process to use algorithms like Shawe-Taylor
+(from FIPS PUB186-4) which generate provable parameters out of a seed
+for RSA and DSA keys. See <a class="link" href="gnutls-abstract.html#gnutls-privkey-generate2" title="gnutls_privkey_generate2 ()"><code class="function">gnutls_privkey_generate2()</code></a> for more
+information.</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. The input to the macro is any curve from
+<a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><code class="literal">gnutls_ecc_curve_t</code></a>.</p>
+<p>For DSA keys, if the subgroup size needs to be specified check
+the <a class="link" href="gnutls-abstract.html#GNUTLS-SUBGROUP-TO-BITS:CAPS" title="GNUTLS_SUBGROUP_TO_BITS()"><code class="function">GNUTLS_SUBGROUP_TO_BITS()</code></a> macro.</p>
+<p>It is recommended to do not set the number of <em class="parameter"><code>bits</code></em>
+ directly, use <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a> instead .</p>
+<p>See also <a class="link" href="gnutls-abstract.html#gnutls-privkey-generate2" title="gnutls_privkey_generate2 ()"><code class="function">gnutls_privkey_generate2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-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>pkey</p></td>
+<td class="parameter_description"><p>An initialized private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>is one of the algorithms in <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>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>the size of the parameters to generate</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 or flags from <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><span class="type">gnutls_privkey_flags_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-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.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-generate2"></a><h3>gnutls_privkey_generate2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_generate2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-x509.html#gnutls-keygen-data-st" title="gnutls_keygen_data_st"><span class="type">gnutls_keygen_data_st</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> data_size</code></em>);</pre>
+<p>This function will generate a random private key. Note that this
+function must be called on an initialized private key.</p>
+<p>The flag <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-PROVABLE:CAPS"><code class="literal">GNUTLS_PRIVKEY_FLAG_PROVABLE</code></a>
+instructs the key generation process to use algorithms like Shawe-Taylor
+(from FIPS PUB186-4) which generate provable parameters out of a seed
+for RSA and DSA keys. On DSA keys the PQG parameters are generated using the
+seed, while on RSA the two primes. To specify an explicit seed
+(by default a random seed is used), use the <em class="parameter"><code>data</code></em>
+ with a <a class="link" href="gnutls-x509.html#GNUTLS-KEYGEN-SEED:CAPS"><code class="literal">GNUTLS_KEYGEN_SEED</code></a>
+type.</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>To export the generated keys in memory or in files it is recommended to use the
+PKCS#8 form as it can handle all key types, and can store additional parameters
+such as the seed, in case of provable RSA or DSA keys.
+Generated keys can be exported in memory using <a class="link" href="gnutls-abstract.html#gnutls-privkey-export-x509" title="gnutls_privkey_export_x509 ()"><code class="function">gnutls_privkey_export_x509()</code></a>,
+and then with <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export2-pkcs8" title="gnutls_x509_privkey_export2_pkcs8 ()"><code class="function">gnutls_x509_privkey_export2_pkcs8()</code></a>.</p>
+<p>If key generation is part of your application, avoid setting the number
+of bits directly, and instead use <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a>.
+That way the generated keys will adapt to the security levels
+of the underlying GnuTLS library.</p>
+<div class="refsect3">
+<a name="gnutls-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>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>algo</p></td>
+<td class="parameter_description"><p>is one of the algorithms in <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>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>the size of the modulus</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 or flags from <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><span class="type">gnutls_privkey_flags_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>Allow specifying <a class="link" href="gnutls-x509.html#gnutls-keygen-data-st" title="gnutls_keygen_data_st"><code class="literal">gnutls_keygen_data_st</code></a> types such as the seed to be used.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>The number of <em class="parameter"><code>data</code></em>
+available.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-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.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-set-spki"></a><h3>gnutls_privkey_set_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_set_spki (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the public key information.
+The provided <em class="parameter"><code>spki</code></em>
+ must be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-set-spki.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>privkey</p></td>
+<td class="parameter_description"><p>a public key of type <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <span class="type">gnutls_privkey_spki_t</span></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-privkey-set-spki.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-get-spki"></a><h3>gnutls_privkey_get_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_get_spki (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the public key information if available.
+The provided <em class="parameter"><code>spki</code></em>
+ must be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-get-spki.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>privkey</p></td>
+<td class="parameter_description"><p>a public key of type <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <span class="type">gnutls_privkey_spki_t</span></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-privkey-get-spki.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-verify-seed"></a><h3>gnutls_privkey_verify_seed ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_verify_seed (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> Param2</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *seed</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> seed_size</code></em>);</pre>
+<p>This function will verify that the given private key was generated from
+the provided seed.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-verify-seed.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-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>it contains the digest algorithm used for key generation (if applicable)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed</p></td>
+<td class="parameter_description"><p>the seed of the key to be checked with</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed_size</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>seed</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-verify-seed.returns"></a><h4>Returns</h4>
+<p> In case of a verification failure <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PRIVKEY-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_PRIVKEY_VERIFICATION_ERROR"><code class="literal">GNUTLS_E_PRIVKEY_VERIFICATION_ERROR</code></a>
+is returned, and zero or positive code on success.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-get-seed"></a><h3>gnutls_privkey_get_seed ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_get_seed (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *Param2</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *seed</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *seed_size</code></em>);</pre>
+<p>This function will return the seed that was used to generate the
+given private key. That function will succeed only if the key was generated
+as a provable key.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-get-seed.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-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>if non-NULL it will contain the digest algorithm used for key generation (if applicable)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed</p></td>
+<td class="parameter_description"><p>where seed will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed_size</p></td>
+<td class="parameter_description"><p>originally holds the size of <em class="parameter"><code>seed</code></em>
+, will be updated with actual size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-get-seed.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.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-verify-params"></a><h3>gnutls_privkey_verify_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_verify_params (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
+<p>This function will verify the private key parameters.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-verify-params.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-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-verify-params.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-set-flags"></a><h3>gnutls_privkey_set_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_privkey_set_flags (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set flags for the specified private key, after
+it is generated. Currently this is useful for the <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-EXPORT-COMPAT:CAPS"><code class="literal">GNUTLS_PRIVKEY_FLAG_EXPORT_COMPAT</code></a>
+to allow exporting a "provable" private key in backwards compatible way.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-set-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>key</p></td>
+<td class="parameter_description"><p>A key of type <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from the <code class="literal">gnutls_privkey_flags</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-set-pin-function"></a><h3>gnutls_privkey_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_privkey_set_pin_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_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 any other
+global PIN functions.</p>
+<p>Note that this function must be called right after initialization
+to have effect.</p>
+<div class="refsect3">
+<a name="gnutls-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>A key of type <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a></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-privkey-get-pk-algorithm"></a><h3>gnutls_privkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_get_pk_algorithm (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_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 and if possible will return a number of bits that indicates
+the security parameter of the key.</p>
+<div class="refsect3">
+<a name="gnutls-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-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_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 set will return the number of bits of the parameters (may be NULL)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-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>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-status"></a><h3>gnutls_privkey_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_status (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
+<p>Checks the status of the private key token. This function
+is an actual wrapper over <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-status" title="gnutls_pkcs11_privkey_status ()"><code class="function">gnutls_pkcs11_privkey_status()</code></a>, and
+if the private key is a PKCS <span class="type">11</span> token it will check whether
+it is inserted or not.</p>
+<div class="refsect3">
+<a name="gnutls-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-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.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-pkcs11"></a><h3>gnutls_privkey_import_pkcs11 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_pkcs11 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given private key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type.</p>
+<p>The <a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t"><span class="type">gnutls_pkcs11_privkey_t</span></a> object must not be deallocated
+during the lifetime of this structure.</p>
+<p><em class="parameter"><code>flags</code></em>
+ might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
+and <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-COPY:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-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>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>key</p></td>
+<td class="parameter_description"><p>The private key to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags for the import</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-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-privkey-import-x509"></a><h3>gnutls_privkey_import_x509 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_x509 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given private key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type.</p>
+<p>The <a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> object must not be deallocated
+during the lifetime of this structure.</p>
+<p><em class="parameter"><code>flags</code></em>
+ might be zero or one of <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>
+and <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-COPY:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_COPY</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-x509.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>key</p></td>
+<td class="parameter_description"><p>The private key to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags for the import</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-x509.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-privkey-import-openpgp"></a><h3>gnutls_privkey_import_openpgp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_openpgp (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-openpgp.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>key</p></td>
+<td class="parameter_description"><p>The private key to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags for the import</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-openpgp.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-x509"></a><h3>gnutls_privkey_export_x509 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_x509 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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>);</pre>
+<p>Converts the given abstract private key to a <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>
+type. The abstract key must be of type <a class="link" href="gnutls-gnutls.html#GNUTLS-PRIVKEY-X509:CAPS"><code class="literal">GNUTLS_PRIVKEY_X509</code></a>. The input
+<em class="parameter"><code>key</code></em>
+ must not be initialized. The key returned in <em class="parameter"><code>key</code></em>
+ should be deinitialized
+using <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-deinit" title="gnutls_x509_privkey_deinit ()"><code class="function">gnutls_x509_privkey_deinit()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-x509.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>key</p></td>
+<td class="parameter_description"><p>Location for the key to be exported.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-x509.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-privkey-export-openpgp"></a><h3>gnutls_privkey_export_openpgp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_openpgp (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> *key</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-openpgp.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>key</p></td>
+<td class="parameter_description"><p>Location for the key to be exported.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-openpgp.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-pkcs11"></a><h3>gnutls_privkey_export_pkcs11 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_pkcs11 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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> *key</code></em>);</pre>
+<p>Converts the given abstract private key to 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. The key must be of type <a class="link" href="gnutls-gnutls.html#GNUTLS-PRIVKEY-PKCS11:CAPS"><code class="literal">GNUTLS_PRIVKEY_PKCS11</code></a>. The key
+returned in <em class="parameter"><code>key</code></em>
+ must be deinitialized with
+<a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit" title="gnutls_pkcs11_privkey_deinit ()"><code class="function">gnutls_pkcs11_privkey_deinit()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-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>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>key</p></td>
+<td class="parameter_description"><p>Location for the key to be exported.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-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: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-openpgp-raw"></a><h3>gnutls_privkey_import_openpgp_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_openpgp_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-openpgp-raw.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>data</p></td>
+<td class="parameter_description"><p>The private key data to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>keyid</p></td>
+<td class="parameter_description"><p>The key id to use (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>A password (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-openpgp-raw.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-x509-raw"></a><h3>gnutls_privkey_import_x509_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_x509_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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> *data</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> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given private key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type. </p>
+<p>The supported formats are basic unencrypted key, PKCS8, PKCS12,
+TSS2, and the openssl format.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-x509-raw.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>data</p></td>
+<td class="parameter_description"><p>The private key data to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>A password (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of gnutls_pkcs_encrypt_flags_t</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-x509-raw.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-tpm-raw"></a><h3>gnutls_privkey_import_tpm_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_tpm_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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> *fdata</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-tpm.html#gnutls-tpmkey-fmt-t" title="enum gnutls_tpmkey_fmt_t"><span class="type">gnutls_tpmkey_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *srk_password</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *key_password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given private key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type. </p>
+<p>With respect to passwords the same as in <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-tpm-url" title="gnutls_privkey_import_tpm_url ()"><code class="function">gnutls_privkey_import_tpm_url()</code></a> apply.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-tpm-raw.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>fdata</p></td>
+<td class="parameter_description"><p>The TPM key to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>srk_password</p></td>
+<td class="parameter_description"><p>The password for the SRK key (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_password</p></td>
+<td class="parameter_description"><p>A password for the key (optional)</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-privkey-import-tpm-raw.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-tpm-url"></a><h3>gnutls_privkey_import_tpm_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_tpm_url (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *srk_password</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *key_password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given private key to the abstract
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type.</p>
+<p>Note that unless <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-DISABLE-CALLBACKS:CAPS"><code class="literal">GNUTLS_PRIVKEY_DISABLE_CALLBACKS</code></a>
+is specified, if incorrect (or NULL) passwords are given
+the PKCS11 callback functions will be used to obtain the
+correct passwords. Otherwise if the SRK password is wrong
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-SRK-PASSWORD-ERROR:CAPS" title="GNUTLS_E_TPM_SRK_PASSWORD_ERROR"><code class="literal">GNUTLS_E_TPM_SRK_PASSWORD_ERROR</code></a> is returned and if the key password
+is wrong or not provided then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-KEY-PASSWORD-ERROR:CAPS" title="GNUTLS_E_TPM_KEY_PASSWORD_ERROR"><code class="literal">GNUTLS_E_TPM_KEY_PASSWORD_ERROR</code></a>
+is returned.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-tpm-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>The URL of the TPM key to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>srk_password</p></td>
+<td class="parameter_description"><p>The password for the SRK key (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_password</p></td>
+<td class="parameter_description"><p>A password for the key (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>One of the GNUTLS_PRIVKEY_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-tpm-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: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-url"></a><h3>gnutls_privkey_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_url (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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 PKCS11 or TPM URL as a
+private key. The supported URL types can be checked
+using <a class="link" href="gnutls-gnutls.html#gnutls-url-is-supported" title="gnutls_url_is_supported ()"><code class="function">gnutls_url_is_supported()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-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>key</p></td>
+<td class="parameter_description"><p>A key of type <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a></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</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-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>
+<p class="since">Since: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-pkcs11-url"></a><h3>gnutls_privkey_import_pkcs11_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_pkcs11_url (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *url</code></em>);</pre>
+<p>This function will import a PKCS 11 private key to a <span class="type">gnutls_private_key_t</span>
+type.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-pkcs11-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>A key of type <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a></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</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-pkcs11-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: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-ext"></a><h3>gnutls_privkey_import_ext ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_ext (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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><span class="type">void</span> *userdata</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-func" title="gnutls_privkey_sign_func ()"><span class="type">gnutls_privkey_sign_func</span></a> sign_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func" title="gnutls_privkey_decrypt_func ()"><span class="type">gnutls_privkey_decrypt_func</span></a> decrypt_func</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will associate the given callbacks with the
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type. At least one of the two callbacks
+must be non-null.</p>
+<p>Note that the signing function is supposed to "raw" sign data, i.e.,
+without any hashing or preprocessing. In case of RSA the DigestInfo
+will be provided, and the signing function is expected to do the PKCS #1
+1.5 padding and the exponentiation.</p>
+<p>See also <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ext3" title="gnutls_privkey_import_ext3 ()"><code class="function">gnutls_privkey_import_ext3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext.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>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>userdata</p></td>
+<td class="parameter_description"><p>private data to be provided to the callbacks</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sign_func</p></td>
+<td class="parameter_description"><p>callback for signature operations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>decrypt_func</p></td>
+<td class="parameter_description"><p>callback for decryption operations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags for the import</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext.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-privkey-import-ext2"></a><h3>gnutls_privkey_import_ext2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_ext2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</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><span class="type">void</span> *userdata</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-func" title="gnutls_privkey_sign_func ()"><span class="type">gnutls_privkey_sign_func</span></a> sign_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func" title="gnutls_privkey_decrypt_func ()"><span class="type">gnutls_privkey_decrypt_func</span></a> decrypt_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit-func" title="gnutls_privkey_deinit_func ()"><span class="type">gnutls_privkey_deinit_func</span></a> deinit_func</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will associate the given callbacks with the
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type. At least one of the two callbacks
+must be non-null. If a deinitialization function is provided
+then flags is assumed to contain <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>.</p>
+<p>Note that the signing function is supposed to "raw" sign data, i.e.,
+without any hashing or preprocessing. In case of RSA the DigestInfo
+will be provided, and the signing function is expected to do the PKCS #1
+1.5 padding and the exponentiation.</p>
+<p>See also <a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ext3" title="gnutls_privkey_import_ext3 ()"><code class="function">gnutls_privkey_import_ext3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext2.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>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>userdata</p></td>
+<td class="parameter_description"><p>private data to be provided to the callbacks</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sign_fn</p></td>
+<td class="parameter_description"><p>callback for signature operations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>decrypt_fn</p></td>
+<td class="parameter_description"><p>callback for decryption operations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit_fn</p></td>
+<td class="parameter_description"><p>a deinitialization function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags for the import</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext2.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</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-ext3"></a><h3>gnutls_privkey_import_ext3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_ext3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-func" title="gnutls_privkey_sign_func ()"><span class="type">gnutls_privkey_sign_func</span></a> sign_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func" title="gnutls_privkey_decrypt_func ()"><span class="type">gnutls_privkey_decrypt_func</span></a> decrypt_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit-func" title="gnutls_privkey_deinit_func ()"><span class="type">gnutls_privkey_deinit_func</span></a> deinit_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-info-func" title="gnutls_privkey_info_func ()"><span class="type">gnutls_privkey_info_func</span></a> info_func</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will associate the given callbacks with the
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type. At least one of the two callbacks
+must be non-null. If a deinitialization function is provided
+then flags is assumed to contain <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>.</p>
+<p>Note that the signing function is supposed to "raw" sign data, i.e.,
+without any hashing or preprocessing. In case of RSA the DigestInfo
+will be provided, and the signing function is expected to do the PKCS #1
+1.5 padding and the exponentiation.</p>
+<p>The <em class="parameter"><code>info_fn</code></em>
+ must provide information on the algorithms supported by
+this private key, and should support the flags <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_PK_ALGO"><code class="literal">GNUTLS_PRIVKEY_INFO_PK_ALGO</code></a> and
+<a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-SIGN-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_SIGN_ALGO"><code class="literal">GNUTLS_PRIVKEY_INFO_SIGN_ALGO</code></a>. It must return -1 on unknown flags.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext3.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>userdata</p></td>
+<td class="parameter_description"><p>private data to be provided to the callbacks</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sign_fn</p></td>
+<td class="parameter_description"><p>callback for signature operations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>decrypt_fn</p></td>
+<td class="parameter_description"><p>callback for decryption operations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit_fn</p></td>
+<td class="parameter_description"><p>a deinitialization function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>info_fn</p></td>
+<td class="parameter_description"><p>returns info about the public key algorithm (should not 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>Flags for the import</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext3.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-privkey-import-ext4"></a><h3>gnutls_privkey_import_ext4 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_ext4 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data-func" title="gnutls_privkey_sign_data_func ()"><span class="type">gnutls_privkey_sign_data_func</span></a> sign_data_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash-func" title="gnutls_privkey_sign_hash_func ()"><span class="type">gnutls_privkey_sign_hash_func</span></a> sign_hash_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-func" title="gnutls_privkey_decrypt_func ()"><span class="type">gnutls_privkey_decrypt_func</span></a> decrypt_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-deinit-func" title="gnutls_privkey_deinit_func ()"><span class="type">gnutls_privkey_deinit_func</span></a> deinit_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-privkey-info-func" title="gnutls_privkey_info_func ()"><span class="type">gnutls_privkey_info_func</span></a> info_func</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will associate the given callbacks with the
+<a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> type. At least one of the callbacks
+must be non-null. If a deinitialization function is provided
+then flags is assumed to contain <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"><code class="literal">GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</code></a>.</p>
+<p>Note that in contrast with the signing function of
+<a class="link" href="gnutls-abstract.html#gnutls-privkey-import-ext3" title="gnutls_privkey_import_ext3 ()"><code class="function">gnutls_privkey_import_ext3()</code></a>, the signing functions provided to this
+function take explicitly the signature algorithm as parameter and
+different functions are provided to sign the data and hashes.</p>
+<p>The <em class="parameter"><code>sign_hash_fn</code></em>
+ is to be called to sign pre-hashed data. The input
+to the callback is the output of the hash (such as SHA256) corresponding
+to the signature algorithm. For RSA PKCS#1 signatures, the signature
+algorithm can be set to <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-RSA-RAW:CAPS"><code class="literal">GNUTLS_SIGN_RSA_RAW</code></a>, and in that case the data
+should be handled as if they were an RSA PKCS#1 DigestInfo structure.</p>
+<p>The <em class="parameter"><code>sign_data_fn</code></em>
+ is to be called to sign data. The input data will be
+he data to be signed (and hashed), with the provided signature
+algorithm. This function is to be used for signature algorithms like
+Ed25519 which cannot take pre-hashed data as input.</p>
+<p>When both <em class="parameter"><code>sign_data_fn</code></em>
+ and <em class="parameter"><code>sign_hash_fn</code></em>
+ functions are provided they
+must be able to operate on all the supported signature algorithms,
+unless prohibited by the type of the algorithm (e.g., as with Ed25519).</p>
+<p>The <em class="parameter"><code>info_fn</code></em>
+ must provide information on the signature algorithms supported by
+this private key, and should support the flags <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_PK_ALGO"><code class="literal">GNUTLS_PRIVKEY_INFO_PK_ALGO</code></a>,
+<a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-HAVE-SIGN-ALGO:CAPS" title="GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO"><code class="literal">GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO</code></a> and <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO-BITS:CAPS" title="GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS"><code class="literal">GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS</code></a>.
+It must return -1 on unknown flags.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext4.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>userdata</p></td>
+<td class="parameter_description"><p>private data to be provided to the callbacks</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sign_data_fn</p></td>
+<td class="parameter_description"><p>callback for signature operations (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sign_hash_fn</p></td>
+<td class="parameter_description"><p>callback for signature operations (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>decrypt_fn</p></td>
+<td class="parameter_description"><p>callback for decryption operations (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit_fn</p></td>
+<td class="parameter_description"><p>a deinitialization function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>info_fn</p></td>
+<td class="parameter_description"><p>returns info about the public key algorithm (should not 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>Flags for the import</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ext4.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-import-dsa-raw"></a><h3>gnutls_privkey_import_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_dsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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> *p</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> *q</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> *g</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> *y</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> *x</code></em>);</pre>
+<p>This function will convert the given DSA raw parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> format. The output will be stored
+in <em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-dsa-raw.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 structure to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>holds the p</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>holds the q</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>holds the g</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-dsa-raw.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-privkey-import-rsa-raw"></a><h3>gnutls_privkey_import_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_rsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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> *m</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> *e</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> *d</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> *p</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> *q</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> *u</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> *e1</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> *e2</code></em>);</pre>
+<p>This function will convert the given RSA raw parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> format. The output will be stored in
+<em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-rsa-raw.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 structure to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>holds the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>holds the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>holds the private exponent (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>holds the first prime (p)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>holds the second prime (q)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>u</p></td>
+<td class="parameter_description"><p>holds the coefficient (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e1</p></td>
+<td class="parameter_description"><p>holds e1 = d mod (p-1) (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e2</p></td>
+<td class="parameter_description"><p>holds e2 = d mod (q-1) (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-rsa-raw.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-privkey-import-ecc-raw"></a><h3>gnutls_privkey_import_ecc_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_ecc_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> curve</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> *x</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> *y</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> *k</code></em>);</pre>
+<p>This function will convert the given elliptic curve parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> format. The output will be stored
+in <em class="parameter"><code>key</code></em>
+.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter should be <code class="literal">NULL</code> and the <em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>k</code></em>
+ parameters
+must be in the native format for the curve.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ecc-raw.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</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>holds the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>holds the k (private key)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-ecc-raw.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-privkey-import-gost-raw"></a><h3>gnutls_privkey_import_gost_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_import_gost_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> curve</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> digest</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t"><span class="type">gnutls_gost_paramset_t</span></a> paramset</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> *x</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> *y</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> *k</code></em>);</pre>
+<p>This function will convert the given GOST private key's parameters to the
+native <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> format. The output will be stored
+in <em class="parameter"><code>key</code></em>
+. <em class="parameter"><code>digest</code></em>
+ should be one of GNUTLS_DIG_GOSR_94,
+GNUTLS_DIG_STREEBOG_256 or GNUTLS_DIG_STREEBOG_512. If <em class="parameter"><code>paramset</code></em>
+ is set to
+GNUTLS_GOST_PARAMSET_UNKNOWN default one will be selected depending on
+<em class="parameter"><code>digest</code></em>
+.</p>
+<p>Note: parameters should be stored with least significant byte first. On
+version 3.6.3 big-endian format was used incorrectly.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-import-gost-raw.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</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>holds the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>holds the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>paramset</p></td>
+<td class="parameter_description"><p>holds the GOST parameter set ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>holds the k (private key)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-import-gost-raw.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.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-sign-data"></a><h3>gnutls_privkey_sign_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_sign_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *data</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> *signature</code></em>);</pre>
+<p>This function will sign the given data using a signature algorithm
+supported by the private key. Signature algorithms are always used
+together with a hash functions. Different hash functions may be
+used for the RSA algorithm, but only the SHA family for the DSA keys.</p>
+<p>You may use <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()"><code class="function">gnutls_pubkey_get_preferred_hash_algorithm()</code></a> to determine
+the hash algorithm.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-data.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>signer</p></td>
+<td class="parameter_description"><p>Holds the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>should be a digest algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Zero or one of <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><code class="literal">gnutls_privkey_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>holds the data to be signed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>will contain the signature allocated with <code class="function">gnutls_malloc()</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-data.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-privkey-sign-data2"></a><h3>gnutls_privkey_sign_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_sign_data2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *data</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> *signature</code></em>);</pre>
+<p>This function will sign the given data using the specified signature
+algorithm. This function is an enhancement of <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()"><code class="function">gnutls_privkey_sign_data()</code></a>,
+as it allows utilizing a alternative signature algorithm where possible
+(e.g, use an RSA key with RSA-PSS).</p>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-data2.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>signer</p></td>
+<td class="parameter_description"><p>Holds the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>The signature algorithm used</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Zero or one of <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><code class="literal">gnutls_privkey_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>holds the data to be signed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>will contain the signature allocated with <code class="function">gnutls_malloc()</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-data2.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-sign-raw-data"></a><h3>gnutls_privkey_sign_raw_data()</h3>
+<pre class="programlisting">#define gnutls_privkey_sign_raw_data(key, flags, data, sig)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-sign-hash"></a><h3>gnutls_privkey_sign_hash ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_sign_hash (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash_algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *hash_data</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> *signature</code></em>);</pre>
+<p>This function will sign the given hashed data using a signature algorithm
+supported by the private key. Signature algorithms are always used
+together with a hash functions. Different hash functions may be
+used for the RSA algorithm, but only SHA-XXX for the DSA keys.</p>
+<p>You may use <a class="link" href="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" title="gnutls_pubkey_get_preferred_hash_algorithm ()"><code class="function">gnutls_pubkey_get_preferred_hash_algorithm()</code></a> to determine
+the hash algorithm.</p>
+<p>The flags may be <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-SIGN-FLAG-TLS1-RSA:CAPS"><code class="literal">GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA</code></a> or <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-SIGN-FLAG-RSA-PSS:CAPS"><code class="literal">GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS</code></a>.
+In the former case this function will ignore <em class="parameter"><code>hash_algo</code></em>
+ and perform a raw PKCS1 signature,
+and in the latter an RSA-PSS signature will be generated.</p>
+<p>Note that, not all algorithm support signing already hashed data. When
+signing with Ed25519, <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data" title="gnutls_privkey_sign_data ()"><code class="function">gnutls_privkey_sign_data()</code></a> should be used.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-hash.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>signer</p></td>
+<td class="parameter_description"><p>Holds the signer's key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash_algo</p></td>
+<td class="parameter_description"><p>The hash algorithm used</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Zero or one of <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><code class="literal">gnutls_privkey_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash_data</p></td>
+<td class="parameter_description"><p>holds the data to be signed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>will contain newly allocated signature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-hash.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-privkey-sign-hash2"></a><h3>gnutls_privkey_sign_hash2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_sign_hash2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> signer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *hash_data</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> *signature</code></em>);</pre>
+<p>This function will sign the given hashed data using the specified signature
+algorithm. This function is an enhancement of <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-hash" title="gnutls_privkey_sign_hash ()"><code class="function">gnutls_privkey_sign_hash()</code></a>,
+as it allows utilizing a alternative signature algorithm where possible
+(e.g, use an RSA key with RSA-PSS).</p>
+<p>The flags may be <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-SIGN-FLAG-TLS1-RSA:CAPS"><code class="literal">GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA</code></a>.
+In that case this function will ignore <em class="parameter"><code>hash_algo</code></em>
+ and perform a raw PKCS1 signature.
+Note that this flag is supported since 3.6.9.</p>
+<p>Note also that, not all algorithm support signing already hashed data. When
+signing with Ed25519, <a class="link" href="gnutls-abstract.html#gnutls-privkey-sign-data2" title="gnutls_privkey_sign_data2 ()"><code class="function">gnutls_privkey_sign_data2()</code></a> should be used instead.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-hash2.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>signer</p></td>
+<td class="parameter_description"><p>Holds the signer's key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>The signature algorithm used</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Zero or one of <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><code class="literal">gnutls_privkey_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash_data</p></td>
+<td class="parameter_description"><p>holds the data to be signed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>will contain newly allocated signature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-sign-hash2.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-decrypt-data"></a><h3>gnutls_privkey_decrypt_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_decrypt_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *ciphertext</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> *plaintext</code></em>);</pre>
+<p>This function will decrypt the given data using the algorithm
+supported by the private key.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-decrypt-data.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>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ciphertext</p></td>
+<td class="parameter_description"><p>holds the data to be decrypted</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>plaintext</p></td>
+<td class="parameter_description"><p>will contain the decrypted data, allocated with <code class="function">gnutls_malloc()</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-decrypt-data.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-privkey-decrypt-data2"></a><h3>gnutls_privkey_decrypt_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_decrypt_data2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *ciphertext</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *plaintext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> plaintext_size</code></em>);</pre>
+<p>This function will decrypt the given data using the algorithm
+supported by the private key. Unlike with <a class="link" href="gnutls-abstract.html#gnutls-privkey-decrypt-data" title="gnutls_privkey_decrypt_data ()"><code class="function">gnutls_privkey_decrypt_data()</code></a>
+this function operates in constant time and constant memory access.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-decrypt-data2.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>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ciphertext</p></td>
+<td class="parameter_description"><p>holds the data to be decrypted</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>plaintext</p></td>
+<td class="parameter_description"><p>a preallocated buffer that will be filled with the plaintext</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>plaintext_size</p></td>
+<td class="parameter_description"><p>in/out size of the plaintext</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-decrypt-data2.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.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-rsa-raw"></a><h3>gnutls_privkey_export_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_rsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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> *m</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> *e</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> *d</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> *p</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> *q</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> *u</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> *e1</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> *e2</code></em>);</pre>
+<p>This function will export the RSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum. For
+EdDSA keys, the <em class="parameter"><code>y</code></em>
+ value should be <code class="literal">NULL</code>.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-rsa-raw.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 certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>will hold the private exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the first prime (p)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the second prime (q)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>u</p></td>
+<td class="parameter_description"><p>will hold the coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e1</p></td>
+<td class="parameter_description"><p>will hold e1 = d mod (p-1)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e2</p></td>
+<td class="parameter_description"><p>will hold e2 = d mod (q-1)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-rsa-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-rsa-raw2"></a><h3>gnutls_privkey_export_rsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_rsa_raw2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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> *m</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> *e</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> *d</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> *p</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> *q</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> *u</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> *e1</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> *e2</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will export the RSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-rsa-raw2.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 certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>will hold the private exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the first prime (p)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the second prime (q)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>u</p></td>
+<td class="parameter_description"><p>will hold the coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e1</p></td>
+<td class="parameter_description"><p>will hold e1 = d mod (p-1)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e2</p></td>
+<td class="parameter_description"><p>will hold e2 = d mod (q-1)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-rsa-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-dsa-raw"></a><h3>gnutls_privkey_export_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_dsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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> *p</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> *q</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> *g</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> *y</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> *x</code></em>);</pre>
+<p>This function will export the DSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-dsa-raw.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the p</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the q</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>will hold the g</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-dsa-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-dsa-raw2"></a><h3>gnutls_privkey_export_dsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_dsa_raw2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</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> *p</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> *q</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> *g</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> *y</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> *x</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will export the DSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-dsa-raw2.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the p</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the q</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>will hold the g</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-dsa-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-ecc-raw"></a><h3>gnutls_privkey_export_ecc_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_ecc_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</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> *x</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> *y</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> *k</code></em>);</pre>
+<p>This function will export the ECC private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter will be <code class="literal">NULL</code> and the other parameters
+will be in the native format for the curve.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-ecc-raw.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>will hold the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-ecc-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-ecc-raw2"></a><h3>gnutls_privkey_export_ecc_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_ecc_raw2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</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> *x</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> *y</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> *k</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will export the ECC private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter will be <code class="literal">NULL</code> and the other parameters
+will be in the native format for the curve.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-ecc-raw2.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>will hold the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-ecc-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-export-gost-raw2"></a><h3>gnutls_privkey_export_gost_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_privkey_export_gost_raw2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *digest</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t"><span class="type">gnutls_gost_paramset_t</span></a> *paramset</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> *x</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> *y</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> *k</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will export the GOST private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>Note: parameters will be stored with least significant byte first. On
+version 3.6.3 this was incorrectly returned in big-endian format.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-export-gost-raw2.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 public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>will hold the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>paramset</p></td>
+<td class="parameter_description"><p>will hold the GOST parameter set ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>will hold the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-abstract.html#gnutls-abstract-export-flags-t" title="enum gnutls_abstract_export_flags_t"><code class="literal">gnutls_abstract_export_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-privkey-export-gost-raw2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-privkey-sign"></a><h3>gnutls_x509_crt_privkey_sign ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_privkey_sign (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will sign the certificate with the issuer's private key, and
+will copy the issuer's information into the certificate.</p>
+<p>This must be the last step in a certificate generation since all
+the previously set parameters are now signed.</p>
+<p>A known limitation of this function is, that a newly-signed certificate will not
+be fully functional (e.g., for signature verification), until it
+is exported an re-imported.</p>
+<p>After GnuTLS 3.6.1 the value of <em class="parameter"><code>dig</code></em>
+ may be <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"><code class="literal">GNUTLS_DIG_UNKNOWN</code></a>,
+and in that case, a suitable but reasonable for the key algorithm will be selected.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-privkey-sign.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>issuer</p></td>
+<td class="parameter_description"><p>is the certificate of the certificate issuer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer_key</p></td>
+<td class="parameter_description"><p>holds the issuer's private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>The message digest to use, <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA256:CAPS"><code class="literal">GNUTLS_DIG_SHA256</code></a> is a safe choice</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-privkey-sign.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-x509-crl-privkey-sign"></a><h3>gnutls_x509_crl_privkey_sign ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_privkey_sign (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> issuer_key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will sign the CRL with the issuer's private key, and
+will copy the issuer's information into the CRL.</p>
+<p>This must be the last step in a certificate CRL since all
+the previously set parameters are now signed.</p>
+<p>A known limitation of this function is, that a newly-signed CRL will not
+be fully functional (e.g., for signature verification), until it
+is exported an re-imported.</p>
+<p>After GnuTLS 3.6.1 the value of <em class="parameter"><code>dig</code></em>
+ may be <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"><code class="literal">GNUTLS_DIG_UNKNOWN</code></a>,
+and in that case, a suitable but reasonable for the key algorithm will be selected.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-privkey-sign.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer</p></td>
+<td class="parameter_description"><p>is the certificate of the certificate issuer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer_key</p></td>
+<td class="parameter_description"><p>holds the issuer's private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>The message digest to use. GNUTLS_DIG_SHA256 is the safe choice unless you know what you're doing.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-privkey-sign.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>
+<p>Since 2.12.0</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-privkey-sign"></a><h3>gnutls_x509_crq_privkey_sign ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_privkey_sign (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will sign the certificate request with a private key.
+This must be the same key as the one used in
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()"><code class="function">gnutls_x509_crt_set_key()</code></a> since a certificate request is self
+signed.</p>
+<p>This must be the last step in a certificate request generation
+since all the previously set parameters are now signed.</p>
+<p>A known limitation of this function is, that a newly-signed request will not
+be fully functional (e.g., for signature verification), until it
+is exported an re-imported.</p>
+<p>After GnuTLS 3.6.1 the value of <em class="parameter"><code>dig</code></em>
+ may be <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"><code class="literal">GNUTLS_DIG_UNKNOWN</code></a>,
+and in that case, a suitable but reasonable for the key algorithm will be selected.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-privkey-sign.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>holds a private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>The message digest to use, i.e., <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS"><code class="literal">GNUTLS_DIG_SHA1</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-privkey-sign.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> on success, otherwise a negative error code.
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_FOUND"><code class="literal">GNUTLS_E_ASN1_VALUE_NOT_FOUND</code></a> is returned if you didn't set all
+information in the certificate request (e.g., the version using
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()"><code class="function">gnutls_x509_crq_set_version()</code></a>).</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-import-x509"></a><h3>gnutls_pcert_import_x509 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_import_x509 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</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>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This convenience function will import the given certificate to a
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structure. The structure must be deinitialized
+afterwards using <a class="link" href="gnutls-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()"><code class="function">gnutls_pcert_deinit()</code></a>;</p>
+<div class="refsect3">
+<a name="gnutls-pcert-import-x509.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>pcert</p></td>
+<td class="parameter_description"><p>The pcert structure</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 be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-import-x509.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-pcert-import-x509-list"></a><h3>gnutls_pcert_import_x509_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_import_x509_list (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</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><span class="type">unsigned</span> *ncrt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This convenience function will import the given certificates to an
+already allocated set of <a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structures. The structures must
+be deinitialized afterwards using <a class="link" href="gnutls-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()"><code class="function">gnutls_pcert_deinit()</code></a>. <em class="parameter"><code>pcert_list</code></em>
+
+should contain space for at least <em class="parameter"><code>ncrt</code></em>
+ elements.</p>
+<p>In the case <a class="link" href="gnutls-x509.html#GNUTLS-X509-CRT-LIST-SORT:CAPS"><code class="literal">GNUTLS_X509_CRT_LIST_SORT</code></a> is specified and that
+function cannot sort the list, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-LIST-UNSORTED:CAPS" title="GNUTLS_E_CERTIFICATE_LIST_UNSORTED"><code class="literal">GNUTLS_E_CERTIFICATE_LIST_UNSORTED</code></a>
+will be returned. Currently sorting can fail if the list size
+exceeds an internal constraint (16).</p>
+<div class="refsect3">
+<a name="gnutls-pcert-import-x509-list.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>pcert_list</p></td>
+<td class="parameter_description"><p>The structures to store the certificates; must not contain initialized <a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structures.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>The certificates to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ncrt</p></td>
+<td class="parameter_description"><p>The number of certificates in <em class="parameter"><code>crt</code></em>
+; will be updated if necessary</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-X509-CRT-LIST-SORT:CAPS"><code class="literal">GNUTLS_X509_CRT_LIST_SORT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-import-x509-list.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-pcert-export-x509"></a><h3>gnutls_pcert_export_x509 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_export_x509 (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</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>);</pre>
+<p>Converts the given <span class="type">gnutls_pcert_t</span> type into 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>.
+This function only works if the type of <em class="parameter"><code>pcert</code></em>
+ is <a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-X509:CAPS"><code class="literal">GNUTLS_CRT_X509</code></a>.
+When successful, the value written to <em class="parameter"><code>crt</code></em>
+ must be freed with
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a> when no longer needed.</p>
+<div class="refsect3">
+<a name="gnutls-pcert-export-x509.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>pcert</p></td>
+<td class="parameter_description"><p>The pcert structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>An initialized <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>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-export-x509.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-pcert-list-import-x509-raw"></a><h3>gnutls_pcert_list_import_x509_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_list_import_x509_raw (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcerts</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *pcert_max</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> *data</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the provided DER or PEM encoded certificates to an
+already allocated set of <a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structures. The structures must
+be deinitialized afterwards using <a class="link" href="gnutls-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()"><code class="function">gnutls_pcert_deinit()</code></a>. <em class="parameter"><code>pcert_list</code></em>
+
+should contain space for at least <em class="parameter"><code>pcert_list_size</code></em>
+ elements.</p>
+<p>If the Certificate is PEM encoded it should have a header of "X509
+CERTIFICATE", or "CERTIFICATE".</p>
+<div class="refsect3">
+<a name="gnutls-pcert-list-import-x509-raw.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>pcert_list</p></td>
+<td class="parameter_description"><p>The structures to store the certificates; must not contain initialized <a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structures.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pcert_list_size</p></td>
+<td class="parameter_description"><p>Initially must hold the maximum number of certs. It will be updated with the number of certs available.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The certificates.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be (0) or an OR'd sequence of gnutls_certificate_import_flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-list-import-x509-raw.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; if the <em class="parameter"><code>pcert</code></em>
+list doesn't have enough space
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be returned.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-list-import-x509-file"></a><h3>gnutls_pcert_list_import_x509_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_list_import_x509_file (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned</span> *pcert_list_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *file</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> format</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> pin_fn</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *pin_fn_userdata</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-import-x509-raw"></a><h3>gnutls_pcert_import_x509_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_import_x509_raw (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</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> *cert</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This convenience function will import the given certificate to a
+<a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structure. The structure must be deinitialized
+afterwards using <a class="link" href="gnutls-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()"><code class="function">gnutls_pcert_deinit()</code></a>;</p>
+<div class="refsect3">
+<a name="gnutls-pcert-import-x509-raw.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>pcert</p></td>
+<td class="parameter_description"><p>The pcert structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>The raw certificate to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-import-x509-raw.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-pcert-import-openpgp-raw"></a><h3>gnutls_pcert_import_openpgp_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_import_openpgp_raw (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</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> *cert</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-pcert-import-openpgp-raw.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>pcert</p></td>
+<td class="parameter_description"><p>The pcert structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>The raw certificate to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>keyid</p></td>
+<td class="parameter_description"><p>The key ID to use (NULL for the master key)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-import-openpgp-raw.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-import-openpgp"></a><h3>gnutls_pcert_import_openpgp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_import_openpgp (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-pcert-import-openpgp.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>pcert</p></td>
+<td class="parameter_description"><p>The pcert structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>The raw certificate to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-import-openpgp.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-export-openpgp"></a><h3>gnutls_pcert_export_openpgp ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_export_openpgp (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *crt</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-deinit"></a><h3>gnutls_pcert_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pcert_deinit (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</code></em>);</pre>
+<p>This function will deinitialize a pcert structure.</p>
+<div class="refsect3">
+<a name="gnutls-pcert-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>pcert</p></td>
+<td class="parameter_description"><p>The structure to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-import-rawpk"></a><h3>gnutls_pcert_import_rawpk ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_import_rawpk (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</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> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This convenience function will import (i.e. convert) the given raw
+public key <em class="parameter"><code>pubkey</code></em>
+ into a <a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structure. The structure
+must be deinitialized afterwards using <a class="link" href="gnutls-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()"><code class="function">gnutls_pcert_deinit()</code></a>. The
+given <em class="parameter"><code>pubkey</code></em>
+ must not be deinitialized because it will be associated
+with the given <em class="parameter"><code>pcert</code></em>
+ structure and will be deinitialized with it.</p>
+<div class="refsect3">
+<a name="gnutls-pcert-import-rawpk.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>pcert</p></td>
+<td class="parameter_description"><p>The pcert structure to import the data into.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pubkey</p></td>
+<td class="parameter_description"><p>The raw public-key in <a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> format to be imported</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-import-rawpk.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.6.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-import-rawpk-raw"></a><h3>gnutls_pcert_import_rawpk_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pcert_import_rawpk_raw (<em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert</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> *rawpubkey</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> format</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 convenience function will import (i.e. convert) the given raw
+public key <em class="parameter"><code>rawpubkey</code></em>
+ into a <a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> structure. The structure
+must be deinitialized afterwards using <a class="link" href="gnutls-abstract.html#gnutls-pcert-deinit" title="gnutls_pcert_deinit ()"><code class="function">gnutls_pcert_deinit()</code></a>.
+Note that the caller is responsible for freeing <em class="parameter"><code>rawpubkey</code></em>
+. All necessary
+values will be copied into <em class="parameter"><code>pcert</code></em>
+.</p>
+<p>Key usage (as defined by X.509 extension (2.5.29.15)) can be explicitly
+set because there is no certificate structure around the key to define
+this value. See for more info <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-usage" title="gnutls_x509_crt_get_key_usage ()"><code class="function">gnutls_x509_crt_get_key_usage()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pcert-import-rawpk-raw.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>pcert</p></td>
+<td class="parameter_description"><p>The pcert structure to import the data into.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rawpubkey</p></td>
+<td class="parameter_description"><p>The raw public-key in <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> format to be imported.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>The format of the raw public-key. DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>An ORed sequence of <code class="literal">GNUTLS_KEY_</code>* flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pcert-import-rawpk-raw.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.6.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-retrieve-function2"></a><h3>gnutls_certificate_set_retrieve_function2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_retrieve_function2
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_certificate_retrieve_function2</span> *func</code></em>);</pre>
+<p>This function sets a callback to be called in order to retrieve the
+certificate to be used in the handshake. The callback will take control
+only if a certificate is requested by the peer.</p>
+<p>The callback's function prototype is:
+int (*callback)(gnutls_session_t, const gnutls_datum_t* req_ca_dn, int nreqs,
+const gnutls_pk_algorithm_t* pk_algos, int pk_algos_length, gnutls_pcert_st** pcert,
+unsigned int *pcert_length, gnutls_privkey_t * pkey);</p>
+<p><em class="parameter"><code>req_ca_dn</code></em>
+ is only used in X.509 certificates.
+Contains a list with the CA names that the server considers trusted.
+This is a hint and typically the client should send a certificate that is signed
+by one of these CAs. These names, when available, are DER encoded. To get a more
+meaningful value use the function <a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get" title="gnutls_x509_rdn_get ()"><code class="function">gnutls_x509_rdn_get()</code></a>.</p>
+<p><em class="parameter"><code>pk_algos</code></em>
+ contains a list with server's acceptable public key algorithms.
+The certificate returned should support the server's given algorithms.</p>
+<p><em class="parameter"><code>pcert</code></em>
+ should contain a single certificate and public key or a list of them.</p>
+<p><em class="parameter"><code>pcert_length</code></em>
+ is the size of the previous list.</p>
+<p><em class="parameter"><code>pkey</code></em>
+ is the private key.</p>
+<p>If the callback function is provided then gnutls will call it, in the
+handshake, after the certificate request message has been received.
+All the provided by the callback values will not be released or
+modified by gnutls.</p>
+<p>In server side pk_algos and req_ca_dn are NULL.</p>
+<p>The callback function should set the certificate list to be sent,
+and return 0 on success. If no certificate was selected then the
+number of certificates should be set to zero. The value (-1)
+indicates error and the handshake will be terminated. If both certificates
+are set in the credentials and a callback is available, the callback
+takes predence.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-retrieve-function2.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-retrieve-function3"></a><h3>gnutls_certificate_set_retrieve_function3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_retrieve_function3
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_certificate_retrieve_function3</span> *func</code></em>);</pre>
+<p>This function sets a callback to be called in order to retrieve the
+certificate and OCSP responses to be used in the handshake. <em class="parameter"><code>func</code></em>
+ will
+be called only if the peer requests a certificate either during handshake
+or during post-handshake authentication.</p>
+<p>The callback's function prototype is defined in `abstract.h':</p>
+<p>int gnutls_certificate_retrieve_function3(
+gnutls_session_t,
+const struct gnutls_cert_retr_st *info,
+gnutls_pcert_st **certs,
+unsigned int *certs_length,
+gnutls_ocsp_data_st **ocsp,
+unsigned int *ocsp_length,
+gnutls_privkey_t *privkey,
+unsigned int *flags);</p>
+<p>The info field of the callback contains:
+<em class="parameter"><code>req_ca_dn</code></em>
+ which is a list with the CA names that the server considers trusted.
+This is a hint and typically the client should send a certificate that is signed
+by one of these CAs. These names, when available, are DER encoded. To get a more
+meaningful value use the function <a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get" title="gnutls_x509_rdn_get ()"><code class="function">gnutls_x509_rdn_get()</code></a>.
+<em class="parameter"><code>pk_algos</code></em>
+ contains a list with server's acceptable public key algorithms.
+The certificate returned should support the server's given algorithms.</p>
+<p>The callback should fill-in the following values:</p>
+<p><em class="parameter"><code>certs</code></em>
+ should contain an allocated list of certificates and public keys.
+<em class="parameter"><code>certs_length</code></em>
+ is the size of the previous list.
+<em class="parameter"><code>ocsp</code></em>
+ should contain an allocated list of OCSP responses.
+<em class="parameter"><code>ocsp_length</code></em>
+ is the size of the previous list.
+<em class="parameter"><code>privkey</code></em>
+ is the private key.</p>
+<p>If flags in the callback are set to <a class="link" href="gnutls-abstract.html#GNUTLS-CERT-RETR-DEINIT-ALL:CAPS" title="GNUTLS_CERT_RETR_DEINIT_ALL"><code class="literal">GNUTLS_CERT_RETR_DEINIT_ALL</code></a> then
+all provided values must be allocated using <code class="function">gnutls_malloc()</code>, and will
+be released by gnutls; otherwise they will not be touched by gnutls.</p>
+<p>The callback function should set the certificate and OCSP response
+list to be sent, and return 0 on success. If no certificates are available,
+the <em class="parameter"><code>certs_length</code></em>
+ and <em class="parameter"><code>ocsp_length</code></em>
+ should be set to zero. The return
+value (-1) indicates error and the handshake will be terminated. If both
+certificates are set in the credentials and a callback is available, the
+callback takes predence.</p>
+<p>Raw public-keys:
+In case raw public-keys are negotiated as certificate type, certificates
+that would normally hold the public-key material are not available. In that case,
+<em class="parameter"><code>certs</code></em>
+ contains an allocated list with only the public key. Since there is no
+certificate, there is also no certificate status. Therefore, OCSP information
+should not be set.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-retrieve-function3.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-key"></a><h3>gnutls_certificate_set_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_key (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **names</code></em>,
+ <em class="parameter"><code><span class="type">int</span> names_size</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-abstract.html#gnutls-pcert-st" title="gnutls_pcert_st"><span class="type">gnutls_pcert_st</span></a> *pcert_list</code></em>,
+ <em class="parameter"><code><span class="type">int</span> pcert_list_size</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key</code></em>);</pre>
+<p>This function sets a public/private key pair in the
+gnutls_certificate_credentials_t type. The given public key may be encapsulated
+in a certificate or can be given as a raw key. This function may be
+called more than once, in case multiple key pairs exist for
+the server. For clients that want to send more than their own end-
+entity certificate (e.g., also an intermediate CA cert), the full
+certificate chain must be provided in <em class="parameter"><code>pcert_list</code></em>
+.</p>
+<p>Note that the <em class="parameter"><code>key</code></em>
+ will become part of the credentials structure and must
+not be deallocated. It will be automatically deallocated when the <em class="parameter"><code>res</code></em>
+ structure
+is deinitialized.</p>
+<p>If this function fails, the <em class="parameter"><code>res</code></em>
+ structure is at an undefined state and it must
+not be reused to load other keys or certificates.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used for other functions to refer to the added key-pair.</p>
+<p>Since GnuTLS 3.6.6 this function also handles raw public keys.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>names</p></td>
+<td class="parameter_description"><p>is an array of DNS names belonging to the public-key (NULL if none)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>names_size</p></td>
+<td class="parameter_description"><p>holds the size of the names list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pcert_list</p></td>
+<td class="parameter_description"><p>contains a certificate list (chain) or raw public-key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pcert_list_size</p></td>
+<td class="parameter_description"><p>holds the size of the certificate list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t"><span class="type">gnutls_privkey_t</span></a> key corresponding to the first public-key in pcert_list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-key.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-print"></a><h3>gnutls_pubkey_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pubkey_print (<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> pubkey</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+ <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 pretty print public key information, suitable for
+display to a human.</p>
+<p>Only <a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL:CAPS"><code class="literal">GNUTLS_CRT_PRINT_FULL</code></a> and <a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL-NUMBERS:CAPS"><code class="literal">GNUTLS_CRT_PRINT_FULL_NUMBERS</code></a>
+are implemented.</p>
+<p>The output <em class="parameter"><code>out</code></em>
+ 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-pubkey-print.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>pubkey</p></td>
+<td class="parameter_description"><p>The data to be printed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>Indicate the format to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>Newly allocated datum with null terminated string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pubkey-print.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>
+</div>
+<div class="refsect1">
+<a name="gnutls-abstract.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GNUTLS-PUBKEY-VERIFY-FLAG-TLS-RSA:CAPS"></a><h3>GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA</h3>
+<pre class="programlisting">#define GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-flags-t"></a><h3>enum gnutls_pubkey_flags_t</h3>
+<div class="refsect3">
+<a name="gnutls-pubkey-flags-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-PUBKEY-DISABLE-CALLBACKS:CAPS"></a>GNUTLS_PUBKEY_DISABLE_CALLBACKS</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PUBKEY-GET-OPENPGP-FINGERPRINT:CAPS"></a>GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-abstract-export-flags-t"></a><h3>enum gnutls_abstract_export_flags_t</h3>
+<div class="refsect3">
+<a name="gnutls-abstract-export-flags-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-EXPORT-FLAG-NO-LZ:CAPS"></a>GNUTLS_EXPORT_FLAG_NO_LZ</p></td>
+<td> </td>
+<td> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PUBKEY-VERIFY-FLAG-TLS1-RSA:CAPS"></a><h3>GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA</h3>
+<pre class="programlisting">#define GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA GNUTLS_VERIFY_USE_TLS1_RSA
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PRIVKEY-INFO-PK-ALGO:CAPS"></a><h3>GNUTLS_PRIVKEY_INFO_PK_ALGO</h3>
+<pre class="programlisting">#define GNUTLS_PRIVKEY_INFO_PK_ALGO 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PRIVKEY-INFO-SIGN-ALGO:CAPS"></a><h3>GNUTLS_PRIVKEY_INFO_SIGN_ALGO</h3>
+<pre class="programlisting">#define GNUTLS_PRIVKEY_INFO_SIGN_ALGO (1&lt;&lt;1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PRIVKEY-INFO-HAVE-SIGN-ALGO:CAPS"></a><h3>GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO</h3>
+<pre class="programlisting">#define GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO (1&lt;&lt;2)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PRIVKEY-INFO-PK-ALGO-BITS:CAPS"></a><h3>GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS</h3>
+<pre class="programlisting">#define GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS (1&lt;&lt;3)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-pk-rsa-raw"></a><h3>gnutls_pubkey_get_pk_rsa_raw</h3>
+<pre class="programlisting">#define gnutls_pubkey_get_pk_rsa_raw gnutls_pubkey_export_rsa_raw
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-pk-dsa-raw"></a><h3>gnutls_pubkey_get_pk_dsa_raw</h3>
+<pre class="programlisting">#define gnutls_pubkey_get_pk_dsa_raw gnutls_pubkey_export_dsa_raw
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-pk-ecc-raw"></a><h3>gnutls_pubkey_get_pk_ecc_raw</h3>
+<pre class="programlisting">#define gnutls_pubkey_get_pk_ecc_raw gnutls_pubkey_export_ecc_raw
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-get-pk-ecc-x962"></a><h3>gnutls_pubkey_get_pk_ecc_x962</h3>
+<pre class="programlisting">#define gnutls_pubkey_get_pk_ecc_x962 gnutls_pubkey_export_ecc_x962
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-flags-t"></a><h3>enum gnutls_privkey_flags_t</h3>
+<div class="refsect3">
+<a name="gnutls-privkey-flags-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-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"></a>GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-IMPORT-COPY:CAPS"></a>GNUTLS_PRIVKEY_IMPORT_COPY</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-DISABLE-CALLBACKS:CAPS"></a>GNUTLS_PRIVKEY_DISABLE_CALLBACKS</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-SIGN-FLAG-TLS1-RSA:CAPS"></a>GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-FLAG-PROVABLE:CAPS"></a>GNUTLS_PRIVKEY_FLAG_PROVABLE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-FLAG-EXPORT-COMPAT:CAPS"></a>GNUTLS_PRIVKEY_FLAG_EXPORT_COMPAT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-SIGN-FLAG-RSA-PSS:CAPS"></a>GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-FLAG-REPRODUCIBLE:CAPS"></a>GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-FLAG-CA:CAPS"></a>GNUTLS_PRIVKEY_FLAG_CA</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-FLAG-RSA-PSS-FIXED-SALT-LENGTH:CAPS"></a>GNUTLS_PRIVKEY_FLAG_RSA_PSS_FIXED_SALT_LENGTH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pcert-st"></a><h3>gnutls_pcert_st</h3>
+<pre class="programlisting">typedef struct {
+ gnutls_pubkey_t pubkey;
+ gnutls_datum_t cert;
+ gnutls_certificate_type_t type;
+} gnutls_pcert_st;
+</pre>
+<p>A parsed certificate.</p>
+<div class="refsect3">
+<a name="gnutls-pcert-st.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t"><span class="type">gnutls_pubkey_t</span></a> <em class="structfield"><code><a name="gnutls-pcert-st.pubkey"></a>pubkey</code></em>;</p></td>
+<td class="struct_member_description"><p>public key of parsed certificate.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> <em class="structfield"><code><a name="gnutls-pcert-st.cert"></a>cert</code></em>;</p></td>
+<td class="struct_member_description"><p>certificate itself of parsed certificate</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> <em class="structfield"><code><a name="gnutls-pcert-st.type"></a>type</code></em>;</p></td>
+<td class="struct_member_description"><p>type of certificate, a <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> type.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PCERT-NO-CERT:CAPS"></a><h3>GNUTLS_PCERT_NO_CERT</h3>
+<pre class="programlisting">#define GNUTLS_PCERT_NO_CERT 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cert-retr-st"></a><h3>struct gnutls_cert_retr_st</h3>
+<pre class="programlisting">struct gnutls_cert_retr_st {
+ unsigned version; /* set to 1 */
+ gnutls_certificate_credentials_t cred;
+ const gnutls_datum_t *req_ca_rdn;
+ unsigned nreqs;
+ const gnutls_pk_algorithm_t *pk_algos;
+ unsigned pk_algos_length;
+
+ /* other fields may be added if version is &gt; 1 */
+ unsigned char padding[64];
+};
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CERT-RETR-DEINIT-ALL:CAPS"></a><h3>GNUTLS_CERT_RETR_DEINIT_ALL</h3>
+<pre class="programlisting">#define GNUTLS_CERT_RETR_DEINIT_ALL 1
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-crypto.html b/doc/reference/html/gnutls-crypto.html
new file mode 100644
index 0000000..d1bf0d9
--- /dev/null
+++ b/doc/reference/html/gnutls-crypto.html
@@ -0,0 +1,3263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>crypto: 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-openpgp.html" title="openpgp">
+<link rel="next" href="gnutls-pkcs11.html" title="pkcs11">
+<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-crypto.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-openpgp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-pkcs11.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-crypto"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-crypto.top_of_page"></a>crypto</span></h2>
+<p>crypto</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-crypto.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">
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-init" title="gnutls_cipher_init ()">gnutls_cipher_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-crypto.html#gnutls-cipher-encrypt" title="gnutls_cipher_encrypt ()">gnutls_cipher_encrypt</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-crypto.html#gnutls-cipher-decrypt" title="gnutls_cipher_decrypt ()">gnutls_cipher_decrypt</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-crypto.html#gnutls-cipher-decrypt2" title="gnutls_cipher_decrypt2 ()">gnutls_cipher_decrypt2</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-crypto.html#gnutls-cipher-encrypt2" title="gnutls_cipher_encrypt2 ()">gnutls_cipher_encrypt2</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-crypto.html#gnutls-cipher-encrypt3" title="gnutls_cipher_encrypt3 ()">gnutls_cipher_encrypt3</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-crypto.html#gnutls-cipher-decrypt3" title="gnutls_cipher_decrypt3 ()">gnutls_cipher_decrypt3</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-crypto.html#gnutls-cipher-set-iv" title="gnutls_cipher_set_iv ()">gnutls_cipher_set_iv</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-crypto.html#gnutls-cipher-tag" title="gnutls_cipher_tag ()">gnutls_cipher_tag</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-crypto.html#gnutls-cipher-add-auth" title="gnutls_cipher_add_auth ()">gnutls_cipher_add_auth</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-crypto.html#gnutls-cipher-deinit" title="gnutls_cipher_deinit ()">gnutls_cipher_deinit</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-crypto.html#gnutls-cipher-get-block-size" title="gnutls_cipher_get_block_size ()">gnutls_cipher_get_block_size</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-crypto.html#gnutls-aead-cipher-set-key" title="gnutls_aead_cipher_set_key ()">gnutls_aead_cipher_set_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-crypto.html#gnutls-aead-cipher-decrypt" title="gnutls_aead_cipher_decrypt ()">gnutls_aead_cipher_decrypt</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-crypto.html#gnutls-aead-cipher-encrypt" title="gnutls_aead_cipher_encrypt ()">gnutls_aead_cipher_encrypt</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-crypto.html#gnutls-aead-cipher-encryptv" title="gnutls_aead_cipher_encryptv ()">gnutls_aead_cipher_encryptv</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-crypto.html#gnutls-aead-cipher-encryptv2" title="gnutls_aead_cipher_encryptv2 ()">gnutls_aead_cipher_encryptv2</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-crypto.html#gnutls-aead-cipher-decryptv2" title="gnutls_aead_cipher_decryptv2 ()">gnutls_aead_cipher_decryptv2</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-crypto.html#gnutls-aead-cipher-deinit" title="gnutls_aead_cipher_deinit ()">gnutls_aead_cipher_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-crypto.html#gnutls-mac-get-nonce-size" title="gnutls_mac_get_nonce_size ()">gnutls_mac_get_nonce_size</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-crypto.html#gnutls-hmac-set-nonce" title="gnutls_hmac_set_nonce ()">gnutls_hmac_set_nonce</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-crypto.html#gnutls-hmac" title="gnutls_hmac ()">gnutls_hmac</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-crypto.html#gnutls-hmac-output" title="gnutls_hmac_output ()">gnutls_hmac_output</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-crypto.html#gnutls-hmac-deinit" title="gnutls_hmac_deinit ()">gnutls_hmac_deinit</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-crypto.html#gnutls-hmac-get-len" title="gnutls_hmac_get_len ()">gnutls_hmac_get_len</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="returnvalue">gnutls_hmac_hd_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-crypto.html#gnutls-hmac-copy" title="gnutls_hmac_copy ()">gnutls_hmac_copy</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-crypto.html#gnutls-hash-init" title="gnutls_hash_init ()">gnutls_hash_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-crypto.html#gnutls-hash" title="gnutls_hash ()">gnutls_hash</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-crypto.html#gnutls-hash-output" title="gnutls_hash_output ()">gnutls_hash_output</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-crypto.html#gnutls-hash-deinit" title="gnutls_hash_deinit ()">gnutls_hash_deinit</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-crypto.html#gnutls-hash-get-len" title="gnutls_hash_get_len ()">gnutls_hash_get_len</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="returnvalue">gnutls_hash_hd_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-crypto.html#gnutls-hash-copy" title="gnutls_hash_copy ()">gnutls_hash_copy</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-crypto.html#gnutls-hkdf-extract" title="gnutls_hkdf_extract ()">gnutls_hkdf_extract</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-crypto.html#gnutls-hkdf-expand" title="gnutls_hkdf_expand ()">gnutls_hkdf_expand</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-crypto.html#gnutls-pbkdf2" title="gnutls_pbkdf2 ()">gnutls_pbkdf2</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-crypto.html#gnutls-rnd" title="gnutls_rnd ()">gnutls_rnd</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-crypto.html#gnutls-rnd-refresh" title="gnutls_rnd_refresh ()">gnutls_rnd_refresh</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-crypto.html#gnutls-cipher-init-func" title="gnutls_cipher_init_func ()">*gnutls_cipher_init_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-setkey-func" title="gnutls_cipher_setkey_func ()">*gnutls_cipher_setkey_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-setiv-func" title="gnutls_cipher_setiv_func ()">*gnutls_cipher_setiv_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-getiv-func" title="gnutls_cipher_getiv_func ()">*gnutls_cipher_getiv_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt-func" title="gnutls_cipher_encrypt_func ()">*gnutls_cipher_encrypt_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt-func" title="gnutls_cipher_decrypt_func ()">*gnutls_cipher_decrypt_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-auth-func" title="gnutls_cipher_auth_func ()">*gnutls_cipher_auth_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-tag-func" title="gnutls_cipher_tag_func ()">*gnutls_cipher_tag_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-aead-encrypt-func" title="gnutls_cipher_aead_encrypt_func ()">*gnutls_cipher_aead_encrypt_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-aead-decrypt-func" title="gnutls_cipher_aead_decrypt_func ()">*gnutls_cipher_aead_decrypt_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-cipher-deinit-func" title="gnutls_cipher_deinit_func ()">*gnutls_cipher_deinit_func</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-crypto.html#gnutls-crypto-register-cipher" title="gnutls_crypto_register_cipher ()">gnutls_crypto_register_cipher</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-crypto.html#gnutls-crypto-register-aead-cipher" title="gnutls_crypto_register_aead_cipher ()">gnutls_crypto_register_aead_cipher</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-crypto.html#gnutls-mac-init-func" title="gnutls_mac_init_func ()">*gnutls_mac_init_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-mac-setkey-func" title="gnutls_mac_setkey_func ()">*gnutls_mac_setkey_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-mac-setnonce-func" title="gnutls_mac_setnonce_func ()">*gnutls_mac_setnonce_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-mac-hash-func" title="gnutls_mac_hash_func ()">*gnutls_mac_hash_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-mac-output-func" title="gnutls_mac_output_func ()">*gnutls_mac_output_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-mac-deinit-func" title="gnutls_mac_deinit_func ()">*gnutls_mac_deinit_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-mac-fast-func" title="gnutls_mac_fast_func ()">*gnutls_mac_fast_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-mac-copy-func" title="gnutls_mac_copy_func ()">*gnutls_mac_copy_func</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-crypto.html#gnutls-crypto-register-mac" title="gnutls_crypto_register_mac ()">gnutls_crypto_register_mac</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-crypto.html#gnutls-digest-init-func" title="gnutls_digest_init_func ()">*gnutls_digest_init_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-digest-hash-func" title="gnutls_digest_hash_func ()">*gnutls_digest_hash_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-digest-output-func" title="gnutls_digest_output_func ()">*gnutls_digest_output_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-digest-deinit-func" title="gnutls_digest_deinit_func ()">*gnutls_digest_deinit_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-digest-fast-func" title="gnutls_digest_fast_func ()">*gnutls_digest_fast_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-crypto.html#gnutls-digest-copy-func" title="gnutls_digest_copy_func ()">*gnutls_digest_copy_func</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-crypto.html#gnutls-crypto-register-digest" title="gnutls_crypto_register_digest ()">gnutls_crypto_register_digest</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-crypto.html#gnutls-encode-ber-digest-info" title="gnutls_encode_ber_digest_info ()">gnutls_encode_ber_digest_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-crypto.html#gnutls-decode-ber-digest-info" title="gnutls_decode_ber_digest_info ()">gnutls_decode_ber_digest_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-crypto.html#gnutls-decode-rs-value" title="gnutls_decode_rs_value ()">gnutls_decode_rs_value</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-crypto.html#gnutls-encode-rs-value" title="gnutls_encode_rs_value ()">gnutls_encode_rs_value</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-crypto.html#gnutls-encode-gost-rs-value" title="gnutls_encode_gost_rs_value ()">gnutls_encode_gost_rs_value</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-crypto.html#gnutls-decode-gost-rs-value" title="gnutls_decode_gost_rs_value ()">gnutls_decode_gost_rs_value</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-crypto.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="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t">gnutls_cipher_hd_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-crypto.html#gnutls-cipher-flags-t" title="enum gnutls_cipher_flags_t">gnutls_cipher_flags_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t">gnutls_hash_hd_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t">gnutls_hmac_hd_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t">gnutls_rnd_level_t</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-crypto.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-crypto.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-cipher-init"></a><h3>gnutls_cipher_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_init (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> *handle</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher</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> *key</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> *iv</code></em>);</pre>
+<p>This function will initialize the <em class="parameter"><code>handle</code></em>
+ context to be usable
+for encryption/decryption of data. This will effectively use the
+current crypto backend in use by gnutls or the cryptographic
+accelerator in use.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cipher</p></td>
+<td class="parameter_description"><p>the encryption algorithm to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the key to be used for encryption/decryption</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iv</p></td>
+<td class="parameter_description"><p>the IV to use (if not applicable set NULL)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-init.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-encrypt"></a><h3>gnutls_cipher_encrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_encrypt (<em class="parameter"><code>const <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>This function will encrypt the given data using the algorithm
+specified by the context.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-encrypt.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the length of data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-encrypt.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-decrypt"></a><h3>gnutls_cipher_decrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_decrypt (<em class="parameter"><code>const <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ciphertext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>);</pre>
+<p>This function will decrypt the given data using the algorithm
+specified by the context.</p>
+<p>Note that in AEAD ciphers, this will not check the tag. You will
+need to compare the tag sent with the value returned from <a class="link" href="gnutls-crypto.html#gnutls-cipher-tag" title="gnutls_cipher_tag ()"><code class="function">gnutls_cipher_tag()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-decrypt.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the data to decrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the length of data to decrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-decrypt.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-decrypt2"></a><h3>gnutls_cipher_decrypt2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_decrypt2 (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *ciphertext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>This function will decrypt the given data using the algorithm
+specified by the context. For block ciphers the <em class="parameter"><code>ctext_len</code></em>
+ must be
+a multiple of the block size. For the supported ciphers the plaintext
+data length will equal the ciphertext size.</p>
+<p>Note that in AEAD ciphers, this will not check the tag. You will
+need to compare the tag sent with the value returned from <a class="link" href="gnutls-crypto.html#gnutls-cipher-tag" title="gnutls_cipher_tag ()"><code class="function">gnutls_cipher_tag()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-decrypt2.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the data to decrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the length of data to decrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the decrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the available length for decrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-decrypt2.returns"></a><h4>Returns</h4>
+<p> Zero 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-cipher-encrypt2"></a><h3>gnutls_cipher_encrypt2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_encrypt2 (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ciphertext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ciphertextlen</code></em>);</pre>
+<p>This function will encrypt the given data using the algorithm
+specified by the context. For block ciphers the <em class="parameter"><code>ptext_len</code></em>
+ must be
+a multiple of the block size. For the supported ciphers the encrypted
+data length will equal the plaintext size.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-encrypt2.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the length of data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the encrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the available length for encrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-encrypt2.returns"></a><h4>Returns</h4>
+<p> Zero 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-cipher-encrypt3"></a><h3>gnutls_cipher_encrypt3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_encrypt3 (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *ptext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ptext_len</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ctext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ctext_len</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will encrypt the given data using the algorithm
+specified by the context. For block ciphers, <em class="parameter"><code>ptext_len</code></em>
+ is
+typically a multiple of the block size. If not, the caller can
+instruct the function to pad the last block according to <em class="parameter"><code>flags</code></em>
+.
+Currently, the only available padding scheme is
+<a class="link" href="gnutls-crypto.html#GNUTLS-CIPHER-PADDING-PKCS7:CAPS"><code class="literal">GNUTLS_CIPHER_PADDING_PKCS7</code></a>.</p>
+<p>If <em class="parameter"><code>ctext</code></em>
+ is not <code class="literal">NULL</code>, it must hold enough space to store
+resulting cipher text. To check the required size, this function
+can be called with <em class="parameter"><code>ctext</code></em>
+ set to <code class="literal">NULL</code>. Then <em class="parameter"><code>ctext_len</code></em>
+ will be
+updated without performing actual encryption.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-encrypt3.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the length of data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the encrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the length of encrypted data (initially must hold the maximum available size)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags for padding</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-encrypt3.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.7.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-decrypt3"></a><h3>gnutls_cipher_decrypt3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_decrypt3 (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *ctext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ctext_len</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ptext_len</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will decrypt the given data using the algorithm
+specified by the context. If <em class="parameter"><code>flags</code></em>
+ is specified, padding for the
+decrypted data will be removed accordingly and <em class="parameter"><code>ptext_len</code></em>
+ will be
+updated.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-decrypt3.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the data to decrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the length of data to decrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the decrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the available length for decrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags for padding</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-decrypt3.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.7.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-set-iv"></a><h3>gnutls_cipher_set_iv ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_cipher_set_iv (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *iv</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ivlen</code></em>);</pre>
+<p>This function will set the IV to be used for the next
+encryption block.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-set-iv.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iv</p></td>
+<td class="parameter_description"><p>the IV to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ivlen</p></td>
+<td class="parameter_description"><p>the length of the IV</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-tag"></a><h3>gnutls_cipher_tag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_tag (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *tag</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tag_size</code></em>);</pre>
+<p>This function operates on authenticated encryption with
+associated data (AEAD) ciphers and will return the
+output tag.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-tag.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag</p></td>
+<td class="parameter_description"><p>will hold the tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_size</p></td>
+<td class="parameter_description"><p>the length of the tag to return</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-tag.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-add-auth"></a><h3>gnutls_cipher_add_auth ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_cipher_add_auth (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> text_size</code></em>);</pre>
+<p>This function operates on authenticated encryption with
+associated data (AEAD) ciphers and authenticate the
+input data. This function can only be called once
+and before any encryption operations.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-add-auth.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the data to be authenticated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_size</p></td>
+<td class="parameter_description"><p>the length of the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-add-auth.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-deinit"></a><h3>gnutls_cipher_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_cipher_deinit (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> handle</code></em>);</pre>
+<p>This function will deinitialize all resources occupied by the given
+encryption context.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-cipher-hd-t" title="gnutls_cipher_hd_t"><span class="type">gnutls_cipher_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-get-block-size"></a><h3>gnutls_cipher_get_block_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_cipher_get_block_size ();</pre>
+<div class="refsect3">
+<a name="gnutls-cipher-get-block-size.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>algorithm</p></td>
+<td class="parameter_description"><p>is an encryption algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-get-block-size.returns"></a><h4>Returns</h4>
+<p> the block size of the encryption algorithm.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-aead-cipher-set-key"></a><h3>gnutls_aead_cipher_set_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_aead_cipher_set_key (<em class="parameter"><code><span class="type">gnutls_aead_cipher_hd_t</span> handle</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> *key</code></em>);</pre>
+<p>This function will set a new key without re-initializing the
+context.</p>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-set-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>handle</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_aead_cipher_hd_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>The key to be used for encryption</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-set-key.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.7.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-aead-cipher-decrypt"></a><h3>gnutls_aead_cipher_decrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_aead_cipher_decrypt (<em class="parameter"><code><span class="type">gnutls_aead_cipher_hd_t</span> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nonce_len</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *auth</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> auth_len</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tag_size</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *ctext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ctext_len</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ptext_len</code></em>);</pre>
+<p>This function will decrypt the given data using the algorithm
+specified by the context. This function must be provided the complete
+data to be decrypted, including the authentication tag. On several
+AEAD ciphers, the authentication tag is appended to the ciphertext,
+though this is not a general rule. This function will fail if
+the tag verification fails.</p>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-decrypt.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>handle</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_aead_cipher_hd_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce</p></td>
+<td class="parameter_description"><p>the nonce to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce_len</p></td>
+<td class="parameter_description"><p>The length of the nonce</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth</p></td>
+<td class="parameter_description"><p>additional data to be authenticated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_len</p></td>
+<td class="parameter_description"><p>The length of the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_size</p></td>
+<td class="parameter_description"><p>The size of the tag to use (use zero for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the data to decrypt (including the authentication tag)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the length of data to decrypt (includes tag size)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the decrypted data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the length of decrypted data (initially must hold the maximum available size)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-decrypt.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on verification failure or other error.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-aead-cipher-encrypt"></a><h3>gnutls_aead_cipher_encrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_aead_cipher_encrypt (<em class="parameter"><code><span class="type">gnutls_aead_cipher_hd_t</span> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nonce_len</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *auth</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> auth_len</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tag_size</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *ptext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ptext_len</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ctext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ctext_len</code></em>);</pre>
+<p>This function will encrypt the given data using the algorithm
+specified by the context. The output data will contain the
+authentication tag.</p>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-encrypt.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>handle</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_aead_cipher_hd_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce</p></td>
+<td class="parameter_description"><p>the nonce to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce_len</p></td>
+<td class="parameter_description"><p>The length of the nonce</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth</p></td>
+<td class="parameter_description"><p>additional data to be authenticated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_len</p></td>
+<td class="parameter_description"><p>The length of the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_size</p></td>
+<td class="parameter_description"><p>The size of the tag to use (use zero for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>The length of data to encrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the encrypted data including authentication tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the length of encrypted data (initially must hold the maximum available size, including space for tag)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-encrypt.returns"></a><h4>Returns</h4>
+<p> Zero 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-aead-cipher-encryptv"></a><h3>gnutls_aead_cipher_encryptv ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_aead_cipher_encryptv (<em class="parameter"><code><span class="type">gnutls_aead_cipher_hd_t</span> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nonce_len</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t"><span class="type">giovec_t</span></a> *auth_iov</code></em>,
+ <em class="parameter"><code><span class="type">int</span> auth_iovcnt</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tag_size</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t"><span class="type">giovec_t</span></a> *iov</code></em>,
+ <em class="parameter"><code><span class="type">int</span> iovcnt</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ctext</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ctext_len</code></em>);</pre>
+<p>This function will encrypt the provided data buffers using the algorithm
+specified by the context. The output data will contain the
+authentication tag.</p>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-encryptv.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>handle</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_aead_cipher_hd_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce</p></td>
+<td class="parameter_description"><p>the nonce to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce_len</p></td>
+<td class="parameter_description"><p>The length of the nonce</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_iov</p></td>
+<td class="parameter_description"><p>additional data to be authenticated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_iovcnt</p></td>
+<td class="parameter_description"><p>The number of buffers in <em class="parameter"><code>auth_iov</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_size</p></td>
+<td class="parameter_description"><p>The size of the tag to use (use zero for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iov</p></td>
+<td class="parameter_description"><p>the data to be encrypted</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iovcnt</p></td>
+<td class="parameter_description"><p>The number of buffers in <em class="parameter"><code>iov</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext</p></td>
+<td class="parameter_description"><p>the encrypted data including authentication tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ctext_len</p></td>
+<td class="parameter_description"><p>the length of encrypted data (initially must hold the maximum available size, including space for tag)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-encryptv.returns"></a><h4>Returns</h4>
+<p> Zero 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-aead-cipher-encryptv2"></a><h3>gnutls_aead_cipher_encryptv2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_aead_cipher_encryptv2 (<em class="parameter"><code><span class="type">gnutls_aead_cipher_hd_t</span> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nonce_len</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t"><span class="type">giovec_t</span></a> *auth_iov</code></em>,
+ <em class="parameter"><code><span class="type">int</span> auth_iovcnt</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t"><span class="type">giovec_t</span></a> *iov</code></em>,
+ <em class="parameter"><code><span class="type">int</span> iovcnt</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *tag</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *tag_size</code></em>);</pre>
+<p>This is similar to <a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-encrypt" title="gnutls_aead_cipher_encrypt ()"><code class="function">gnutls_aead_cipher_encrypt()</code></a>, but it performs
+in-place encryption on the provided data buffers.</p>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-encryptv2.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>handle</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_aead_cipher_hd_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce</p></td>
+<td class="parameter_description"><p>the nonce to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce_len</p></td>
+<td class="parameter_description"><p>The length of the nonce</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_iov</p></td>
+<td class="parameter_description"><p>additional data to be authenticated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_iovcnt</p></td>
+<td class="parameter_description"><p>The number of buffers in <em class="parameter"><code>auth_iov</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iov</p></td>
+<td class="parameter_description"><p>the data to be encrypted</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iovcnt</p></td>
+<td class="parameter_description"><p>The number of buffers in <em class="parameter"><code>iov</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag</p></td>
+<td class="parameter_description"><p>The authentication tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_size</p></td>
+<td class="parameter_description"><p>The size of the tag to use (use zero for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-encryptv2.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.6.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-aead-cipher-decryptv2"></a><h3>gnutls_aead_cipher_decryptv2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_aead_cipher_decryptv2 (<em class="parameter"><code><span class="type">gnutls_aead_cipher_hd_t</span> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nonce_len</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t"><span class="type">giovec_t</span></a> *auth_iov</code></em>,
+ <em class="parameter"><code><span class="type">int</span> auth_iovcnt</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t"><span class="type">giovec_t</span></a> *iov</code></em>,
+ <em class="parameter"><code><span class="type">int</span> iovcnt</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *tag</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tag_size</code></em>);</pre>
+<p>This is similar to <a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-decrypt" title="gnutls_aead_cipher_decrypt ()"><code class="function">gnutls_aead_cipher_decrypt()</code></a>, but it performs
+in-place encryption on the provided data buffers.</p>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-decryptv2.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>handle</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_aead_cipher_hd_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce</p></td>
+<td class="parameter_description"><p>the nonce to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce_len</p></td>
+<td class="parameter_description"><p>The length of the nonce</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_iov</p></td>
+<td class="parameter_description"><p>additional data to be authenticated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>auth_iovcnt</p></td>
+<td class="parameter_description"><p>The number of buffers in <em class="parameter"><code>auth_iov</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iov</p></td>
+<td class="parameter_description"><p>the data to decrypt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iovcnt</p></td>
+<td class="parameter_description"><p>The number of buffers in <em class="parameter"><code>iov</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag</p></td>
+<td class="parameter_description"><p>The authentication tag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tag_size</p></td>
+<td class="parameter_description"><p>The size of the tag to use (use zero for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-decryptv2.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.6.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-aead-cipher-deinit"></a><h3>gnutls_aead_cipher_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_aead_cipher_deinit (<em class="parameter"><code><span class="type">gnutls_aead_cipher_hd_t</span> handle</code></em>);</pre>
+<p>This function will deinitialize all resources occupied by the given
+authenticated-encryption context.</p>
+<div class="refsect3">
+<a name="gnutls-aead-cipher-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>handle</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_aead_cipher_hd_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-get-nonce-size"></a><h3>gnutls_mac_get_nonce_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_mac_get_nonce_size ();</pre>
+<p>Returns the size of the nonce used by the MAC in TLS.</p>
+<div class="refsect3">
+<a name="gnutls-mac-get-nonce-size.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>algorithm</p></td>
+<td class="parameter_description"><p>is an encryption algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-mac-get-nonce-size.returns"></a><h4>Returns</h4>
+<p> length (in bytes) of the given MAC nonce size, or 0.</p>
+</div>
+<p class="since">Since: 3.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-set-nonce"></a><h3>gnutls_hmac_set_nonce ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_hmac_set_nonce (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nonce_len</code></em>);</pre>
+<p>This function will set the nonce in the MAC algorithm.</p>
+<div class="refsect3">
+<a name="gnutls-hmac-set-nonce.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce</p></td>
+<td class="parameter_description"><p>the data to set as nonce</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nonce_len</p></td>
+<td class="parameter_description"><p>the length of data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.2.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac"></a><h3>gnutls_hmac ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hmac (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>This function will hash the given data using the algorithm
+specified by the context.</p>
+<div class="refsect3">
+<a name="gnutls-hmac.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the data to hash</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the length of data to hash</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hmac.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-output"></a><h3>gnutls_hmac_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_hmac_output (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>This function will output the current MAC value
+and reset the state of the MAC.</p>
+<div class="refsect3">
+<a name="gnutls-hmac-output.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>is the output value of the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-deinit"></a><h3>gnutls_hmac_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_hmac_deinit (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>This function will deinitialize all resources occupied by
+the given hmac context.</p>
+<div class="refsect3">
+<a name="gnutls-hmac-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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>is the output value of the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-get-len"></a><h3>gnutls_hmac_get_len ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_hmac_get_len ();</pre>
+<p>This function will return the length of the output data
+of the given hmac algorithm.</p>
+<div class="refsect3">
+<a name="gnutls-hmac-get-len.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>algorithm</p></td>
+<td class="parameter_description"><p>the hmac algorithm to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hmac-get-len.returns"></a><h4>Returns</h4>
+<p> The length or zero on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-copy"></a><h3>gnutls_hmac_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="returnvalue">gnutls_hmac_hd_t</span></a>
+gnutls_hmac_copy (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> handle</code></em>);</pre>
+<p>This function will create a copy of MAC context, containing all its current
+state. Copying contexts for MACs registered using
+<a class="link" href="gnutls-crypto.html#gnutls-crypto-register-mac" title="gnutls_crypto_register_mac ()"><code class="function">gnutls_crypto_register_mac()</code></a> is not supported and will always result in an
+error. In addition to that, some of the MAC implementations do not support
+this operation. Applications should check the return value and provide a
+proper fallback.</p>
+<div class="refsect3">
+<a name="gnutls-hmac-copy.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hmac-hd-t" title="gnutls_hmac_hd_t"><span class="type">gnutls_hmac_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hmac-copy.returns"></a><h4>Returns</h4>
+<p> new MAC context or NULL in case of an error.</p>
+</div>
+<p class="since">Since: 3.6.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-init"></a><h3>gnutls_hash_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hash_init (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> *dig</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algorithm</code></em>);</pre>
+<p>This function will initialize an context that can be used to
+produce a Message Digest of data. This will effectively use the
+current crypto backend in use by gnutls or the cryptographic
+accelerator in use.</p>
+<div class="refsect3">
+<a name="gnutls-hash-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>dig</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algorithm</p></td>
+<td class="parameter_description"><p>the hash algorithm to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hash-init.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash"></a><h3>gnutls_hash ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hash (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textlen</code></em>);</pre>
+<p>This function will hash the given data using the algorithm
+specified by the context.</p>
+<div class="refsect3">
+<a name="gnutls-hash.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext</p></td>
+<td class="parameter_description"><p>the data to hash</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptext_len</p></td>
+<td class="parameter_description"><p>the length of data to hash</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hash.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-output"></a><h3>gnutls_hash_output ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_hash_output (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>This function will output the current hash value
+and reset the state of the hash.</p>
+<div class="refsect3">
+<a name="gnutls-hash-output.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>is the output value of the hash</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-deinit"></a><h3>gnutls_hash_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_hash_deinit (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+<p>This function will deinitialize all resources occupied by
+the given hash context.</p>
+<div class="refsect3">
+<a name="gnutls-hash-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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>is the output value of the hash</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-get-len"></a><h3>gnutls_hash_get_len ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_hash_get_len ();</pre>
+<p>This function will return the length of the output data
+of the given hash algorithm.</p>
+<div class="refsect3">
+<a name="gnutls-hash-get-len.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>algorithm</p></td>
+<td class="parameter_description"><p>the hash algorithm to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hash-get-len.returns"></a><h4>Returns</h4>
+<p> The length or zero on error.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-copy"></a><h3>gnutls_hash_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="returnvalue">gnutls_hash_hd_t</span></a>
+gnutls_hash_copy (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> handle</code></em>);</pre>
+<p>This function will create a copy of Message Digest context, containing all
+its current state. Copying contexts for Message Digests registered using
+<a class="link" href="gnutls-crypto.html#gnutls-crypto-register-digest" title="gnutls_crypto_register_digest ()"><code class="function">gnutls_crypto_register_digest()</code></a> is not supported and will always result in
+an error. In addition to that, some of the Message Digest implementations do
+not support this operation. Applications should check the return value and
+provide a proper fallback.</p>
+<div class="refsect3">
+<a name="gnutls-hash-copy.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>handle</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-crypto.html#gnutls-hash-hd-t" title="gnutls_hash_hd_t"><span class="type">gnutls_hash_hd_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hash-copy.returns"></a><h4>Returns</h4>
+<p> new Message Digest context or NULL in case of an error.</p>
+</div>
+<p class="since">Since: 3.6.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hkdf-extract"></a><h3>gnutls_hkdf_extract ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hkdf_extract (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac</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> *key</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> *salt</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *output</code></em>);</pre>
+<p>This function will derive a fixed-size key using the HKDF-Extract
+function as defined in RFC 5869.</p>
+<div class="refsect3">
+<a name="gnutls-hkdf-extract.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>mac</p></td>
+<td class="parameter_description"><p>the mac algorithm used internally</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the initial keying material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt</p></td>
+<td class="parameter_description"><p>the optional salt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>the output value of the extract operation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hkdf-extract.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.6.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hkdf-expand"></a><h3>gnutls_hkdf_expand ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hkdf_expand (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac</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> *key</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> *info</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> length</code></em>);</pre>
+<p>This function will derive a variable length keying material from
+the pseudorandom key using the HKDF-Expand function as defined in
+RFC 5869.</p>
+<div class="refsect3">
+<a name="gnutls-hkdf-expand.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>mac</p></td>
+<td class="parameter_description"><p>the mac algorithm used internally</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the pseudorandom key created with HKDF-Extract</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p>the optional informational data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>the output value of the expand operation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>the desired length of the output key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hkdf-expand.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.6.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pbkdf2"></a><h3>gnutls_pbkdf2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pbkdf2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac</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> *key</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> *salt</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> iter_count</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *output</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> length</code></em>);</pre>
+<p>This function will derive a variable length keying material from
+a password according to PKCS #5 PBKDF2.</p>
+<div class="refsect3">
+<a name="gnutls-pbkdf2.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>mac</p></td>
+<td class="parameter_description"><p>the mac algorithm used internally</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>the initial keying material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt</p></td>
+<td class="parameter_description"><p>the salt</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iter_count</p></td>
+<td class="parameter_description"><p>the iteration count</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>the output value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>length</p></td>
+<td class="parameter_description"><p>the desired length of the output key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pbkdf2.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.6.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-rnd"></a><h3>gnutls_rnd ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_rnd (<em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t"><span class="type">gnutls_rnd_level_t</span></a> level</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 generate random data and store it to output
+buffer. The value of <em class="parameter"><code>level</code></em>
+ should be one of <a class="link" href="gnutls-crypto.html#GNUTLS-RND-NONCE:CAPS"><code class="literal">GNUTLS_RND_NONCE</code></a>,
+<a class="link" href="gnutls-crypto.html#GNUTLS-RND-RANDOM:CAPS"><code class="literal">GNUTLS_RND_RANDOM</code></a> and <a class="link" href="gnutls-crypto.html#GNUTLS-RND-KEY:CAPS"><code class="literal">GNUTLS_RND_KEY</code></a>. See the manual and
+<a class="link" href="gnutls-crypto.html#gnutls-rnd-level-t" title="enum gnutls_rnd_level_t"><code class="literal">gnutls_rnd_level_t</code></a> for detailed information.</p>
+<p>This function is thread-safe and also fork-safe.</p>
+<div class="refsect3">
+<a name="gnutls-rnd.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>level</p></td>
+<td class="parameter_description"><p>a security level</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>place to store random bytes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>len</p></td>
+<td class="parameter_description"><p>The requested size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-rnd.returns"></a><h4>Returns</h4>
+<p> Zero 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-rnd-refresh"></a><h3>gnutls_rnd_refresh ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_rnd_refresh (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>This function refreshes the random generator state.
+That is the current precise time, CPU usage, and
+other values are input into its state.</p>
+<p>On a slower rate input from /dev/urandom is mixed too.</p>
+<p class="since">Since: 3.1.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-init-func"></a><h3>gnutls_cipher_init_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_init_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> Param1</code></em>,
+ <em class="parameter"><code><span class="type">void</span> **ctx</code></em>,
+ <em class="parameter"><code><span class="type">int</span> enc</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-setkey-func"></a><h3>gnutls_cipher_setkey_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_setkey_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *key</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> keysize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-setiv-func"></a><h3>gnutls_cipher_setiv_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_setiv_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *iv</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ivsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-getiv-func"></a><h3>gnutls_cipher_getiv_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_getiv_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *iv</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> ivsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-encrypt-func"></a><h3>gnutls_cipher_encrypt_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_encrypt_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *plain</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> plainsize</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *encr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> encrsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-decrypt-func"></a><h3>gnutls_cipher_decrypt_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_decrypt_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *encr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> encrsize</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *plain</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> plainsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-auth-func"></a><h3>gnutls_cipher_auth_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_auth_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</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> datasize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-tag-func"></a><h3>gnutls_cipher_tag_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_tag_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *tag</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tagsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-aead-encrypt-func"></a><h3>gnutls_cipher_aead_encrypt_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_aead_encrypt_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> noncesize</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *auth</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> authsize</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tag_size</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *plain</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> plainsize</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *encr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> encrsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-aead-decrypt-func"></a><h3>gnutls_cipher_aead_decrypt_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_aead_decrypt_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> noncesize</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *auth</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> authsize</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> tag_size</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *encr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> encrsize</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *plain</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> plainsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-deinit-func"></a><h3>gnutls_cipher_deinit_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_cipher_deinit_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-crypto-register-cipher"></a><h3>gnutls_crypto_register_cipher ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_crypto_register_cipher (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>,
+ <em class="parameter"><code><span class="type">int</span> priority</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-init-func" title="gnutls_cipher_init_func ()"><span class="type">gnutls_cipher_init_func</span></a> init</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-setkey-func" title="gnutls_cipher_setkey_func ()"><span class="type">gnutls_cipher_setkey_func</span></a> setkey</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-setiv-func" title="gnutls_cipher_setiv_func ()"><span class="type">gnutls_cipher_setiv_func</span></a> setiv</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt-func" title="gnutls_cipher_encrypt_func ()"><span class="type">gnutls_cipher_encrypt_func</span></a> encrypt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt-func" title="gnutls_cipher_decrypt_func ()"><span class="type">gnutls_cipher_decrypt_func</span></a> decrypt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-deinit-func" title="gnutls_cipher_deinit_func ()"><span class="type">gnutls_cipher_deinit_func</span></a> deinit</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_crypto_register_cipher</code> is deprecated and should not be used in newly-written code.</p>
+<p>since 3.7.0 it is no longer possible to override cipher implementation</p>
+</div>
+<p>This function will register a cipher algorithm to be used by
+gnutls. Any algorithm registered will override the included
+algorithms and by convention kernel implemented algorithms have
+priority of 90 and CPU-assisted of 80. The algorithm with the lowest priority will be
+used by gnutls.</p>
+<p>In the case the registered init or setkey functions return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-NEED-FALLBACK:CAPS" title="GNUTLS_E_NEED_FALLBACK"><code class="literal">GNUTLS_E_NEED_FALLBACK</code></a>,
+GnuTLS will attempt to use the next in priority registered cipher.</p>
+<p>The functions which are marked as non-AEAD they are not required when
+registering a cipher to be used with the new AEAD API introduced in
+GnuTLS 3.4.0. Internally GnuTLS uses the new AEAD API.</p>
+<div class="refsect3">
+<a name="gnutls-crypto-register-cipher.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>algorithm</p></td>
+<td class="parameter_description"><p>is the gnutls algorithm identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priority</p></td>
+<td class="parameter_description"><p>is the priority of the algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>init</p></td>
+<td class="parameter_description"><p>A function which initializes the cipher</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>setkey</p></td>
+<td class="parameter_description"><p>A function which sets the key of the cipher</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>setiv</p></td>
+<td class="parameter_description"><p>A function which sets the nonce/IV of the cipher (non-AEAD)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>encrypt</p></td>
+<td class="parameter_description"><p>A function which performs encryption (non-AEAD)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>decrypt</p></td>
+<td class="parameter_description"><p>A function which performs decryption (non-AEAD)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit</p></td>
+<td class="parameter_description"><p>A function which deinitializes the cipher</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-crypto-register-cipher.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-crypto-register-aead-cipher"></a><h3>gnutls_crypto_register_aead_cipher ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_crypto_register_aead_cipher (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> algorithm</code></em>,
+ <em class="parameter"><code><span class="type">int</span> priority</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-init-func" title="gnutls_cipher_init_func ()"><span class="type">gnutls_cipher_init_func</span></a> init</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-setkey-func" title="gnutls_cipher_setkey_func ()"><span class="type">gnutls_cipher_setkey_func</span></a> setkey</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-aead-encrypt-func" title="gnutls_cipher_aead_encrypt_func ()"><span class="type">gnutls_cipher_aead_encrypt_func</span></a> aead_encrypt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-aead-decrypt-func" title="gnutls_cipher_aead_decrypt_func ()"><span class="type">gnutls_cipher_aead_decrypt_func</span></a> aead_decrypt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-cipher-deinit-func" title="gnutls_cipher_deinit_func ()"><span class="type">gnutls_cipher_deinit_func</span></a> deinit</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_crypto_register_aead_cipher</code> is deprecated and should not be used in newly-written code.</p>
+<p>since 3.7.0 it is no longer possible to override cipher implementation</p>
+</div>
+<p>This function will register a cipher algorithm to be used by
+gnutls. Any algorithm registered will override the included
+algorithms and by convention kernel implemented algorithms have
+priority of 90 and CPU-assisted of 80. The algorithm with the lowest priority will be
+used by gnutls.</p>
+<p>In the case the registered init or setkey functions return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-NEED-FALLBACK:CAPS" title="GNUTLS_E_NEED_FALLBACK"><code class="literal">GNUTLS_E_NEED_FALLBACK</code></a>,
+GnuTLS will attempt to use the next in priority registered cipher.</p>
+<p>The functions registered will be used with the new AEAD API introduced in
+GnuTLS 3.4.0. Internally GnuTLS uses the new AEAD API.</p>
+<div class="refsect3">
+<a name="gnutls-crypto-register-aead-cipher.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>algorithm</p></td>
+<td class="parameter_description"><p>is the gnutls AEAD cipher identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priority</p></td>
+<td class="parameter_description"><p>is the priority of the algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>init</p></td>
+<td class="parameter_description"><p>A function which initializes the cipher</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>setkey</p></td>
+<td class="parameter_description"><p>A function which sets the key of the cipher</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>aead_encrypt</p></td>
+<td class="parameter_description"><p>Perform the AEAD encryption</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>aead_decrypt</p></td>
+<td class="parameter_description"><p>Perform the AEAD decryption</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit</p></td>
+<td class="parameter_description"><p>A function which deinitializes the cipher</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-crypto-register-aead-cipher.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-init-func"></a><h3>gnutls_mac_init_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_mac_init_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> Param1</code></em>,
+ <em class="parameter"><code><span class="type">void</span> **ctx</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-setkey-func"></a><h3>gnutls_mac_setkey_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_mac_setkey_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *key</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> keysize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-setnonce-func"></a><h3>gnutls_mac_setnonce_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_mac_setnonce_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> noncesize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-hash-func"></a><h3>gnutls_mac_hash_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_mac_hash_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-output-func"></a><h3>gnutls_mac_output_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_mac_output_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *src_ctx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> digestsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-deinit-func"></a><h3>gnutls_mac_deinit_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_mac_deinit_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-fast-func"></a><h3>gnutls_mac_fast_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_mac_fast_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nonce</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nonce_size</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *key</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> keysize</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textsize</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-copy-func"></a><h3>gnutls_mac_copy_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+<span class="c_punctuation">(</span>*gnutls_mac_copy_func<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">void</span> *ctx</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-crypto-register-mac"></a><h3>gnutls_crypto_register_mac ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_crypto_register_mac (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac</code></em>,
+ <em class="parameter"><code><span class="type">int</span> priority</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-mac-init-func" title="gnutls_mac_init_func ()"><span class="type">gnutls_mac_init_func</span></a> init</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-mac-setkey-func" title="gnutls_mac_setkey_func ()"><span class="type">gnutls_mac_setkey_func</span></a> setkey</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-mac-setnonce-func" title="gnutls_mac_setnonce_func ()"><span class="type">gnutls_mac_setnonce_func</span></a> setnonce</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-mac-hash-func" title="gnutls_mac_hash_func ()"><span class="type">gnutls_mac_hash_func</span></a> hash</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-mac-output-func" title="gnutls_mac_output_func ()"><span class="type">gnutls_mac_output_func</span></a> output</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-mac-deinit-func" title="gnutls_mac_deinit_func ()"><span class="type">gnutls_mac_deinit_func</span></a> deinit</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-mac-fast-func" title="gnutls_mac_fast_func ()"><span class="type">gnutls_mac_fast_func</span></a> hash_fast</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_crypto_register_mac</code> is deprecated and should not be used in newly-written code.</p>
+<p>since 3.7.0 it is no longer possible to override cipher implementation</p>
+</div>
+<p>This function will register a MAC algorithm to be used by gnutls.
+Any algorithm registered will override the included algorithms and
+by convention kernel implemented algorithms have priority of 90
+ and CPU-assisted of 80.
+The algorithm with the lowest priority will be used by gnutls.</p>
+<div class="refsect3">
+<a name="gnutls-crypto-register-mac.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>algorithm</p></td>
+<td class="parameter_description"><p>is the gnutls MAC identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priority</p></td>
+<td class="parameter_description"><p>is the priority of the algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>init</p></td>
+<td class="parameter_description"><p>A function which initializes the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>setkey</p></td>
+<td class="parameter_description"><p>A function which sets the key of the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>setnonce</p></td>
+<td class="parameter_description"><p>A function which sets the nonce for the mac (may be <code class="literal">NULL</code> for common MAC algorithms)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>Perform the hash operation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>Provide the output of the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit</p></td>
+<td class="parameter_description"><p>A function which deinitializes the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash_fast</p></td>
+<td class="parameter_description"><p>Perform the MAC operation in one go</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-crypto-register-mac.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-init-func"></a><h3>gnutls_digest_init_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_digest_init_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> Param1</code></em>,
+ <em class="parameter"><code><span class="type">void</span> **ctx</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-hash-func"></a><h3>gnutls_digest_hash_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_digest_hash_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-output-func"></a><h3>gnutls_digest_output_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_digest_output_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *src_ctx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> digestsize</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-deinit-func"></a><h3>gnutls_digest_deinit_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_digest_deinit_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-fast-func"></a><h3>gnutls_digest_fast_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_digest_fast_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *text</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> textsize</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *digest</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-copy-func"></a><h3>gnutls_digest_copy_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+<span class="c_punctuation">(</span>*gnutls_digest_copy_func<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">void</span> *ctx</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-crypto-register-digest"></a><h3>gnutls_crypto_register_digest ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_crypto_register_digest (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> digest</code></em>,
+ <em class="parameter"><code><span class="type">int</span> priority</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-digest-init-func" title="gnutls_digest_init_func ()"><span class="type">gnutls_digest_init_func</span></a> init</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-digest-hash-func" title="gnutls_digest_hash_func ()"><span class="type">gnutls_digest_hash_func</span></a> hash</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-digest-output-func" title="gnutls_digest_output_func ()"><span class="type">gnutls_digest_output_func</span></a> output</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-digest-deinit-func" title="gnutls_digest_deinit_func ()"><span class="type">gnutls_digest_deinit_func</span></a> deinit</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-crypto.html#gnutls-digest-fast-func" title="gnutls_digest_fast_func ()"><span class="type">gnutls_digest_fast_func</span></a> hash_fast</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_crypto_register_digest</code> is deprecated and should not be used in newly-written code.</p>
+<p>since 3.7.0 it is no longer possible to override cipher implementation</p>
+</div>
+<p>This function will register a digest algorithm to be used by gnutls.
+Any algorithm registered will override the included algorithms and
+by convention kernel implemented algorithms have priority of 90
+ and CPU-assisted of 80.
+The algorithm with the lowest priority will be used by gnutls.</p>
+<div class="refsect3">
+<a name="gnutls-crypto-register-digest.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>algorithm</p></td>
+<td class="parameter_description"><p>is the gnutls digest identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priority</p></td>
+<td class="parameter_description"><p>is the priority of the algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>init</p></td>
+<td class="parameter_description"><p>A function which initializes the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>Perform the hash operation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>Provide the output of the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit</p></td>
+<td class="parameter_description"><p>A function which deinitializes the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash_fast</p></td>
+<td class="parameter_description"><p>Perform the digest operation in one go</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-crypto-register-digest.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-encode-ber-digest-info"></a><h3>gnutls_encode_ber_digest_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_encode_ber_digest_info (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash</code></em>,
+ <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> *digest</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> *output</code></em>);</pre>
+<p>This function will encode the provided digest data, and its
+algorithm into an RSA PKCS#1 1.5 DigestInfo structure.</p>
+<div class="refsect3">
+<a name="gnutls-encode-ber-digest-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>info</p></td>
+<td class="parameter_description"><p>an RSA BER encoded DigestInfo structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>the hash algorithm that was used to get the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>must contain the digest data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>will contain the allocated DigestInfo BER encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-encode-ber-digest-info.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-decode-ber-digest-info"></a><h3>gnutls_decode_ber_digest_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_decode_ber_digest_info (<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> *info</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *hash</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *digest</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *digest_size</code></em>);</pre>
+<p>This function will parse an RSA PKCS#1 1.5 DigestInfo structure
+and report the hash algorithm used as well as the digest data.</p>
+<div class="refsect3">
+<a name="gnutls-decode-ber-digest-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>info</p></td>
+<td class="parameter_description"><p>an RSA BER encoded DigestInfo structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>will contain the hash algorithm of the structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>will contain the hash output of the structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest_size</p></td>
+<td class="parameter_description"><p>will contain the hash size of the structure; initially must hold the maximum size of <em class="parameter"><code>digest</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-decode-ber-digest-info.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-decode-rs-value"></a><h3>gnutls_decode_rs_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_decode_rs_value (<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> *sig_value</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> *r</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> *s</code></em>);</pre>
+<p>This function will decode the provided <em class="parameter"><code>sig_value</code></em>
+,
+into <em class="parameter"><code>r</code></em>
+ and <em class="parameter"><code>s</code></em>
+ elements. The Dss-Sig-Value is used for DSA and ECDSA
+signatures.</p>
+<p>The output values may be padded with a zero byte to prevent them
+from being interpreted as negative values. The value
+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-decode-rs-value.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>sig_value</p></td>
+<td class="parameter_description"><p>holds a Dss-Sig-Value DER or BER encoded structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>r</p></td>
+<td class="parameter_description"><p>will contain the r value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>s</p></td>
+<td class="parameter_description"><p>will contain the s value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-decode-rs-value.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-encode-rs-value"></a><h3>gnutls_encode_rs_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_encode_rs_value (<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> *sig_value</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> *r</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> *s</code></em>);</pre>
+<p>This function will encode the provided r and s values,
+into a Dss-Sig-Value structure, used for DSA and ECDSA
+signatures.</p>
+<p>The output value 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-encode-rs-value.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>sig_value</p></td>
+<td class="parameter_description"><p>will hold a Dss-Sig-Value DER encoded structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>r</p></td>
+<td class="parameter_description"><p>must contain the r value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>s</p></td>
+<td class="parameter_description"><p>must contain the s value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-encode-rs-value.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-encode-gost-rs-value"></a><h3>gnutls_encode_gost_rs_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_encode_gost_rs_value (<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> *sig_value</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> *r</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> *s</code></em>);</pre>
+<p>This function will encode the provided r and s values, into binary
+representation according to RFC 4491 section 2.2.2, used for GOST R
+34.10-2001 (and thus also for GOST R 34.10-2012) signatures.</p>
+<p>The output value 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-encode-gost-rs-value.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>sig_value</p></td>
+<td class="parameter_description"><p>will hold a GOST signature according to RFC 4491 section 2.2.2</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>r</p></td>
+<td class="parameter_description"><p>must contain the r value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>s</p></td>
+<td class="parameter_description"><p>must contain the s value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-encode-gost-rs-value.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-decode-gost-rs-value"></a><h3>gnutls_decode_gost_rs_value ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_decode_gost_rs_value (<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> *sig_value</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> *r</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> *s</code></em>);</pre>
+<p>This function will decode the provided <em class="parameter"><code>sig_value</code></em>
+, into <em class="parameter"><code>r</code></em>
+ and <em class="parameter"><code>s</code></em>
+ elements.
+See RFC 4491 section 2.2.2 for the format of signature value.</p>
+<p>The output values may be padded with a zero byte to prevent them
+from being interpreted as negative values. The value
+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-decode-gost-rs-value.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>sig_value</p></td>
+<td class="parameter_description"><p>will holds a GOST signature according to RFC 4491 section 2.2.2</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>r</p></td>
+<td class="parameter_description"><p>will contain the r value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>s</p></td>
+<td class="parameter_description"><p>will contain the s value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-decode-gost-rs-value.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gnutls-crypto.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="gnutls-cipher-hd-t"></a><h3>gnutls_cipher_hd_t</h3>
+<pre class="programlisting">typedef struct api_cipher_hd_st *gnutls_cipher_hd_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-flags-t"></a><h3>enum gnutls_cipher_flags_t</h3>
+<p>Enumeration of flags to control block cipher padding, used by
+<a class="link" href="gnutls-crypto.html#gnutls-cipher-encrypt3" title="gnutls_cipher_encrypt3 ()"><code class="function">gnutls_cipher_encrypt3()</code></a> and <a class="link" href="gnutls-crypto.html#gnutls-cipher-decrypt3" title="gnutls_cipher_decrypt3 ()"><code class="function">gnutls_cipher_decrypt3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-flags-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-CIPHER-PADDING-PKCS7:CAPS"></a>GNUTLS_CIPHER_PADDING_PKCS7</p></td>
+<td class="enum_member_description">
+<p>Flag to indicate PKCS#7 padding</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hash-hd-t"></a><h3>gnutls_hash_hd_t</h3>
+<pre class="programlisting">typedef struct hash_hd_st *gnutls_hash_hd_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hmac-hd-t"></a><h3>gnutls_hmac_hd_t</h3>
+<pre class="programlisting">typedef struct hmac_hd_st *gnutls_hmac_hd_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-rnd-level-t"></a><h3>enum gnutls_rnd_level_t</h3>
+<p>Enumeration of random quality levels.</p>
+<div class="refsect3">
+<a name="gnutls-rnd-level-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-RND-NONCE:CAPS"></a>GNUTLS_RND_NONCE</p></td>
+<td class="enum_member_description">
+<p>Non-predictable random number. Fatal in parts
+of session if broken, i.e., vulnerable to statistical analysis.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-RND-RANDOM:CAPS"></a>GNUTLS_RND_RANDOM</p></td>
+<td class="enum_member_description">
+<p>Pseudo-random cryptographic random number.
+Fatal in session if broken. Example use: temporal keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-RND-KEY:CAPS"></a>GNUTLS_RND_KEY</p></td>
+<td class="enum_member_description">
+<p>Fatal in many sessions if broken. Example use:
+Long-term keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-dtls.html b/doc/reference/html/gnutls-dtls.html
new file mode 100644
index 0000000..2b0073a
--- /dev/null
+++ b/doc/reference/html/gnutls-dtls.html
@@ -0,0 +1,606 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>dtls: 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-ocsp.html" title="ocsp">
+<link rel="next" href="gnutls-tpm.html" title="tpm">
+<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-dtls.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-ocsp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-tpm.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-dtls"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-dtls.top_of_page"></a>dtls</span></h2>
+<p>dtls</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-dtls.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">void</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-set-timeouts" title="gnutls_dtls_set_timeouts ()">gnutls_dtls_set_timeouts</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-get-mtu" title="gnutls_dtls_get_mtu ()">gnutls_dtls_get_mtu</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-get-data-mtu" title="gnutls_dtls_get_data_mtu ()">gnutls_dtls_get_data_mtu</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-dtls.html#gnutls-dtls-set-mtu" title="gnutls_dtls_set_mtu ()">gnutls_dtls_set_mtu</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-dtls.html#gnutls-dtls-set-data-mtu" title="gnutls_dtls_set_data_mtu ()">gnutls_dtls_set_data_mtu</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-get-timeout" title="gnutls_dtls_get_timeout ()">gnutls_dtls_get_timeout</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-dtls.html#gnutls-dtls-cookie-send" title="gnutls_dtls_cookie_send ()">gnutls_dtls_cookie_send</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-dtls.html#gnutls-dtls-cookie-verify" title="gnutls_dtls_cookie_verify ()">gnutls_dtls_cookie_verify</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-dtls.html#gnutls-dtls-prestate-set" title="gnutls_dtls_prestate_set ()">gnutls_dtls_prestate_set</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-dtls.html#gnutls-record-get-discarded" title="gnutls_record_get_discarded ()">gnutls_record_get_discarded</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-dtls.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-dtls.html#GNUTLS-COOKIE-KEY-SIZE:CAPS" title="GNUTLS_COOKIE_KEY_SIZE">GNUTLS_COOKIE_KEY_SIZE</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-st" title="gnutls_dtls_prestate_st">gnutls_dtls_prestate_st</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-dtls.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-dtls.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-dtls-set-timeouts"></a><h3>gnutls_dtls_set_timeouts ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_dtls_set_timeouts (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> retrans_timeout</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> total_timeout</code></em>);</pre>
+<p>This function will set the timeouts required for the DTLS handshake
+protocol. The retransmission timeout is the time after which a
+message from the peer is not received, the previous messages will
+be retransmitted. The total timeout is the time after which the
+handshake will be aborted with <a class="link" href="gnutls-gnutls.html#GNUTLS-E-TIMEDOUT:CAPS" title="GNUTLS_E_TIMEDOUT"><code class="literal">GNUTLS_E_TIMEDOUT</code></a>.</p>
+<p>The DTLS protocol recommends the values of 1 sec and 60 seconds
+respectively, and these are the default values.</p>
+<p>To disable retransmissions set a <em class="parameter"><code>retrans_timeout</code></em>
+ larger than the <em class="parameter"><code>total_timeout</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-set-timeouts.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>retrans_timeout</p></td>
+<td class="parameter_description"><p>The time at which a retransmission will occur in milliseconds</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>total_timeout</p></td>
+<td class="parameter_description"><p>The time at which the connection will be aborted, in milliseconds.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-get-mtu"></a><h3>gnutls_dtls_get_mtu ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_dtls_get_mtu (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the MTU size as set with
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-set-mtu" title="gnutls_dtls_set_mtu ()"><code class="function">gnutls_dtls_set_mtu()</code></a>. This is not the actual MTU
+of data you can transmit. Use <a class="link" href="gnutls-dtls.html#gnutls-dtls-get-data-mtu" title="gnutls_dtls_get_data_mtu ()"><code class="function">gnutls_dtls_get_data_mtu()</code></a>
+for that reason.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-get-mtu.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dtls-get-mtu.returns"></a><h4>Returns</h4>
+<p> the set maximum transfer unit.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-get-data-mtu"></a><h3>gnutls_dtls_get_data_mtu ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_dtls_get_data_mtu (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the actual maximum transfer unit for
+application data. I.e. DTLS headers are subtracted from the
+actual MTU which is set using <a class="link" href="gnutls-dtls.html#gnutls-dtls-set-mtu" title="gnutls_dtls_set_mtu ()"><code class="function">gnutls_dtls_set_mtu()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-get-data-mtu.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dtls-get-data-mtu.returns"></a><h4>Returns</h4>
+<p> the maximum allowed transfer unit.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-set-mtu"></a><h3>gnutls_dtls_set_mtu ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_dtls_set_mtu (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> mtu</code></em>);</pre>
+<p>This function will set the maximum transfer unit of the transport
+that DTLS packets are sent over. Note that this should exclude
+the IP (or IPv6) and UDP headers. So for DTLS over IPv6 on an
+Ethernet device with MTU 1500, the DTLS MTU set with this function
+would be 1500 - 40 (IPV6 header) - 8 (UDP header) = 1452.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-set-mtu.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mtu</p></td>
+<td class="parameter_description"><p>The maximum transfer unit of the transport</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-set-data-mtu"></a><h3>gnutls_dtls_set_data_mtu ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dtls_set_data_mtu (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> mtu</code></em>);</pre>
+<p>This function will set the maximum size of the *unencrypted* records
+which will be sent over a DTLS session. It is equivalent to calculating
+the DTLS packet overhead with the current encryption parameters, and
+calling <a class="link" href="gnutls-dtls.html#gnutls-dtls-set-mtu" title="gnutls_dtls_set_mtu ()"><code class="function">gnutls_dtls_set_mtu()</code></a> with that value. In particular, this means
+that you may need to call this function again after any negotiation or
+renegotiation, in order to ensure that the MTU is still sufficient to
+account for the new protocol overhead.</p>
+<p>In most cases you only need to call <a class="link" href="gnutls-dtls.html#gnutls-dtls-set-mtu" title="gnutls_dtls_set_mtu ()"><code class="function">gnutls_dtls_set_mtu()</code></a> with
+the maximum MTU of your transport layer.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-set-data-mtu.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mtu</p></td>
+<td class="parameter_description"><p>The maximum unencrypted transfer unit of the session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dtls-set-data-mtu.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.</p>
+</div>
+<p class="since">Since: 3.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-get-timeout"></a><h3>gnutls_dtls_get_timeout ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_dtls_get_timeout (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the milliseconds remaining
+for a retransmission of the previously sent handshake
+message. This function is useful when DTLS is used in
+non-blocking mode, to estimate when to call <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a>
+if no packets have been received.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-get-timeout.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dtls-get-timeout.returns"></a><h4>Returns</h4>
+<p> the remaining time in milliseconds.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-cookie-send"></a><h3>gnutls_dtls_cookie_send ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dtls_cookie_send (<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><span class="type">void</span> *client_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> client_data_size</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-st" title="gnutls_dtls_prestate_st"><span class="type">gnutls_dtls_prestate_st</span></a> *prestate</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> ptr</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()"><span class="type">gnutls_push_func</span></a> push_func</code></em>);</pre>
+<p>This function can be used to prevent denial of service
+attacks to a DTLS server by requiring the client to
+reply using a cookie sent by this function. That way
+it can be ensured that a client we allocated resources
+for (i.e. <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a>) is the one that the
+original incoming packet was originated from.</p>
+<p>This function must be called at the first incoming packet,
+prior to allocating any resources and must be succeeded
+by <a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-verify" title="gnutls_dtls_cookie_verify ()"><code class="function">gnutls_dtls_cookie_verify()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-cookie-send.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>is a random key to be used at cookie generation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>client_data</p></td>
+<td class="parameter_description"><p>contains data identifying the client (i.e. address)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>client_data_size</p></td>
+<td class="parameter_description"><p>The size of client's data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prestate</p></td>
+<td class="parameter_description"><p>The previous cookie returned by <a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-verify" title="gnutls_dtls_cookie_verify ()"><code class="function">gnutls_dtls_cookie_verify()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptr</p></td>
+<td class="parameter_description"><p>A transport pointer to be used by <em class="parameter"><code>push_func</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>push_func</p></td>
+<td class="parameter_description"><p>A function that will be used to reply</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dtls-cookie-send.returns"></a><h4>Returns</h4>
+<p> the number of bytes sent, or a negative error code. </p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-cookie-verify"></a><h3>gnutls_dtls_cookie_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dtls_cookie_verify (<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><span class="type">void</span> *client_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> client_data_size</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *_msg</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> msg_size</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-st" title="gnutls_dtls_prestate_st"><span class="type">gnutls_dtls_prestate_st</span></a> *prestate</code></em>);</pre>
+<p>This function will verify the received message for
+a valid cookie. If a valid cookie is returned then
+it should be associated with the session using
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-set" title="gnutls_dtls_prestate_set ()"><code class="function">gnutls_dtls_prestate_set()</code></a>;</p>
+<p>This function must be called after <a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-send" title="gnutls_dtls_cookie_send ()"><code class="function">gnutls_dtls_cookie_send()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-cookie-verify.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>is a random key to be used at cookie generation</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>client_data</p></td>
+<td class="parameter_description"><p>contains data identifying the client (i.e. address)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>client_data_size</p></td>
+<td class="parameter_description"><p>The size of client's data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>_msg</p></td>
+<td class="parameter_description"><p>An incoming message that initiates a connection.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>msg_size</p></td>
+<td class="parameter_description"><p>The size of the message.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prestate</p></td>
+<td class="parameter_description"><p>The cookie of this client.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dtls-cookie-verify.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. </p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-prestate-set"></a><h3>gnutls_dtls_prestate_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_dtls_prestate_set (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-st" title="gnutls_dtls_prestate_st"><span class="type">gnutls_dtls_prestate_st</span></a> *prestate</code></em>);</pre>
+<p>This function will associate the prestate acquired by
+the cookie authentication with the client, with the newly
+established session.</p>
+<p>This functions must be called after a successful <a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-verify" title="gnutls_dtls_cookie_verify ()"><code class="function">gnutls_dtls_cookie_verify()</code></a>
+and should be succeeded by the actual DTLS handshake using <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-prestate-set.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>session</p></td>
+<td class="parameter_description"><p>a new session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prestate</p></td>
+<td class="parameter_description"><p>contains the client's prestate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-get-discarded"></a><h3>gnutls_record_get_discarded ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_record_get_discarded (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Returns the number of discarded packets in a
+DTLS connection.</p>
+<div class="refsect3">
+<a name="gnutls-record-get-discarded.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-get-discarded.returns"></a><h4>Returns</h4>
+<p> The number of discarded packets.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gnutls-dtls.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GNUTLS-COOKIE-KEY-SIZE:CAPS"></a><h3>GNUTLS_COOKIE_KEY_SIZE</h3>
+<pre class="programlisting">#define GNUTLS_COOKIE_KEY_SIZE 16
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dtls-prestate-st"></a><h3>gnutls_dtls_prestate_st</h3>
+<pre class="programlisting">typedef struct {
+ unsigned int record_seq;
+ unsigned int hsk_read_seq;
+ unsigned int hsk_write_seq;
+} gnutls_dtls_prestate_st;
+</pre>
+<p>DTLS cookie prestate struct. This is usually never modified by
+the application, it is used to carry the cookie data between
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-send" title="gnutls_dtls_cookie_send ()"><code class="function">gnutls_dtls_cookie_send()</code></a>, <a class="link" href="gnutls-dtls.html#gnutls-dtls-cookie-verify" title="gnutls_dtls_cookie_verify ()"><code class="function">gnutls_dtls_cookie_verify()</code></a> and
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-prestate-set" title="gnutls_dtls_prestate_set ()"><code class="function">gnutls_dtls_prestate_set()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-dtls-prestate-st.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="struct_member_name"><p>unsigned <span class="type">int</span> <em class="structfield"><code><a name="gnutls-dtls-prestate-st.record-seq"></a>record_seq</code></em>;</p></td>
+<td class="struct_member_description"><p>record sequence number</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p>unsigned <span class="type">int</span> <em class="structfield"><code><a name="gnutls-dtls-prestate-st.hsk-read-seq"></a>hsk_read_seq</code></em>;</p></td>
+<td class="struct_member_description"><p>handshake read sequence number</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p>unsigned <span class="type">int</span> <em class="structfield"><code><a name="gnutls-dtls-prestate-st.hsk-write-seq"></a>hsk_write_seq</code></em>;</p></td>
+<td class="struct_member_description"><p>handshake write sequence number</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-gnutls.html b/doc/reference/html/gnutls-gnutls.html
new file mode 100644
index 0000000..eed7057
--- /dev/null
+++ b/doc/reference/html/gnutls-gnutls.html
@@ -0,0 +1,27114 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gnutls: 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="intro.html" title="GnuTLS API Reference Manual">
+<link rel="next" href="gnutls-abstract.html" title="abstract">
+<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-gnutls.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="intro.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-abstract.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-gnutls"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-gnutls.top_of_page"></a>gnutls</span></h2>
+<p>gnutls</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-gnutls.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">const <span class="returnvalue">char</span> *
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-get-name" title="gnutls_pk_algorithm_get_name ()">gnutls_pk_algorithm_get_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CURVE-TO-BITS:CAPS" title="GNUTLS_CURVE_TO_BITS()">GNUTLS_CURVE_TO_BITS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#GNUTLS-BITS-TO-CURVE:CAPS" title="GNUTLS_BITS_TO_CURVE()">GNUTLS_BITS_TO_CURVE</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#GNUTLS-BITS-ARE-CURVE:CAPS" title="GNUTLS_BITS_ARE_CURVE()">GNUTLS_BITS_ARE_CURVE</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-gnutls.html#gnutls-init" title="gnutls_init ()">gnutls_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-gnutls.html#gnutls-deinit" title="gnutls_deinit ()">gnutls_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-gnutls.html#gnutls-bye" title="gnutls_bye ()">gnutls_bye</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-gnutls.html#gnutls-handshake" title="gnutls_handshake ()">gnutls_handshake</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-gnutls.html#gnutls-reauth" title="gnutls_reauth ()">gnutls_reauth</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-gnutls.html#gnutls-handshake-set-timeout" title="gnutls_handshake_set_timeout ()">gnutls_handshake_set_timeout</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-gnutls.html#gnutls-rehandshake" title="gnutls_rehandshake ()">gnutls_rehandshake</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-gnutls.html#gnutls-session-key-update" title="gnutls_session_key_update ()">gnutls_session_key_update</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="returnvalue">gnutls_alert_description_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-get" title="gnutls_alert_get ()">gnutls_alert_get</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-gnutls.html#gnutls-alert-send" title="gnutls_alert_send ()">gnutls_alert_send</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-gnutls.html#gnutls-alert-send-appropriate" title="gnutls_alert_send_appropriate ()">gnutls_alert_send_appropriate</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-gnutls.html#gnutls-alert-get-name" title="gnutls_alert_get_name ()">gnutls_alert_get_name</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-gnutls.html#gnutls-alert-get-strname" title="gnutls_alert_get_strname ()">gnutls_alert_get_strname</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-bits-to-sec-param" title="gnutls_pk_bits_to_sec_param ()">gnutls_pk_bits_to_sec_param</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-gnutls.html#gnutls-sec-param-get-name" title="gnutls_sec_param_get_name ()">gnutls_sec_param_get_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()">gnutls_sec_param_to_pk_bits</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-symmetric-bits" title="gnutls_sec_param_to_symmetric_bits ()">gnutls_sec_param_to_symmetric_bits</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-group-t" title="enum gnutls_group_t"><span class="returnvalue">gnutls_group_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-group-get" title="gnutls_group_get ()">gnutls_group_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-get" title="gnutls_cipher_get ()">gnutls_cipher_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-early-cipher-get" title="gnutls_early_cipher_get ()">gnutls_early_cipher_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-get" title="gnutls_kx_get ()">gnutls_kx_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-get" title="gnutls_mac_get ()">gnutls_mac_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="returnvalue">gnutls_digest_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-prf-hash-get" title="gnutls_prf_hash_get ()">gnutls_prf_hash_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="returnvalue">gnutls_digest_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-early-prf-hash-get" title="gnutls_early_prf_hash_get ()">gnutls_early_prf_hash_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="returnvalue">gnutls_certificate_type_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get" title="gnutls_certificate_type_get ()">gnutls_certificate_type_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="returnvalue">gnutls_certificate_type_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get2" title="gnutls_certificate_type_get2 ()">gnutls_certificate_type_get2</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-gnutls.html#gnutls-sign-algorithm-get" title="gnutls_sign_algorithm_get ()">gnutls_sign_algorithm_get</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-gnutls.html#gnutls-sign-algorithm-get-client" title="gnutls_sign_algorithm_get_client ()">gnutls_sign_algorithm_get_client</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-gnutls.html#gnutls-sign-algorithm-get-requested" title="gnutls_sign_algorithm_get_requested ()">gnutls_sign_algorithm_get_requested</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-gnutls.html#gnutls-cipher-get-name" title="gnutls_cipher_get_name ()">gnutls_cipher_get_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="returnvalue">gnutls_digest_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-oid-to-digest" title="gnutls_oid_to_digest ()">gnutls_oid_to_digest</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-gnutls.html#gnutls-ecc-curve-set-enabled" title="gnutls_ecc_curve_set_enabled ()">gnutls_ecc_curve_set_enabled</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-gnutls.html#gnutls-sign-set-secure" title="gnutls_sign_set_secure ()">gnutls_sign_set_secure</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-gnutls.html#gnutls-sign-set-secure-for-certs" title="gnutls_sign_set_secure_for_certs ()">gnutls_sign_set_secure_for_certs</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-gnutls.html#gnutls-digest-set-secure" title="gnutls_digest_set_secure ()">gnutls_digest_set_secure</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-gnutls.html#gnutls-protocol-set-enabled" title="gnutls_protocol_set_enabled ()">gnutls_protocol_set_enabled</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-gnutls.html#gnutls-error-is-fatal" title="gnutls_error_is_fatal ()">gnutls_error_is_fatal</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-gnutls.html#gnutls-perror" title="gnutls_perror ()">gnutls_perror</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-gnutls.html#gnutls-strerror" title="gnutls_strerror ()">gnutls_strerror</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-gnutls.html#gnutls-handshake-set-random" title="gnutls_handshake_set_random ()">gnutls_handshake_set_random</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="returnvalue">gnutls_handshake_description_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-out" title="gnutls_handshake_get_last_out ()">gnutls_handshake_get_last_out</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="returnvalue">gnutls_handshake_description_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-get-last-in" title="gnutls_handshake_get_last_in ()">gnutls_handshake_get_last_in</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-gnutls.html#gnutls-heartbeat-ping" title="gnutls_heartbeat_ping ()">gnutls_heartbeat_ping</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-gnutls.html#gnutls-heartbeat-pong" title="gnutls_heartbeat_pong ()">gnutls_heartbeat_pong</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-gnutls.html#gnutls-record-set-timeout" title="gnutls_record_set_timeout ()">gnutls_record_set_timeout</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-gnutls.html#gnutls-record-disable-padding" title="gnutls_record_disable_padding ()">gnutls_record_disable_padding</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-gnutls.html#gnutls-record-cork" title="gnutls_record_cork ()">gnutls_record_cork</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-gnutls.html#gnutls-record-uncork" title="gnutls_record_uncork ()">gnutls_record_uncork</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-discard-queued" title="gnutls_record_discard_queued ()">gnutls_record_discard_queued</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-gnutls.html#gnutls-record-get-state" title="gnutls_record_get_state ()">gnutls_record_get_state</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-gnutls.html#gnutls-record-set-state" title="gnutls_record_set_state ()">gnutls_record_set_state</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-gnutls.html#gnutls-range-split" title="gnutls_range_split ()">gnutls_range_split</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()">gnutls_record_send</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send2" title="gnutls_record_send2 ()">gnutls_record_send2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send-range" title="gnutls_record_send_range ()">gnutls_record_send_range</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send-file" title="gnutls_record_send_file ()">gnutls_record_send_file</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()">gnutls_record_recv</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv-packet" title="gnutls_record_recv_packet ()">gnutls_record_recv_packet</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-gnutls.html#gnutls-packet-get" title="gnutls_packet_get ()">gnutls_packet_get</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-gnutls.html#gnutls-packet-deinit" title="gnutls_packet_deinit ()">gnutls_packet_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv-seq" title="gnutls_record_recv_seq ()">gnutls_record_recv_seq</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-overhead-size" title="gnutls_record_overhead_size ()">gnutls_record_overhead_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-est-record-overhead-size" title="gnutls_est_record_overhead_size ()">gnutls_est_record_overhead_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-empty-records" title="gnutls_record_set_max_empty_records()">gnutls_record_set_max_empty_records</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-gnutls.html#gnutls-record-can-use-length-hiding" title="gnutls_record_can_use_length_hiding ()">gnutls_record_can_use_length_hiding</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-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()">gnutls_record_get_direction</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-size" title="gnutls_record_get_max_size ()">gnutls_record_get_max_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-size" title="gnutls_record_set_max_size ()">gnutls_record_set_max_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-recv-size" title="gnutls_record_set_max_recv_size ()">gnutls_record_set_max_recv_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-check-pending" title="gnutls_record_check_pending ()">gnutls_record_check_pending</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-check-corked" title="gnutls_record_check_corked ()">gnutls_record_check_corked</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">size_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-early-data-size" title="gnutls_record_get_max_early_data_size ()">gnutls_record_get_max_early_data_size</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-gnutls.html#gnutls-record-set-max-early-data-size" title="gnutls_record_set_max_early_data_size ()">gnutls_record_set_max_early_data_size</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send-early-data" title="gnutls_record_send_early_data ()">gnutls_record_send_early_data</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv-early-data" title="gnutls_record_recv_early_data ()">gnutls_record_recv_early_data</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-gnutls.html#gnutls-session-force-valid" title="gnutls_session_force_valid ()">gnutls_session_force_valid</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-gnutls.html#gnutls-prf" title="gnutls_prf ()">gnutls_prf</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-gnutls.html#gnutls-prf-rfc5705" title="gnutls_prf_rfc5705 ()">gnutls_prf_rfc5705</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-gnutls.html#gnutls-prf-early" title="gnutls_prf_early ()">gnutls_prf_early</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-gnutls.html#gnutls-prf-raw" title="gnutls_prf_raw ()">gnutls_prf_raw</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-gnutls.html#gnutls-server-name-set" title="gnutls_server_name_set ()">gnutls_server_name_set</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-gnutls.html#gnutls-server-name-get" title="gnutls_server_name_get ()">gnutls_server_name_get</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-get-timeout" title="gnutls_heartbeat_get_timeout ()">gnutls_heartbeat_get_timeout</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-gnutls.html#gnutls-heartbeat-set-timeouts" title="gnutls_heartbeat_set_timeouts ()">gnutls_heartbeat_set_timeouts</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-gnutls.html#gnutls-heartbeat-enable" title="gnutls_heartbeat_enable ()">gnutls_heartbeat_enable</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-gnutls.html#gnutls-heartbeat-allowed" title="gnutls_heartbeat_allowed ()">gnutls_heartbeat_allowed</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-gnutls.html#gnutls-safe-renegotiation-status" title="gnutls_safe_renegotiation_status ()">gnutls_safe_renegotiation_status</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-gnutls.html#gnutls-session-ext-master-secret-status" title="gnutls_session_ext_master_secret_status ()">gnutls_session_ext_master_secret_status</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-gnutls.html#gnutls-session-etm-status" title="gnutls_session_etm_status ()">gnutls_session_etm_status</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-gnutls.html#gnutls-session-get-flags" title="gnutls_session_get_flags ()">gnutls_session_get_flags</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-gnutls.html#gnutls-session-ticket-key-generate" title="gnutls_session_ticket_key_generate ()">gnutls_session_ticket_key_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-gnutls.html#gnutls-session-ticket-enable-client" title="gnutls_session_ticket_enable_client ()">gnutls_session_ticket_enable_client</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-gnutls.html#gnutls-session-ticket-enable-server" title="gnutls_session_ticket_enable_server ()">gnutls_session_ticket_enable_server</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-gnutls.html#gnutls-session-ticket-send" title="gnutls_session_ticket_send ()">gnutls_session_ticket_send</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-gnutls.html#gnutls-srtp-set-profile" title="gnutls_srtp_set_profile ()">gnutls_srtp_set_profile</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-gnutls.html#gnutls-srtp-set-profile-direct" title="gnutls_srtp_set_profile_direct ()">gnutls_srtp_set_profile_direct</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-gnutls.html#gnutls-srtp-get-selected-profile" title="gnutls_srtp_get_selected_profile ()">gnutls_srtp_get_selected_profile</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-gnutls.html#gnutls-srtp-get-profile-name" title="gnutls_srtp_get_profile_name ()">gnutls_srtp_get_profile_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-gnutls.html#gnutls-srtp-get-profile-id" title="gnutls_srtp_get_profile_id ()">gnutls_srtp_get_profile_id</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-gnutls.html#gnutls-srtp-get-keys" title="gnutls_srtp_get_keys ()">gnutls_srtp_get_keys</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-gnutls.html#gnutls-srtp-set-mki" title="gnutls_srtp_set_mki ()">gnutls_srtp_set_mki</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-gnutls.html#gnutls-srtp-get-mki" title="gnutls_srtp_get_mki ()">gnutls_srtp_get_mki</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-compress-certificate-get-selected-method" title="gnutls_compress_certificate_get_selected_method ()">gnutls_compress_certificate_get_selected_method</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-gnutls.html#gnutls-compress-certificate-set-methods" title="gnutls_compress_certificate_set_methods ()">gnutls_compress_certificate_set_methods</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-gnutls.html#gnutls-alpn-get-selected-protocol" title="gnutls_alpn_get_selected_protocol ()">gnutls_alpn_get_selected_protocol</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-gnutls.html#gnutls-alpn-set-protocols" title="gnutls_alpn_set_protocols ()">gnutls_alpn_set_protocols</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-gnutls.html#gnutls-key-generate" title="gnutls_key_generate ()">gnutls_key_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-gnutls.html#gnutls-priority-init" title="gnutls_priority_init ()">gnutls_priority_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-gnutls.html#gnutls-priority-init2" title="gnutls_priority_init2 ()">gnutls_priority_init2</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-gnutls.html#gnutls-priority-deinit" title="gnutls_priority_deinit ()">gnutls_priority_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-gnutls.html#gnutls-priority-get-cipher-suite-index" title="gnutls_priority_get_cipher_suite_index ()">gnutls_priority_get_cipher_suite_index</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-gnutls.html#gnutls-priority-string-list" title="gnutls_priority_string_list ()">gnutls_priority_string_list</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-gnutls.html#gnutls-priority-set" title="gnutls_priority_set ()">gnutls_priority_set</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-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()">gnutls_priority_set_direct</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-gnutls.html#gnutls-priority-certificate-type-list" title="gnutls_priority_certificate_type_list ()">gnutls_priority_certificate_type_list</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-gnutls.html#gnutls-priority-certificate-type-list2" title="gnutls_priority_certificate_type_list2 ()">gnutls_priority_certificate_type_list2</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-gnutls.html#gnutls-priority-sign-list" title="gnutls_priority_sign_list ()">gnutls_priority_sign_list</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-gnutls.html#gnutls-priority-protocol-list" title="gnutls_priority_protocol_list ()">gnutls_priority_protocol_list</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-gnutls.html#gnutls-priority-ecc-curve-list" title="gnutls_priority_ecc_curve_list ()">gnutls_priority_ecc_curve_list</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-gnutls.html#gnutls-priority-group-list" title="gnutls_priority_group_list ()">gnutls_priority_group_list</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-gnutls.html#gnutls-priority-kx-list" title="gnutls_priority_kx_list ()">gnutls_priority_kx_list</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-gnutls.html#gnutls-priority-cipher-list" title="gnutls_priority_cipher_list ()">gnutls_priority_cipher_list</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-gnutls.html#gnutls-priority-mac-list" title="gnutls_priority_mac_list ()">gnutls_priority_mac_list</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-gnutls.html#gnutls-get-system-config-file" title="gnutls_get_system_config_file ()">gnutls_get_system_config_file</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-gnutls.html#gnutls-set-default-priority" title="gnutls_set_default_priority ()">gnutls_set_default_priority</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-gnutls.html#gnutls-set-default-priority-append" title="gnutls_set_default_priority_append ()">gnutls_set_default_priority_append</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-gnutls.html#gnutls-cipher-suite-get-name" title="gnutls_cipher_suite_get_name ()">gnutls_cipher_suite_get_name</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-gnutls.html#gnutls-protocol-get-name" title="gnutls_protocol_get_name ()">gnutls_protocol_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-gnutls.html#gnutls-session-get-data" title="gnutls_session_get_data ()">gnutls_session_get_data</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-gnutls.html#gnutls-session-get-data2" title="gnutls_session_get_data2 ()">gnutls_session_get_data2</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-gnutls.html#gnutls-session-get-random" title="gnutls_session_get_random ()">gnutls_session_get_random</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-gnutls.html#gnutls-session-get-master-secret" title="gnutls_session_get_master_secret ()">gnutls_session_get_master_secret</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-gnutls.html#gnutls-session-get-desc" title="gnutls_session_get_desc ()">gnutls_session_get_desc</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-gnutls.html#gnutls-session-set-verify-function" title="gnutls_session_set_verify_function ()">gnutls_session_set_verify_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-gnutls.html#gnutls-session-set-verify-cert" title="gnutls_session_set_verify_cert ()">gnutls_session_set_verify_cert</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-gnutls.html#gnutls-session-set-verify-cert2" title="gnutls_session_set_verify_cert2 ()">gnutls_session_set_verify_cert2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-verify-cert-status" title="gnutls_session_get_verify_cert_status ()">gnutls_session_get_verify_cert_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-gnutls.html#gnutls-session-set-premaster" title="gnutls_session_set_premaster ()">gnutls_session_set_premaster</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-gnutls.html#gnutls-session-get-id" title="gnutls_session_get_id ()">gnutls_session_get_id</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-gnutls.html#gnutls-session-get-id2" title="gnutls_session_get_id2 ()">gnutls_session_get_id2</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-gnutls.html#gnutls-session-set-id" title="gnutls_session_set_id ()">gnutls_session_set_id</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-gnutls.html#gnutls-session-channel-binding" title="gnutls_session_channel_binding ()">gnutls_session_channel_binding</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-gnutls.html#gnutls-session-is-resumed" title="gnutls_session_is_resumed ()">gnutls_session_is_resumed</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-gnutls.html#gnutls-session-resumption-requested" title="gnutls_session_resumption_requested ()">gnutls_session_resumption_requested</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()">*gnutls_db_store_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()">*gnutls_db_remove_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="returnvalue">gnutls_datum_t</span></a>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()">*gnutls_db_retr_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-db-set-cache-expiration" title="gnutls_db_set_cache_expiration ()">gnutls_db_set_cache_expiration</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-gnutls.html#gnutls-db-get-default-cache-expiration" title="gnutls_db_get_default_cache_expiration ()">gnutls_db_get_default_cache_expiration</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-gnutls.html#gnutls-db-remove-session" title="gnutls_db_remove_session ()">gnutls_db_remove_session</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-gnutls.html#gnutls-db-set-retrieve-function" title="gnutls_db_set_retrieve_function ()">gnutls_db_set_retrieve_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-gnutls.html#gnutls-db-set-remove-function" title="gnutls_db_set_remove_function ()">gnutls_db_set_remove_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-gnutls.html#gnutls-db-set-store-function" title="gnutls_db_set_store_function ()">gnutls_db_set_store_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-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()">gnutls_db_set_ptr</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-gnutls.html#gnutls-db-get-ptr" title="gnutls_db_get_ptr ()">gnutls_db_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-gnutls.html#gnutls-db-check-entry" title="gnutls_db_check_entry ()">gnutls_db_check_entry</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry-time" title="gnutls_db_check_entry_time ()">gnutls_db_check_entry_time</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry-expire-time" title="gnutls_db_check_entry_expire_time ()">gnutls_db_check_entry_expire_time</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-handshake-hook-func" title="gnutls_handshake_hook_func ()">*gnutls_handshake_hook_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-handshake-set-hook-function" title="gnutls_handshake_set_hook_function ()">gnutls_handshake_set_hook_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-handshake-simple-hook-func" title="gnutls_handshake_simple_hook_func ()">*gnutls_handshake_simple_hook_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-handshake-set-post-client-hello-function" title="gnutls_handshake_set_post_client_hello_function ()">gnutls_handshake_set_post_client_hello_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-gnutls.html#gnutls-handshake-set-max-packet-length" title="gnutls_handshake_set_max_packet_length ()">gnutls_handshake_set_max_packet_length</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-gnutls.html#gnutls-check-version" title="gnutls_check_version ()">gnutls_check_version</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-gnutls.html#gnutls-credentials-set" title="gnutls_credentials_set ()">gnutls_credentials_set</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-gnutls.html#gnutls-credentials-get" title="gnutls_credentials_get ()">gnutls_credentials_get</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-gnutls.html#gnutls-anon-free-server-credentials" title="gnutls_anon_free_server_credentials ()">gnutls_anon_free_server_credentials</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-gnutls.html#gnutls-anon-allocate-server-credentials" title="gnutls_anon_allocate_server_credentials ()">gnutls_anon_allocate_server_credentials</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-gnutls.html#gnutls-anon-set-server-dh-params" title="gnutls_anon_set_server_dh_params ()">gnutls_anon_set_server_dh_params</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-gnutls.html#gnutls-anon-set-server-known-dh-params" title="gnutls_anon_set_server_known_dh_params ()">gnutls_anon_set_server_known_dh_params</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-gnutls.html#gnutls-anon-set-server-params-function" title="gnutls_anon_set_server_params_function ()">gnutls_anon_set_server_params_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-gnutls.html#gnutls-anon-free-client-credentials" title="gnutls_anon_free_client_credentials ()">gnutls_anon_free_client_credentials</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-gnutls.html#gnutls-anon-allocate-client-credentials" title="gnutls_anon_allocate_client_credentials ()">gnutls_anon_allocate_client_credentials</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-gnutls.html#gnutls-certificate-free-credentials" title="gnutls_certificate_free_credentials ()">gnutls_certificate_free_credentials</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-gnutls.html#gnutls-certificate-allocate-credentials" title="gnutls_certificate_allocate_credentials ()">gnutls_certificate_allocate_credentials</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-gnutls.html#gnutls-certificate-get-issuer" title="gnutls_certificate_get_issuer ()">gnutls_certificate_get_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-gnutls.html#gnutls-certificate-get-crt-raw" title="gnutls_certificate_get_crt_raw ()">gnutls_certificate_get_crt_raw</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-gnutls.html#gnutls-certificate-free-keys" title="gnutls_certificate_free_keys ()">gnutls_certificate_free_keys</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-gnutls.html#gnutls-certificate-free-cas" title="gnutls_certificate_free_cas ()">gnutls_certificate_free_cas</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-gnutls.html#gnutls-certificate-free-ca-names" title="gnutls_certificate_free_ca_names ()">gnutls_certificate_free_ca_names</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-gnutls.html#gnutls-certificate-free-crls" title="gnutls_certificate_free_crls ()">gnutls_certificate_free_crls</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-gnutls.html#gnutls-certificate-set-dh-params" title="gnutls_certificate_set_dh_params ()">gnutls_certificate_set_dh_params</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-gnutls.html#gnutls-certificate-set-known-dh-params" title="gnutls_certificate_set_known_dh_params ()">gnutls_certificate_set_known_dh_params</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-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()">gnutls_certificate_set_verify_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">unsigned <span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-verify-flags" title="gnutls_certificate_get_verify_flags ()">gnutls_certificate_get_verify_flags</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-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()">gnutls_certificate_set_flags</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-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()">gnutls_certificate_set_verify_limits</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-gnutls.html#gnutls-certificate-set-x509-system-trust" title="gnutls_certificate_set_x509_system_trust ()">gnutls_certificate_set_x509_system_trust</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-gnutls.html#gnutls-certificate-set-x509-trust-file" title="gnutls_certificate_set_x509_trust_file ()">gnutls_certificate_set_x509_trust_file</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-gnutls.html#gnutls-certificate-set-x509-trust-dir" title="gnutls_certificate_set_x509_trust_dir ()">gnutls_certificate_set_x509_trust_dir</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-gnutls.html#gnutls-certificate-set-x509-trust-mem" title="gnutls_certificate_set_x509_trust_mem ()">gnutls_certificate_set_x509_trust_mem</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-gnutls.html#gnutls-certificate-set-x509-crl-file" title="gnutls_certificate_set_x509_crl_file ()">gnutls_certificate_set_x509_crl_file</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-gnutls.html#gnutls-certificate-set-x509-crl-mem" title="gnutls_certificate_set_x509_crl_mem ()">gnutls_certificate_set_x509_crl_mem</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-gnutls.html#gnutls-certificate-set-x509-key-file" title="gnutls_certificate_set_x509_key_file ()">gnutls_certificate_set_x509_key_file</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-gnutls.html#gnutls-certificate-set-x509-key-file2" title="gnutls_certificate_set_x509_key_file2 ()">gnutls_certificate_set_x509_key_file2</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-gnutls.html#gnutls-certificate-set-x509-key-mem" title="gnutls_certificate_set_x509_key_mem ()">gnutls_certificate_set_x509_key_mem</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-gnutls.html#gnutls-certificate-set-x509-key-mem2" title="gnutls_certificate_set_x509_key_mem2 ()">gnutls_certificate_set_x509_key_mem2</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-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()">gnutls_certificate_send_x509_rdn_sequence</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-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file" title="gnutls_certificate_set_x509_simple_pkcs12_file ()">gnutls_certificate_set_x509_simple_pkcs12_file</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-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem" title="gnutls_certificate_set_x509_simple_pkcs12_mem ()">gnutls_certificate_set_x509_simple_pkcs12_mem</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-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()">gnutls_certificate_set_x509_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-gnutls.html#gnutls-certificate-set-x509-trust" title="gnutls_certificate_set_x509_trust ()">gnutls_certificate_set_x509_trust</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-gnutls.html#gnutls-certificate-set-x509-crl" title="gnutls_certificate_set_x509_crl ()">gnutls_certificate_set_x509_crl</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-gnutls.html#gnutls-certificate-get-x509-key" title="gnutls_certificate_get_x509_key ()">gnutls_certificate_get_x509_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-gnutls.html#gnutls-certificate-get-x509-crt" title="gnutls_certificate_get_x509_crt ()">gnutls_certificate_get_x509_crt</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-gnutls.html#gnutls-certificate-set-ocsp-status-request-function" title="gnutls_certificate_set_ocsp_status_request_function ()">gnutls_certificate_set_ocsp_status_request_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-gnutls.html#gnutls-certificate-set-ocsp-status-request-function2" title="gnutls_certificate_set_ocsp_status_request_function2 ()">gnutls_certificate_set_ocsp_status_request_function2</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-gnutls.html#gnutls-certificate-set-ocsp-status-request-file" title="gnutls_certificate_set_ocsp_status_request_file ()">gnutls_certificate_set_ocsp_status_request_file</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-gnutls.html#gnutls-certificate-set-ocsp-status-request-file2" title="gnutls_certificate_set_ocsp_status_request_file2 ()">gnutls_certificate_set_ocsp_status_request_file2</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-gnutls.html#gnutls-certificate-set-ocsp-status-request-mem" title="gnutls_certificate_set_ocsp_status_request_mem ()">gnutls_certificate_set_ocsp_status_request_mem</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-ocsp-expiration" title="gnutls_certificate_get_ocsp_expiration ()">gnutls_certificate_get_ocsp_expiration</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-gnutls.html#gnutls-ocsp-status-request-enable-client" title="gnutls_ocsp_status_request_enable_client ()">gnutls_ocsp_status_request_enable_client</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-gnutls.html#gnutls-ocsp-status-request-get" title="gnutls_ocsp_status_request_get ()">gnutls_ocsp_status_request_get</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-gnutls.html#gnutls-ocsp-status-request-is-checked" title="gnutls_ocsp_status_request_is_checked ()">gnutls_ocsp_status_request_is_checked</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-gnutls.html#gnutls-ocsp-status-request-get2" title="gnutls_ocsp_status_request_get2 ()">gnutls_ocsp_status_request_get2</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-gnutls.html#gnutls-certificate-set-rawpk-key-mem" title="gnutls_certificate_set_rawpk_key_mem ()">gnutls_certificate_set_rawpk_key_mem</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-gnutls.html#gnutls-certificate-set-rawpk-key-file" title="gnutls_certificate_set_rawpk_key_file ()">gnutls_certificate_set_rawpk_key_file</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-gnutls.html#gnutls-global-init" title="gnutls_global_init ()">gnutls_global_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-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()">gnutls_global_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a class="link" href="gnutls-gnutls.html#gnutls-library-config-st" title="gnutls_library_config_st"><span class="returnvalue">gnutls_library_config_st</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-get-library-config" title="gnutls_get_library_config ()">gnutls_get_library_config</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-time-func" title="gnutls_time_func ()">*gnutls_time_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()">*mutex_init_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()">*mutex_lock_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()">*mutex_unlock_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()">*mutex_deinit_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-global-set-mutex" title="gnutls_global_set_mutex ()">gnutls_global_set_mutex</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-alloc-function" title="gnutls_alloc_function ()">*gnutls_alloc_function</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-calloc-function" title="gnutls_calloc_function ()">*gnutls_calloc_function</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-is-secure-function" title="gnutls_is_secure_function ()">*gnutls_is_secure_function</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-free-function" title="gnutls_free_function ()">*gnutls_free_function</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span> *
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-realloc-function" title="gnutls_realloc_function ()">*gnutls_realloc_function</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-global-set-time-function" title="gnutls_global_set_time_function ()">gnutls_global_set_time_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()">gnutls_free</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-gnutls.html#gnutls-memset" title="gnutls_memset ()">gnutls_memset</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">if</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-memcmp" title="gnutls_memcmp ()">gnutls_memcmp</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()">*gnutls_log_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-audit-log-func" title="gnutls_audit_log_func ()">*gnutls_audit_log_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-global-set-log-function" title="gnutls_global_set_log_function ()">gnutls_global_set_log_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-gnutls.html#gnutls-global-set-audit-log-function" title="gnutls_global_set_audit_log_function ()">gnutls_global_set_audit_log_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-gnutls.html#gnutls-global-set-log-level" title="gnutls_global_set_log_level ()">gnutls_global_set_log_level</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-keylog-func" title="gnutls_keylog_func ()">*gnutls_keylog_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-keylog-func" title="gnutls_keylog_func ()"><span class="returnvalue">gnutls_keylog_func</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-keylog-function" title="gnutls_session_get_keylog_function ()">gnutls_session_get_keylog_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-gnutls.html#gnutls-session-set-keylog-function" title="gnutls_session_set_keylog_function ()">gnutls_session_set_keylog_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-gnutls.html#gnutls-dh-params-init" title="gnutls_dh_params_init ()">gnutls_dh_params_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-gnutls.html#gnutls-dh-params-deinit" title="gnutls_dh_params_deinit ()">gnutls_dh_params_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-gnutls.html#gnutls-dh-params-import-raw" title="gnutls_dh_params_import_raw ()">gnutls_dh_params_import_raw</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-gnutls.html#gnutls-dh-params-import-dsa" title="gnutls_dh_params_import_dsa ()">gnutls_dh_params_import_dsa</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-gnutls.html#gnutls-dh-params-import-raw2" title="gnutls_dh_params_import_raw2 ()">gnutls_dh_params_import_raw2</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-gnutls.html#gnutls-dh-params-import-raw3" title="gnutls_dh_params_import_raw3 ()">gnutls_dh_params_import_raw3</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-gnutls.html#gnutls-dh-params-import-pkcs3" title="gnutls_dh_params_import_pkcs3 ()">gnutls_dh_params_import_pkcs3</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-gnutls.html#gnutls-dh-params-generate2" title="gnutls_dh_params_generate2 ()">gnutls_dh_params_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-gnutls.html#gnutls-dh-params-export-pkcs3" title="gnutls_dh_params_export_pkcs3 ()">gnutls_dh_params_export_pkcs3</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-gnutls.html#gnutls-dh-params-export2-pkcs3" title="gnutls_dh_params_export2_pkcs3 ()">gnutls_dh_params_export2_pkcs3</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-gnutls.html#gnutls-dh-params-export-raw" title="gnutls_dh_params_export_raw ()">gnutls_dh_params_export_raw</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-gnutls.html#gnutls-dh-params-cpy" title="gnutls_dh_params_cpy ()">gnutls_dh_params_cpy</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()">*gnutls_pull_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()">*gnutls_push_func</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-gnutls.html#gnutls-system-recv-timeout" title="gnutls_system_recv_timeout ()">gnutls_system_recv_timeout</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-pull-timeout-func" title="gnutls_pull_timeout_func ()">*gnutls_pull_timeout_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">ssize_t</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-vec-push-func" title="gnutls_vec_push_func ()">*gnutls_vec_push_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()">*gnutls_errno_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-transport-set-int" title="gnutls_transport_set_int ()">gnutls_transport_set_int</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-gnutls.html#gnutls-transport-set-int2" title="gnutls_transport_set_int2 ()">gnutls_transport_set_int2</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-gnutls.html#gnutls-transport-get-int2" title="gnutls_transport_get_int2 ()">gnutls_transport_get_int2</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-gnutls.html#gnutls-transport-get-int" title="gnutls_transport_get_int ()">gnutls_transport_get_int</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-gnutls.html#gnutls-transport-set-ptr" title="gnutls_transport_set_ptr ()">gnutls_transport_set_ptr</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-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()">gnutls_transport_set_ptr2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="returnvalue">gnutls_transport_ptr_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-get-ptr" title="gnutls_transport_get_ptr ()">gnutls_transport_get_ptr</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-gnutls.html#gnutls-transport-get-ptr2" title="gnutls_transport_get_ptr2 ()">gnutls_transport_get_ptr2</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-gnutls.html#gnutls-transport-set-vec-push-function" title="gnutls_transport_set_vec_push_function ()">gnutls_transport_set_vec_push_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-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()">gnutls_transport_set_push_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-gnutls.html#gnutls-transport-set-pull-function" title="gnutls_transport_set_pull_function ()">gnutls_transport_set_pull_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-gnutls.html#gnutls-transport-set-pull-timeout-function" title="gnutls_transport_set_pull_timeout_function ()">gnutls_transport_set_pull_timeout_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-gnutls.html#gnutls-transport-set-errno-function" title="gnutls_transport_set_errno_function ()">gnutls_transport_set_errno_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-gnutls.html#gnutls-transport-set-errno" title="gnutls_transport_set_errno ()">gnutls_transport_set_errno</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-gnutls.html#gnutls-session-set-ptr" title="gnutls_session_set_ptr ()">gnutls_session_set_ptr</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-gnutls.html#gnutls-session-get-ptr" title="gnutls_session_get_ptr ()">gnutls_session_get_ptr</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-gnutls.html#gnutls-openpgp-send-cert" title="gnutls_openpgp_send_cert ()">gnutls_openpgp_send_cert</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-gnutls.html#gnutls-fingerprint" title="gnutls_fingerprint ()">gnutls_fingerprint</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-gnutls.html#gnutls-random-art" title="gnutls_random_art ()">gnutls_random_art</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-gnutls.html#gnutls-idna-map" title="gnutls_idna_map ()">gnutls_idna_map</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-gnutls.html#gnutls-idna-reverse-map" title="gnutls_idna_reverse_map ()">gnutls_idna_reverse_map</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-gnutls.html#gnutls-srp-free-client-credentials" title="gnutls_srp_free_client_credentials ()">gnutls_srp_free_client_credentials</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-gnutls.html#gnutls-srp-allocate-client-credentials" title="gnutls_srp_allocate_client_credentials ()">gnutls_srp_allocate_client_credentials</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-gnutls.html#gnutls-srp-set-client-credentials" title="gnutls_srp_set_client_credentials ()">gnutls_srp_set_client_credentials</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-gnutls.html#gnutls-srp-free-server-credentials" title="gnutls_srp_free_server_credentials ()">gnutls_srp_free_server_credentials</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-gnutls.html#gnutls-srp-allocate-server-credentials" title="gnutls_srp_allocate_server_credentials ()">gnutls_srp_allocate_server_credentials</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-gnutls.html#gnutls-srp-set-server-credentials-file" title="gnutls_srp_set_server_credentials_file ()">gnutls_srp_set_server_credentials_file</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-gnutls.html#gnutls-srp-server-get-username" title="gnutls_srp_server_get_username ()">gnutls_srp_server_get_username</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-gnutls.html#gnutls-srp-set-prime-bits" title="gnutls_srp_set_prime_bits ()">gnutls_srp_set_prime_bits</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-gnutls.html#gnutls-srp-verifier" title="gnutls_srp_verifier ()">gnutls_srp_verifier</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-gnutls.html#gnutls-srp-set-server-credentials-function" title="gnutls_srp_set_server_credentials_function ()">gnutls_srp_set_server_credentials_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-gnutls.html#gnutls-srp-set-client-credentials-function" title="gnutls_srp_set_client_credentials_function ()">gnutls_srp_set_client_credentials_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-gnutls.html#gnutls-srp-base64-encode" title="gnutls_srp_base64_encode ()">gnutls_srp_base64_encode</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-gnutls.html#gnutls-srp-base64-encode2" title="gnutls_srp_base64_encode2 ()">gnutls_srp_base64_encode2</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-gnutls.html#gnutls-srp-base64-decode" title="gnutls_srp_base64_decode ()">gnutls_srp_base64_decode</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-gnutls.html#gnutls-srp-base64-decode2" title="gnutls_srp_base64_decode2 ()">gnutls_srp_base64_decode2</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-gnutls.html#gnutls-srp-set-server-fake-salt-seed" title="gnutls_srp_set_server_fake_salt_seed ()">gnutls_srp_set_server_fake_salt_seed</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-gnutls.html#gnutls-psk-free-client-credentials" title="gnutls_psk_free_client_credentials ()">gnutls_psk_free_client_credentials</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-gnutls.html#gnutls-psk-allocate-client-credentials" title="gnutls_psk_allocate_client_credentials ()">gnutls_psk_allocate_client_credentials</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-gnutls.html#gnutls-psk-set-client-credentials" title="gnutls_psk_set_client_credentials ()">gnutls_psk_set_client_credentials</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-gnutls.html#gnutls-psk-set-client-credentials2" title="gnutls_psk_set_client_credentials2 ()">gnutls_psk_set_client_credentials2</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-gnutls.html#gnutls-psk-free-server-credentials" title="gnutls_psk_free_server_credentials ()">gnutls_psk_free_server_credentials</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-gnutls.html#gnutls-psk-allocate-server-credentials" title="gnutls_psk_allocate_server_credentials ()">gnutls_psk_allocate_server_credentials</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-gnutls.html#gnutls-psk-set-server-credentials-file" title="gnutls_psk_set_server_credentials_file ()">gnutls_psk_set_server_credentials_file</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-gnutls.html#gnutls-psk-set-server-credentials-hint" title="gnutls_psk_set_server_credentials_hint ()">gnutls_psk_set_server_credentials_hint</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-gnutls.html#gnutls-psk-server-get-username" title="gnutls_psk_server_get_username ()">gnutls_psk_server_get_username</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-gnutls.html#gnutls-psk-server-get-username2" title="gnutls_psk_server_get_username2 ()">gnutls_psk_server_get_username2</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-gnutls.html#gnutls-psk-client-get-hint" title="gnutls_psk_client_get_hint ()">gnutls_psk_client_get_hint</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-gnutls.html#gnutls-psk-set-server-credentials-function" title="gnutls_psk_set_server_credentials_function ()">gnutls_psk_set_server_credentials_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-gnutls.html#gnutls-psk-set-server-credentials-function2" title="gnutls_psk_set_server_credentials_function2 ()">gnutls_psk_set_server_credentials_function2</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-gnutls.html#gnutls-psk-set-client-credentials-function" title="gnutls_psk_set_client_credentials_function ()">gnutls_psk_set_client_credentials_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-gnutls.html#gnutls-psk-set-client-credentials-function2" title="gnutls_psk_set_client_credentials_function2 ()">gnutls_psk_set_client_credentials_function2</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-gnutls.html#gnutls-hex-encode" title="gnutls_hex_encode ()">gnutls_hex_encode</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-gnutls.html#gnutls-hex-decode" title="gnutls_hex_decode ()">gnutls_hex_decode</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-gnutls.html#gnutls-hex-encode2" title="gnutls_hex_encode2 ()">gnutls_hex_encode2</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-gnutls.html#gnutls-hex-decode2" title="gnutls_hex_decode2 ()">gnutls_hex_decode2</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-gnutls.html#gnutls-psk-set-server-dh-params" title="gnutls_psk_set_server_dh_params ()">gnutls_psk_set_server_dh_params</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-gnutls.html#gnutls-psk-set-server-known-dh-params" title="gnutls_psk_set_server_known_dh_params ()">gnutls_psk_set_server_known_dh_params</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-gnutls.html#gnutls-psk-set-server-params-function" title="gnutls_psk_set_server_params_function ()">gnutls_psk_set_server_params_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-gnutls.html#gnutls-dh-set-prime-bits" title="gnutls_dh_set_prime_bits ()">gnutls_dh_set_prime_bits</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-gnutls.html#gnutls-dh-get-secret-bits" title="gnutls_dh_get_secret_bits ()">gnutls_dh_get_secret_bits</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-gnutls.html#gnutls-dh-get-peers-public-bits" title="gnutls_dh_get_peers_public_bits ()">gnutls_dh_get_peers_public_bits</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-gnutls.html#gnutls-dh-get-prime-bits" title="gnutls_dh_get_prime_bits ()">gnutls_dh_get_prime_bits</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-gnutls.html#gnutls-dh-get-group" title="gnutls_dh_get_group ()">gnutls_dh_get_group</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-gnutls.html#gnutls-dh-get-pubkey" title="gnutls_dh_get_pubkey ()">gnutls_dh_get_pubkey</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-gnutls.html#gnutls-certificate-set-retrieve-function" title="gnutls_certificate_set_retrieve_function ()">gnutls_certificate_set_retrieve_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-gnutls.html#gnutls-certificate-set-verify-function" title="gnutls_certificate_set_verify_function ()">gnutls_certificate_set_verify_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-gnutls.html#gnutls-certificate-server-set-request" title="gnutls_certificate_server_set_request ()">gnutls_certificate_server_set_request</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="returnvalue">gnutls_datum_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()">gnutls_certificate_get_peers</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="returnvalue">gnutls_datum_t</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-ours" title="gnutls_certificate_get_ours ()">gnutls_certificate_get_ours</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-gnutls.html#gnutls-certificate-get-peers-subkey-id" title="gnutls_certificate_get_peers_subkey_id ()">gnutls_certificate_get_peers_subkey_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-activation-time-peers" title="gnutls_certificate_activation_time_peers ()">gnutls_certificate_activation_time_peers</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers" title="gnutls_certificate_expiration_time_peers ()">gnutls_certificate_expiration_time_peers</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-gnutls.html#gnutls-certificate-client-get-request-status" title="gnutls_certificate_client_get_request_status ()">gnutls_certificate_client_get_request_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-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()">gnutls_certificate_verify_peers2</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-gnutls.html#gnutls-certificate-verify-peers3" title="gnutls_certificate_verify_peers3 ()">gnutls_certificate_verify_peers3</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-gnutls.html#gnutls-certificate-verify-peers" title="gnutls_certificate_verify_peers ()">gnutls_certificate_verify_peers</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-gnutls.html#gnutls-certificate-verification-status-print" title="gnutls_certificate_verification_status_print ()">gnutls_certificate_verification_status_print</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-gnutls.html#gnutls-pem-base64-encode" title="gnutls_pem_base64_encode ()">gnutls_pem_base64_encode</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-gnutls.html#gnutls-pem-base64-decode" title="gnutls_pem_base64_decode ()">gnutls_pem_base64_decode</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-gnutls.html#gnutls-pem-base64-encode2" title="gnutls_pem_base64_encode2 ()">gnutls_pem_base64_encode2</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-gnutls.html#gnutls-pem-base64-decode2" title="gnutls_pem_base64_decode2 ()">gnutls_pem_base64_decode2</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-gnutls.html#gnutls-base64-encode2" title="gnutls_base64_encode2 ()">gnutls_base64_encode2</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-gnutls.html#gnutls-base64-decode2" title="gnutls_base64_decode2 ()">gnutls_base64_decode2</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-gnutls.html#gnutls-certificate-set-params-function" title="gnutls_certificate_set_params_function ()">gnutls_certificate_set_params_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-gnutls.html#gnutls-anon-set-params-function" title="gnutls_anon_set_params_function ()">gnutls_anon_set_params_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-gnutls.html#gnutls-psk-set-params-function" title="gnutls_psk_set_params_function ()">gnutls_psk_set_params_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-gnutls.html#gnutls-hex2bin" title="gnutls_hex2bin ()">gnutls_hex2bin</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-tdb-store-func" title="gnutls_tdb_store_func ()">*gnutls_tdb_store_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-tdb-store-commitment-func" title="gnutls_tdb_store_commitment_func ()">*gnutls_tdb_store_commitment_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-tdb-verify-func" title="gnutls_tdb_verify_func ()">*gnutls_tdb_verify_func</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-gnutls.html#gnutls-tdb-init" title="gnutls_tdb_init ()">gnutls_tdb_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-gnutls.html#gnutls-tdb-set-store-func" title="gnutls_tdb_set_store_func ()">gnutls_tdb_set_store_func</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-gnutls.html#gnutls-tdb-set-store-commitment-func" title="gnutls_tdb_set_store_commitment_func ()">gnutls_tdb_set_store_commitment_func</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-gnutls.html#gnutls-tdb-set-verify-func" title="gnutls_tdb_set_verify_func ()">gnutls_tdb_set_verify_func</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-gnutls.html#gnutls-tdb-deinit" title="gnutls_tdb_deinit ()">gnutls_tdb_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-gnutls.html#gnutls-verify-stored-pubkey" title="gnutls_verify_stored_pubkey ()">gnutls_verify_stored_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-gnutls.html#gnutls-store-commitment" title="gnutls_store_commitment ()">gnutls_store_commitment</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-gnutls.html#gnutls-store-pubkey" title="gnutls_store_pubkey ()">gnutls_store_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-gnutls.html#gnutls-load-file" title="gnutls_load_file ()">gnutls_load_file</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-gnutls.html#gnutls-url-is-supported" title="gnutls_url_is_supported ()">gnutls_url_is_supported</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-pin-callback-t" title="gnutls_pin_callback_t ()">*gnutls_pin_callback_t</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-certificate-set-pin-function" title="gnutls_certificate_set_pin_function ()">gnutls_certificate_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-gnutls.html#gnutls-buffer-append-data" title="gnutls_buffer_append_data ()">gnutls_buffer_append_data</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-gnutls.html#gnutls-utf8-password-normalize" title="gnutls_utf8_password_normalize ()">gnutls_utf8_password_normalize</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-gnutls.html#gnutls-ext-set-data" title="gnutls_ext_set_data ()">gnutls_ext_set_data</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-gnutls.html#gnutls-ext-get-data" title="gnutls_ext_get_data ()">gnutls_ext_get_data</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-gnutls.html#gnutls-ext-get-current-msg" title="gnutls_ext_get_current_msg ()">gnutls_ext_get_current_msg</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-ext-recv-func" title="gnutls_ext_recv_func ()">*gnutls_ext_recv_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-ext-send-func" title="gnutls_ext_send_func ()">*gnutls_ext_send_func</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-ext-deinit-data-func" title="gnutls_ext_deinit_data_func ()">*gnutls_ext_deinit_data_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-ext-pack-func" title="gnutls_ext_pack_func ()">*gnutls_ext_pack_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-ext-unpack-func" title="gnutls_ext_unpack_func ()">*gnutls_ext_unpack_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-ext-raw-process-func" title="gnutls_ext_raw_process_func ()">*gnutls_ext_raw_process_func</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-gnutls.html#gnutls-ext-raw-parse" title="gnutls_ext_raw_parse ()">gnutls_ext_raw_parse</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-gnutls.html#gnutls-ext-register" title="gnutls_ext_register ()">gnutls_ext_register</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-gnutls.html#gnutls-session-ext-register" title="gnutls_session_ext_register ()">gnutls_session_ext_register</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-gnutls.html#gnutls-ext-get-name" title="gnutls_ext_get_name ()">gnutls_ext_get_name</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-gnutls.html#gnutls-ext-get-name2" title="gnutls_ext_get_name2 ()">gnutls_ext_get_name2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-supp-recv-func" title="gnutls_supp_recv_func ()">*gnutls_supp_recv_func</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">
+<span class="c_punctuation">(</span><a class="link" href="gnutls-gnutls.html#gnutls-supp-send-func" title="gnutls_supp_send_func ()">*gnutls_supp_send_func</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-gnutls.html#gnutls-supplemental-register" title="gnutls_supplemental_register ()">gnutls_supplemental_register</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-gnutls.html#gnutls-session-supplemental-register" title="gnutls_session_supplemental_register ()">gnutls_session_supplemental_register</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-gnutls.html#gnutls-supplemental-recv" title="gnutls_supplemental_recv ()">gnutls_supplemental_recv</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-gnutls.html#gnutls-supplemental-send" title="gnutls_supplemental_send ()">gnutls_supplemental_send</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-gnutls.html#gnutls-anti-replay-init" title="gnutls_anti_replay_init ()">gnutls_anti_replay_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-gnutls.html#gnutls-anti-replay-deinit" title="gnutls_anti_replay_deinit ()">gnutls_anti_replay_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-gnutls.html#gnutls-anti-replay-set-window" title="gnutls_anti_replay_set_window ()">gnutls_anti_replay_set_window</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-gnutls.html#gnutls-anti-replay-enable" title="gnutls_anti_replay_enable ()">gnutls_anti_replay_enable</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-db-add-func" title="gnutls_db_add_func ()">*gnutls_db_add_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-anti-replay-set-add-function" title="gnutls_anti_replay_set_add_function ()">gnutls_anti_replay_set_add_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-gnutls.html#gnutls-anti-replay-set-ptr" title="gnutls_anti_replay_set_ptr ()">gnutls_anti_replay_set_ptr</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-handshake-read-func" title="gnutls_handshake_read_func ()">*gnutls_handshake_read_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-handshake-set-read-function" title="gnutls_handshake_set_read_function ()">gnutls_handshake_set_read_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-gnutls.html#gnutls-handshake-write" title="gnutls_handshake_write ()">gnutls_handshake_write</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-handshake-secret-func" title="gnutls_handshake_secret_func ()">*gnutls_handshake_secret_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-handshake-set-secret-function" title="gnutls_handshake_set_secret_function ()">gnutls_handshake_set_secret_function</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-gnutls.html#gnutls-alert-read-func" title="gnutls_alert_read_func ()">*gnutls_alert_read_func</a><span class="c_punctuation">)</span> <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-gnutls.html#gnutls-alert-set-read-function" title="gnutls_alert_set_read_function ()">gnutls_alert_set_read_function</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-gnutls.html#gnutls-fips140-mode-enabled" title="gnutls_fips140_mode_enabled ()">gnutls_fips140_mode_enabled</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-gnutls.html#gnutls-fips140-set-mode" title="gnutls_fips140_set_mode ()">gnutls_fips140_set_mode</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-LAX-MODE:CAPS" title="GNUTLS_FIPS140_SET_LAX_MODE">GNUTLS_FIPS140_SET_LAX_MODE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-STRICT-MODE:CAPS" title="GNUTLS_FIPS140_SET_STRICT_MODE">GNUTLS_FIPS140_SET_STRICT_MODE</a></td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">int</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-init" title="gnutls_fips140_context_init ()">gnutls_fips140_context_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-gnutls.html#gnutls-fips140-context-deinit" title="gnutls_fips140_context_deinit ()">gnutls_fips140_context_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-operation-state-t" title="enum gnutls_fips140_operation_state_t"><span class="returnvalue">gnutls_fips140_operation_state_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-get-operation-state" title="gnutls_fips140_get_operation_state ()">gnutls_fips140_get_operation_state</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-gnutls.html#gnutls-fips140-push-context" title="gnutls_fips140_push_context ()">gnutls_fips140_push_context</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-gnutls.html#gnutls-fips140-pop-context" title="gnutls_fips140_pop_context ()">gnutls_fips140_pop_context</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-gnutls.html#gnutls-fips140-run-self-tests" title="gnutls_fips140_run_self_tests ()">gnutls_fips140_run_self_tests</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-gnutls.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-gnutls.html#GNUTLS-VERSION:CAPS" title="GNUTLS_VERSION">GNUTLS_VERSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-MAJOR:CAPS" title="GNUTLS_VERSION_MAJOR">GNUTLS_VERSION_MAJOR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-MINOR:CAPS" title="GNUTLS_VERSION_MINOR">GNUTLS_VERSION_MINOR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-PATCH:CAPS" title="GNUTLS_VERSION_PATCH">GNUTLS_VERSION_PATCH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION-NUMBER:CAPS" title="GNUTLS_VERSION_NUMBER">GNUTLS_VERSION_NUMBER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_128_CBC">GNUTLS_CIPHER_RIJNDAEL_128_CBC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_256_CBC">GNUTLS_CIPHER_RIJNDAEL_256_CBC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS" title="GNUTLS_CIPHER_RIJNDAEL_CBC">GNUTLS_CIPHER_RIJNDAEL_CBC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR:CAPS" title="GNUTLS_CIPHER_ARCFOUR">GNUTLS_CIPHER_ARCFOUR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-SKIP-GLOBAL-INIT:CAPS" title="GNUTLS_SKIP_GLOBAL_INIT">GNUTLS_SKIP_GLOBAL_INIT</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t">gnutls_cipher_algorithm_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t">gnutls_kx_algorithm_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-params-type-t" title="enum gnutls_params_type_t">gnutls_params_type_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t">gnutls_credentials_type_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-MAC-SHA:CAPS" title="GNUTLS_MAC_SHA">GNUTLS_MAC_SHA</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA:CAPS" title="GNUTLS_DIG_SHA">GNUTLS_DIG_SHA</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t">gnutls_mac_algorithm_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t">gnutls_digest_algorithm_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-ALGORITHM-NUM:CAPS" title="GNUTLS_MAX_ALGORITHM_NUM">GNUTLS_MAX_ALGORITHM_NUM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID-SIZE:CAPS" title="GNUTLS_MAX_SESSION_ID_SIZE">GNUTLS_MAX_SESSION_ID_SIZE</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t">gnutls_compression_method_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-init-flags-t" title="enum gnutls_init_flags_t">gnutls_init_flags_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-SERVER:CAPS">GNUTLS_SERVER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-CLIENT:CAPS">GNUTLS_CLIENT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-DATAGRAM:CAPS">GNUTLS_DATAGRAM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-NONBLOCK:CAPS">GNUTLS_NONBLOCK</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-NO-EXTENSIONS:CAPS">GNUTLS_NO_EXTENSIONS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-NO-REPLAY-PROTECTION:CAPS">GNUTLS_NO_REPLAY_PROTECTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-NO-SIGNAL:CAPS">GNUTLS_NO_SIGNAL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-ALLOW-ID-CHANGE:CAPS">GNUTLS_ALLOW_ID_CHANGE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-ENABLE-FALSE-START:CAPS">GNUTLS_ENABLE_FALSE_START</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-FORCE-CLIENT-CERT:CAPS">GNUTLS_FORCE_CLIENT_CERT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-NO-TICKETS:CAPS">GNUTLS_NO_TICKETS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-ENABLE-CERT-TYPE-NEG:CAPS" title="GNUTLS_ENABLE_CERT_TYPE_NEG">GNUTLS_ENABLE_CERT_TYPE_NEG</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-alert-level-t" title="enum gnutls_alert_level_t">gnutls_alert_level_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t">gnutls_alert_description_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t">gnutls_handshake_description_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HANDSHAKE-ANY:CAPS" title="GNUTLS_HANDSHAKE_ANY">GNUTLS_HANDSHAKE_ANY</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t">gnutls_certificate_status_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-request-t" title="enum gnutls_certificate_request_t">gnutls_certificate_request_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-status-t" title="enum gnutls_openpgp_crt_status_t">gnutls_openpgp_crt_status_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-close-request-t" title="enum gnutls_close_request_t">gnutls_close_request_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t">gnutls_protocol_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-RAW:CAPS" title="GNUTLS_CRT_RAW">GNUTLS_CRT_RAW</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t">gnutls_certificate_type_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t">gnutls_x509_crt_fmt_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t">gnutls_certificate_print_formats_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PK-ECC:CAPS" title="GNUTLS_PK_ECC">GNUTLS_PK_ECC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PK-EC:CAPS" title="GNUTLS_PK_EC">GNUTLS_PK_EC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PK-ECDHX:CAPS" title="GNUTLS_PK_ECDHX">GNUTLS_PK_ECDHX</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t">gnutls_pk_algorithm_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t">gnutls_sign_algorithm_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t">gnutls_ecc_curve_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-group-t" title="enum gnutls_group_t">gnutls_group_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t">gnutls_sec_param_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-SEC-PARAM-NORMAL:CAPS" title="GNUTLS_SEC_PARAM_NORMAL">GNUTLS_SEC_PARAM_NORMAL</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-channel-binding-t" title="enum gnutls_channel_binding_t">gnutls_channel_binding_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t">gnutls_gost_paramset_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-ctype-target-t" title="enum gnutls_ctype_target_t">gnutls_ctype_target_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t">gnutls_transport_ptr_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t">gnutls_session_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t">gnutls_dh_params_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-rsa-params-t" title="gnutls_rsa_params_t">gnutls_rsa_params_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t">gnutls_priority_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t">gnutls_datum_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-library-config-st" title="gnutls_library_config_st">gnutls_library_config_st</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-params-st" title="gnutls_params_st">gnutls_params_st</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-DEFAULT-HANDSHAKE-TIMEOUT:CAPS" title="GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT">GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-INDEFINITE-TIMEOUT:CAPS" title="GNUTLS_INDEFINITE_TIMEOUT">GNUTLS_INDEFINITE_TIMEOUT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KU-PEER:CAPS" title="GNUTLS_KU_PEER">GNUTLS_KU_PEER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HEARTBEAT-WAIT:CAPS" title="GNUTLS_HEARTBEAT_WAIT">GNUTLS_HEARTBEAT_WAIT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-RECORD-WAIT:CAPS" title="GNUTLS_RECORD_WAIT">GNUTLS_RECORD_WAIT</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-range-st" title="gnutls_range_st">gnutls_range_st</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-packet-t" title="gnutls_packet_t">gnutls_packet_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-read" title="gnutls_read">gnutls_read</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-write" title="gnutls_write">gnutls_write</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-server-name-type-t" title="enum gnutls_server_name_type_t">gnutls_server_name_type_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HB-PEER-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_PEER_ALLOWED_TO_SEND">GNUTLS_HB_PEER_ALLOWED_TO_SEND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HB-PEER-NOT-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND">GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HB-LOCAL-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_LOCAL_ALLOWED_TO_SEND">GNUTLS_HB_LOCAL_ALLOWED_TO_SEND</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-session-flags-t" title="enum gnutls_session_flags_t">gnutls_session_flags_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t">gnutls_supplemental_data_format_type_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-srtp-profile-t" title="enum gnutls_srtp_profile_t">gnutls_srtp_profile_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-alpn-flags-t" title="enum gnutls_alpn_flags_t">gnutls_alpn_flags_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-ALPN-MAND:CAPS" title="GNUTLS_ALPN_MAND">GNUTLS_ALPN_MAND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-INIT-DEF-APPEND:CAPS" title="GNUTLS_PRIORITY_INIT_DEF_APPEND">GNUTLS_PRIORITY_INIT_DEF_APPEND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-LIST-INIT-KEYWORDS:CAPS" title="GNUTLS_PRIORITY_LIST_INIT_KEYWORDS">GNUTLS_PRIORITY_LIST_INIT_KEYWORDS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-LIST-SPECIAL:CAPS" title="GNUTLS_PRIORITY_LIST_SPECIAL">GNUTLS_PRIORITY_LIST_SPECIAL</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-vdata-types-t" title="enum gnutls_vdata_types_t">gnutls_vdata_types_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-typed-vdata-st" title="gnutls_typed_vdata_st">gnutls_typed_vdata_st</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID:CAPS" title="GNUTLS_MAX_SESSION_ID">GNUTLS_MAX_SESSION_ID</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-POST:CAPS" title="GNUTLS_HOOK_POST">GNUTLS_HOOK_POST</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-PRE:CAPS" title="GNUTLS_HOOK_PRE">GNUTLS_HOOK_PRE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-BOTH:CAPS" title="GNUTLS_HOOK_BOTH">GNUTLS_HOOK_BOTH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func" title="gnutls_handshake_post_client_hello_func">gnutls_handshake_post_client_hello_func</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-cred-set" title="gnutls_cred_set">gnutls_cred_set</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pubkey-t" title="gnutls_pubkey_t">gnutls_pubkey_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-privkey-t" title="gnutls_privkey_t">gnutls_privkey_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-t" title="gnutls_x509_privkey_t">gnutls_x509_privkey_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t">gnutls_x509_crl_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t">gnutls_x509_crt_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t">gnutls_x509_crq_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t">gnutls_openpgp_keyring_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-flags" title="enum gnutls_certificate_flags">gnutls_certificate_flags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-ocsp-data-st" title="gnutls_ocsp_data_st">gnutls_ocsp_data_st</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t">giovec_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-random-art-t" title="enum gnutls_random_art_t">gnutls_random_art_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-IDNA-FORCE-2008:CAPS" title="GNUTLS_IDNA_FORCE_2008">GNUTLS_IDNA_FORCE_2008</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-encode-alloc" title="gnutls_srp_base64_encode_alloc">gnutls_srp_base64_encode_alloc</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-srp-base64-decode-alloc" title="gnutls_srp_base64_decode_alloc">gnutls_srp_base64_decode_alloc</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags">gnutls_psk_key_flags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t">gnutls_x509_subject_alt_name_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t">gnutls_openpgp_crt_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t">gnutls_openpgp_privkey_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-t" title="gnutls_pkcs11_privkey_t">gnutls_pkcs11_privkey_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-privkey-type-t" title="enum gnutls_privkey_type_t">gnutls_privkey_type_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-retr2-st" title="gnutls_retr2_st">gnutls_retr2_st</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc" title="gnutls_pem_base64_encode_alloc">gnutls_pem_base64_encode_alloc</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc" title="gnutls_pem_base64_decode_alloc">gnutls_pem_base64_decode_alloc</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE">GNUTLS_KEY_DIGITAL_SIGNATURE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION">GNUTLS_KEY_NON_REPUDIATION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT">GNUTLS_KEY_KEY_ENCIPHERMENT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_DATA_ENCIPHERMENT">GNUTLS_KEY_DATA_ENCIPHERMENT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS" title="GNUTLS_KEY_KEY_AGREEMENT">GNUTLS_KEY_KEY_AGREEMENT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS" title="GNUTLS_KEY_KEY_CERT_SIGN">GNUTLS_KEY_KEY_CERT_SIGN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN">GNUTLS_KEY_CRL_SIGN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY">GNUTLS_KEY_ENCIPHER_ONLY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY">GNUTLS_KEY_DECIPHER_ONLY</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t">gnutls_tdb_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-SCOMMIT-FLAG-ALLOW-BROKEN:CAPS" title="GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN">GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pin-flag-t" title="enum gnutls_pin_flag_t">gnutls_pin_flag_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-USER:CAPS" title="GNUTLS_PKCS11_PIN_USER">GNUTLS_PKCS11_PIN_USER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-SO:CAPS" title="GNUTLS_PKCS11_PIN_SO">GNUTLS_PKCS11_PIN_SO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-FINAL-TRY:CAPS" title="GNUTLS_PKCS11_PIN_FINAL_TRY">GNUTLS_PKCS11_PIN_FINAL_TRY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-COUNT-LOW:CAPS" title="GNUTLS_PKCS11_PIN_COUNT_LOW">GNUTLS_PKCS11_PIN_COUNT_LOW</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-CONTEXT-SPECIFIC:CAPS" title="GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC">GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-WRONG:CAPS" title="GNUTLS_PKCS11_PIN_WRONG">GNUTLS_PKCS11_PIN_WRONG</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-buffer-t" title="gnutls_buffer_t">gnutls_buffer_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-UTF8-IGNORE-ERRS:CAPS" title="GNUTLS_UTF8_IGNORE_ERRS">GNUTLS_UTF8_IGNORE_ERRS</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-ext-priv-data-t" title="gnutls_ext_priv_data_t">gnutls_ext_priv_data_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-TLS-CLIENT-HELLO:CAPS" title="GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO">GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-DTLS-CLIENT-HELLO:CAPS" title="GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO">GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-ext-parse-type-t" title="enum gnutls_ext_parse_type_t">gnutls_ext_parse_type_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-ext-flags-t" title="enum gnutls_ext_flags_t">gnutls_ext_flags_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t">gnutls_anti_replay_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t">gnutls_record_encryption_level_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-fips-mode-t" title="enum gnutls_fips_mode_t">gnutls_fips_mode_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-MODE-THREAD:CAPS" title="GNUTLS_FIPS140_SET_MODE_THREAD">GNUTLS_FIPS140_SET_MODE_THREAD</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t">gnutls_fips140_context_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-fips140-operation-state-t" title="enum gnutls_fips140_operation_state_t">gnutls_fips140_operation_state_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS">GNUTLS_E_SUCCESS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM">GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE">GNUTLS_E_UNKNOWN_CIPHER_TYPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET">GNUTLS_E_LARGE_PACKET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS" title="GNUTLS_E_UNSUPPORTED_VERSION_PACKET">GNUTLS_E_UNSUPPORTED_VERSION_PACKET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TLS-PACKET-DECODING-ERROR:CAPS" title="GNUTLS_E_TLS_PACKET_DECODING_ERROR">GNUTLS_E_TLS_PACKET_DECODING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS" title="GNUTLS_E_UNEXPECTED_PACKET_LENGTH">GNUTLS_E_UNEXPECTED_PACKET_LENGTH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-SESSION:CAPS" title="GNUTLS_E_INVALID_SESSION">GNUTLS_E_INVALID_SESSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS" title="GNUTLS_E_FATAL_ALERT_RECEIVED">GNUTLS_E_FATAL_ALERT_RECEIVED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET:CAPS" title="GNUTLS_E_UNEXPECTED_PACKET">GNUTLS_E_UNEXPECTED_PACKET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS" title="GNUTLS_E_WARNING_ALERT_RECEIVED">GNUTLS_E_WARNING_ALERT_RECEIVED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS" title="GNUTLS_E_ERROR_IN_FINISHED_PACKET">GNUTLS_E_ERROR_IN_FINISHED_PACKET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS" title="GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET">GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_SUITE">GNUTLS_E_UNKNOWN_CIPHER_SUITE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNWANTED-ALGORITHM:CAPS" title="GNUTLS_E_UNWANTED_ALGORITHM">GNUTLS_E_UNWANTED_ALGORITHM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-MPI-SCAN-FAILED:CAPS" title="GNUTLS_E_MPI_SCAN_FAILED">GNUTLS_E_MPI_SCAN_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_DECRYPTION_FAILED">GNUTLS_E_DECRYPTION_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-MEMORY-ERROR:CAPS" title="GNUTLS_E_MEMORY_ERROR">GNUTLS_E_MEMORY_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECOMPRESSION-FAILED:CAPS" title="GNUTLS_E_DECOMPRESSION_FAILED">GNUTLS_E_DECOMPRESSION_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-COMPRESSION-FAILED:CAPS" title="GNUTLS_E_COMPRESSION_FAILED">GNUTLS_E_COMPRESSION_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN">GNUTLS_E_AGAIN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED">GNUTLS_E_EXPIRED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-DB-ERROR:CAPS" title="GNUTLS_E_DB_ERROR">GNUTLS_E_DB_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-ERROR:CAPS" title="GNUTLS_E_SRP_PWD_ERROR">GNUTLS_E_SRP_PWD_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEYFILE-ERROR:CAPS" title="GNUTLS_E_KEYFILE_ERROR">GNUTLS_E_KEYFILE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS" title="GNUTLS_E_INSUFFICIENT_CREDENTIALS">GNUTLS_E_INSUFFICIENT_CREDENTIALS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS" title="GNUTLS_E_INSUFICIENT_CREDENTIALS">GNUTLS_E_INSUFICIENT_CREDENTIALS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CRED:CAPS" title="GNUTLS_E_INSUFFICIENT_CRED">GNUTLS_E_INSUFFICIENT_CRED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CRED:CAPS" title="GNUTLS_E_INSUFICIENT_CRED">GNUTLS_E_INSUFICIENT_CRED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-HASH-FAILED:CAPS" title="GNUTLS_E_HASH_FAILED">GNUTLS_E_HASH_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-DECODING-ERROR:CAPS" title="GNUTLS_E_BASE64_DECODING_ERROR">GNUTLS_E_BASE64_DECODING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-MPI-PRINT-FAILED:CAPS" title="GNUTLS_E_MPI_PRINT_FAILED">GNUTLS_E_MPI_PRINT_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE">GNUTLS_E_REHANDSHAKE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS" title="GNUTLS_E_GOT_APPLICATION_DATA">GNUTLS_E_GOT_APPLICATION_DATA</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECORD-LIMIT-REACHED:CAPS" title="GNUTLS_E_RECORD_LIMIT_REACHED">GNUTLS_E_RECORD_LIMIT_REACHED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ENCRYPTION-FAILED:CAPS" title="GNUTLS_E_ENCRYPTION_FAILED">GNUTLS_E_ENCRYPTION_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS" title="GNUTLS_E_PK_ENCRYPTION_FAILED">GNUTLS_E_PK_ENCRYPTION_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_PK_DECRYPTION_FAILED">GNUTLS_E_PK_DECRYPTION_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIGN-FAILED:CAPS" title="GNUTLS_E_PK_SIGN_FAILED">GNUTLS_E_PK_SIGN_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION">GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEY-USAGE-VIOLATION:CAPS" title="GNUTLS_E_KEY_USAGE_VIOLATION">GNUTLS_E_KEY_USAGE_VIOLATION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS" title="GNUTLS_E_NO_CERTIFICATE_FOUND">GNUTLS_E_NO_CERTIFICATE_FOUND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST">GNUTLS_E_INVALID_REQUEST</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER">GNUTLS_E_SHORT_MEMORY_BUFFER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED">GNUTLS_E_INTERRUPTED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PUSH-ERROR:CAPS" title="GNUTLS_E_PUSH_ERROR">GNUTLS_E_PUSH_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PULL-ERROR:CAPS" title="GNUTLS_E_PULL_ERROR">GNUTLS_E_PULL_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS" title="GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER">GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS1-WRONG-PAD:CAPS" title="GNUTLS_E_PKCS1_WRONG_PAD">GNUTLS_E_PKCS1_WRONG_PAD</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS" title="GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION">GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERNAL-ERROR:CAPS" title="GNUTLS_E_INTERNAL_ERROR">GNUTLS_E_INTERNAL_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS" title="GNUTLS_E_DH_PRIME_UNACCEPTABLE">GNUTLS_E_DH_PRIME_UNACCEPTABLE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-FILE-ERROR:CAPS" title="GNUTLS_E_FILE_ERROR">GNUTLS_E_FILE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS" title="GNUTLS_E_TOO_MANY_EMPTY_PACKETS">GNUTLS_E_TOO_MANY_EMPTY_PACKETS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_PK_ALGORITHM">GNUTLS_E_UNKNOWN_PK_ALGORITHM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-HANDSHAKE-PACKETS:CAPS" title="GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS">GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-DISALLOWED-NAME:CAPS" title="GNUTLS_E_RECEIVED_DISALLOWED_NAME">GNUTLS_E_RECEIVED_DISALLOWED_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-REQUIRED:CAPS" title="GNUTLS_E_CERTIFICATE_REQUIRED">GNUTLS_E_CERTIFICATE_REQUIRED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS" title="GNUTLS_E_NO_TEMPORARY_RSA_PARAMS">GNUTLS_E_NO_TEMPORARY_RSA_PARAMS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS" title="GNUTLS_E_NO_COMPRESSION_ALGORITHMS">GNUTLS_E_NO_COMPRESSION_ALGORITHMS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CIPHER-SUITES:CAPS" title="GNUTLS_E_NO_CIPHER_SUITES">GNUTLS_E_NO_CIPHER_SUITES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS" title="GNUTLS_E_OPENPGP_GETKEY_FAILED">GNUTLS_E_OPENPGP_GETKEY_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED">GNUTLS_E_PK_SIG_VERIFY_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS" title="GNUTLS_E_ILLEGAL_SRP_USERNAME">GNUTLS_E_ILLEGAL_SRP_USERNAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS" title="GNUTLS_E_SRP_PWD_PARSING_ERROR">GNUTLS_E_SRP_PWD_PARSING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEYFILE-PARSING-ERROR:CAPS" title="GNUTLS_E_KEYFILE_PARSING_ERROR">GNUTLS_E_KEYFILE_PARSING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS" title="GNUTLS_E_NO_TEMPORARY_DH_PARAMS">GNUTLS_E_NO_TEMPORARY_DH_PARAMS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_ELEMENT_NOT_FOUND">GNUTLS_E_ASN1_ELEMENT_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND">GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-ERROR:CAPS" title="GNUTLS_E_ASN1_DER_ERROR">GNUTLS_E_ASN1_DER_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_FOUND">GNUTLS_E_ASN1_VALUE_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-GENERIC-ERROR:CAPS" title="GNUTLS_E_ASN1_GENERIC_ERROR">GNUTLS_E_ASN1_GENERIC_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_VALID">GNUTLS_E_ASN1_VALUE_NOT_VALID</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-ERROR:CAPS" title="GNUTLS_E_ASN1_TAG_ERROR">GNUTLS_E_ASN1_TAG_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS" title="GNUTLS_E_ASN1_TAG_IMPLICIT">GNUTLS_E_ASN1_TAG_IMPLICIT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS" title="GNUTLS_E_ASN1_TYPE_ANY_ERROR">GNUTLS_E_ASN1_TYPE_ANY_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS" title="GNUTLS_E_ASN1_SYNTAX_ERROR">GNUTLS_E_ASN1_SYNTAX_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-OVERFLOW:CAPS" title="GNUTLS_E_ASN1_DER_OVERFLOW">GNUTLS_E_ASN1_DER_OVERFLOW</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-UID-REVOKED:CAPS" title="GNUTLS_E_OPENPGP_UID_REVOKED">GNUTLS_E_OPENPGP_UID_REVOKED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_ERROR">GNUTLS_E_CERTIFICATE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS" title="GNUTLS_E_X509_CERTIFICATE_ERROR">GNUTLS_E_X509_CERTIFICATE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS" title="GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE">GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNKNOWN-SAN:CAPS" title="GNUTLS_E_X509_UNKNOWN_SAN">GNUTLS_E_X509_UNKNOWN_SAN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS" title="GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED">GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE">GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_HASH_ALGORITHM">GNUTLS_E_UNKNOWN_HASH_ALGORITHM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE">GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE">GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD:CAPS" title="GNUTLS_E_INVALID_PASSWORD">GNUTLS_E_INVALID_PASSWORD</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-MAC-VERIFY-FAILED:CAPS" title="GNUTLS_E_MAC_VERIFY_FAILED">GNUTLS_E_MAC_VERIFY_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CONSTRAINT-ERROR:CAPS" title="GNUTLS_E_CONSTRAINT_ERROR">GNUTLS_E_CONSTRAINT_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_IPHF_RECEIVED">GNUTLS_E_WARNING_IA_IPHF_RECEIVED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS" title="GNUTLS_E_WARNING_IA_FPHF_RECEIVED">GNUTLS_E_WARNING_IA_FPHF_RECEIVED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-IA-VERIFY-FAILED:CAPS" title="GNUTLS_E_IA_VERIFY_FAILED">GNUTLS_E_IA_VERIFY_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_ALGORITHM">GNUTLS_E_UNKNOWN_ALGORITHM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS" title="GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM">GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS" title="GNUTLS_E_SAFE_RENEGOTIATION_FAILED">GNUTLS_E_SAFE_RENEGOTIATION_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS" title="GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED">GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS" title="GNUTLS_E_UNKNOWN_SRP_USERNAME">GNUTLS_E_UNKNOWN_SRP_USERNAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PREMATURE-TERMINATION:CAPS" title="GNUTLS_E_PREMATURE_TERMINATION">GNUTLS_E_PREMATURE_TERMINATION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-MALFORMED-CIDR:CAPS" title="GNUTLS_E_MALFORMED_CIDR">GNUTLS_E_MALFORMED_CIDR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-ENCODING-ERROR:CAPS" title="GNUTLS_E_BASE64_ENCODING_ERROR">GNUTLS_E_BASE64_ENCODING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY">GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY">GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS" title="GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY">GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS" title="GNUTLS_E_OPENPGP_KEYRING_ERROR">GNUTLS_E_OPENPGP_KEYRING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-OID:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_OID">GNUTLS_E_X509_UNSUPPORTED_OID</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-RANDOM-FAILED:CAPS" title="GNUTLS_E_RANDOM_FAILED">GNUTLS_E_RANDOM_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS" title="GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR">GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS" title="GNUTLS_E_OPENPGP_SUBKEY_ERROR">GNUTLS_E_OPENPGP_SUBKEY_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_CRYPTO_ALREADY_REGISTERED">GNUTLS_E_CRYPTO_ALREADY_REGISTERED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_ALREADY_REGISTERED">GNUTLS_E_ALREADY_REGISTERED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS" title="GNUTLS_E_HANDSHAKE_TOO_LARGE">GNUTLS_E_HANDSHAKE_TOO_LARGE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS" title="GNUTLS_E_CRYPTODEV_IOCTL_ERROR">GNUTLS_E_CRYPTODEV_IOCTL_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS" title="GNUTLS_E_CRYPTODEV_DEVICE_ERROR">GNUTLS_E_CRYPTODEV_DEVICE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CHANNEL-BINDING-NOT-AVAILABLE:CAPS" title="GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE">GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-BAD-COOKIE:CAPS" title="GNUTLS_E_BAD_COOKIE">GNUTLS_E_BAD_COOKIE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OPENPGP-PREFERRED-KEY-ERROR:CAPS" title="GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR">GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPAT-DSA-KEY-WITH-TLS-PROTOCOL:CAPS" title="GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL">GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-SECURITY:CAPS" title="GNUTLS_E_INSUFFICIENT_SECURITY">GNUTLS_E_INSUFFICIENT_SECURITY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-HEARTBEAT-PONG-RECEIVED:CAPS" title="GNUTLS_E_HEARTBEAT_PONG_RECEIVED">GNUTLS_E_HEARTBEAT_PONG_RECEIVED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-HEARTBEAT-PING-RECEIVED:CAPS" title="GNUTLS_E_HEARTBEAT_PING_RECEIVED">GNUTLS_E_HEARTBEAT_PING_RECEIVED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNRECOGNIZED-NAME:CAPS" title="GNUTLS_E_UNRECOGNIZED_NAME">GNUTLS_E_UNRECOGNIZED_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-ERROR:CAPS" title="GNUTLS_E_PKCS11_ERROR">GNUTLS_E_PKCS11_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-LOAD-ERROR:CAPS" title="GNUTLS_E_PKCS11_LOAD_ERROR">GNUTLS_E_PKCS11_LOAD_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR">GNUTLS_E_PARSING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-ERROR:CAPS" title="GNUTLS_E_PKCS11_PIN_ERROR">GNUTLS_E_PKCS11_PIN_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SLOT-ERROR:CAPS" title="GNUTLS_E_PKCS11_SLOT_ERROR">GNUTLS_E_PKCS11_SLOT_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-LOCKING-ERROR:CAPS" title="GNUTLS_E_LOCKING_ERROR">GNUTLS_E_LOCKING_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS" title="GNUTLS_E_PKCS11_ATTRIBUTE_ERROR">GNUTLS_E_PKCS11_ATTRIBUTE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS" title="GNUTLS_E_PKCS11_DEVICE_ERROR">GNUTLS_E_PKCS11_DEVICE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-DATA-ERROR:CAPS" title="GNUTLS_E_PKCS11_DATA_ERROR">GNUTLS_E_PKCS11_DATA_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS" title="GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR">GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-KEY-ERROR:CAPS" title="GNUTLS_E_PKCS11_KEY_ERROR">GNUTLS_E_PKCS11_KEY_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS" title="GNUTLS_E_PKCS11_PIN_EXPIRED">GNUTLS_E_PKCS11_PIN_EXPIRED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-LOCKED:CAPS" title="GNUTLS_E_PKCS11_PIN_LOCKED">GNUTLS_E_PKCS11_PIN_LOCKED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SESSION-ERROR:CAPS" title="GNUTLS_E_PKCS11_SESSION_ERROR">GNUTLS_E_PKCS11_SESSION_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS" title="GNUTLS_E_PKCS11_SIGNATURE_ERROR">GNUTLS_E_PKCS11_SIGNATURE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS" title="GNUTLS_E_PKCS11_TOKEN_ERROR">GNUTLS_E_PKCS11_TOKEN_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-USER-ERROR:CAPS" title="GNUTLS_E_PKCS11_USER_ERROR">GNUTLS_E_PKCS11_USER_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRYPTO-INIT-FAILED:CAPS" title="GNUTLS_E_CRYPTO_INIT_FAILED">GNUTLS_E_CRYPTO_INIT_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TIMEDOUT:CAPS" title="GNUTLS_E_TIMEDOUT">GNUTLS_E_TIMEDOUT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-USER-ERROR:CAPS" title="GNUTLS_E_USER_ERROR">GNUTLS_E_USER_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ECC-NO-SUPPORTED-CURVES:CAPS" title="GNUTLS_E_ECC_NO_SUPPORTED_CURVES">GNUTLS_E_ECC_NO_SUPPORTED_CURVES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ECC-UNSUPPORTED-CURVE:CAPS" title="GNUTLS_E_ECC_UNSUPPORTED_CURVE">GNUTLS_E_ECC_UNSUPPORTED_CURVE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PKCS11-REQUESTED-OBJECT-NOT-AVAILBLE:CAPS" title="GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE">GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-LIST-UNSORTED:CAPS" title="GNUTLS_E_CERTIFICATE_LIST_UNSORTED">GNUTLS_E_CERTIFICATE_LIST_UNSORTED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-PARAMETER:CAPS" title="GNUTLS_E_ILLEGAL_PARAMETER">GNUTLS_E_ILLEGAL_PARAMETER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-PRIORITIES-WERE-SET:CAPS" title="GNUTLS_E_NO_PRIORITIES_WERE_SET">GNUTLS_E_NO_PRIORITIES_WERE_SET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-EXTENSION:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_EXTENSION">GNUTLS_E_X509_UNSUPPORTED_EXTENSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SESSION-EOF:CAPS" title="GNUTLS_E_SESSION_EOF">GNUTLS_E_SESSION_EOF</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-ERROR:CAPS" title="GNUTLS_E_TPM_ERROR">GNUTLS_E_TPM_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-KEY-PASSWORD-ERROR:CAPS" title="GNUTLS_E_TPM_KEY_PASSWORD_ERROR">GNUTLS_E_TPM_KEY_PASSWORD_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-SRK-PASSWORD-ERROR:CAPS" title="GNUTLS_E_TPM_SRK_PASSWORD_ERROR">GNUTLS_E_TPM_SRK_PASSWORD_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-SESSION-ERROR:CAPS" title="GNUTLS_E_TPM_SESSION_ERROR">GNUTLS_E_TPM_SESSION_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-KEY-NOT-FOUND:CAPS" title="GNUTLS_E_TPM_KEY_NOT_FOUND">GNUTLS_E_TPM_KEY_NOT_FOUND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-UNINITIALIZED:CAPS" title="GNUTLS_E_TPM_UNINITIALIZED">GNUTLS_E_TPM_UNINITIALIZED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TPM-NO-LIB:CAPS" title="GNUTLS_E_TPM_NO_LIB">GNUTLS_E_TPM_NO_LIB</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-STATUS:CAPS" title="GNUTLS_E_NO_CERTIFICATE_STATUS">GNUTLS_E_NO_CERTIFICATE_STATUS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OCSP-RESPONSE-ERROR:CAPS" title="GNUTLS_E_OCSP_RESPONSE_ERROR">GNUTLS_E_OCSP_RESPONSE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-RANDOM-DEVICE-ERROR:CAPS" title="GNUTLS_E_RANDOM_DEVICE_ERROR">GNUTLS_E_RANDOM_DEVICE_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-AUTH-ERROR:CAPS" title="GNUTLS_E_AUTH_ERROR">GNUTLS_E_AUTH_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-APPLICATION-PROTOCOL:CAPS" title="GNUTLS_E_NO_APPLICATION_PROTOCOL">GNUTLS_E_NO_APPLICATION_PROTOCOL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SOCKETS-INIT-ERROR:CAPS" title="GNUTLS_E_SOCKETS_INIT_ERROR">GNUTLS_E_SOCKETS_INIT_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-KEY-IMPORT-FAILED:CAPS" title="GNUTLS_E_KEY_IMPORT_FAILED">GNUTLS_E_KEY_IMPORT_FAILED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INAPPROPRIATE-FALLBACK:CAPS" title="GNUTLS_E_INAPPROPRIATE_FALLBACK">GNUTLS_E_INAPPROPRIATE_FALLBACK</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR">GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PRIVKEY-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_PRIVKEY_VERIFICATION_ERROR">GNUTLS_E_PRIVKEY_VERIFICATION_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-EXTENSIONS-LENGTH:CAPS" title="GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH">GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-EMBEDDED-NULL-IN-STRING:CAPS" title="GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING">GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SELF-TEST-ERROR:CAPS" title="GNUTLS_E_SELF_TEST_ERROR">GNUTLS_E_SELF_TEST_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-SELF-TEST:CAPS" title="GNUTLS_E_NO_SELF_TEST">GNUTLS_E_NO_SELF_TEST</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-LIB-IN-ERROR-STATE:CAPS" title="GNUTLS_E_LIB_IN_ERROR_STATE">GNUTLS_E_LIB_IN_ERROR_STATE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-GENERATION-ERROR:CAPS" title="GNUTLS_E_PK_GENERATION_ERROR">GNUTLS_E_PK_GENERATION_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-IDNA-ERROR:CAPS" title="GNUTLS_E_IDNA_ERROR">GNUTLS_E_IDNA_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NEED-FALLBACK:CAPS" title="GNUTLS_E_NEED_FALLBACK">GNUTLS_E_NEED_FALLBACK</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-SESSION-USER-ID-CHANGED:CAPS" title="GNUTLS_E_SESSION_USER_ID_CHANGED">GNUTLS_E_SESSION_USER_ID_CHANGED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-DURING-FALSE-START:CAPS" title="GNUTLS_E_HANDSHAKE_DURING_FALSE_START">GNUTLS_E_HANDSHAKE_DURING_FALSE_START</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNAVAILABLE-DURING-HANDSHAKE:CAPS" title="GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE">GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PUBKEY:CAPS" title="GNUTLS_E_PK_INVALID_PUBKEY">GNUTLS_E_PK_INVALID_PUBKEY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PRIVKEY:CAPS" title="GNUTLS_E_PK_INVALID_PRIVKEY">GNUTLS_E_PK_INVALID_PRIVKEY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NOT-YET-ACTIVATED:CAPS" title="GNUTLS_E_NOT_YET_ACTIVATED">GNUTLS_E_NOT_YET_ACTIVATED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-STRING:CAPS" title="GNUTLS_E_INVALID_UTF8_STRING">GNUTLS_E_INVALID_UTF8_STRING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-EMBEDDED-DATA:CAPS" title="GNUTLS_E_NO_EMBEDDED_DATA">GNUTLS_E_NO_EMBEDDED_DATA</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-EMAIL:CAPS" title="GNUTLS_E_INVALID_UTF8_EMAIL">GNUTLS_E_INVALID_UTF8_EMAIL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD-STRING:CAPS" title="GNUTLS_E_INVALID_PASSWORD_STRING">GNUTLS_E_INVALID_PASSWORD_STRING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-TIME-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_TIME_ERROR">GNUTLS_E_CERTIFICATE_TIME_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECORD-OVERFLOW:CAPS" title="GNUTLS_E_RECORD_OVERFLOW">GNUTLS_E_RECORD_OVERFLOW</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-TIME-ERROR:CAPS" title="GNUTLS_E_ASN1_TIME_ERROR">GNUTLS_E_ASN1_TIME_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-SIG-WITH-KEY:CAPS" title="GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY">GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PUBKEY-PARAMS:CAPS" title="GNUTLS_E_PK_INVALID_PUBKEY_PARAMS">GNUTLS_E_PK_INVALID_PUBKEY_PARAMS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-NO-VALIDATION-PARAMS:CAPS" title="GNUTLS_E_PK_NO_VALIDATION_PARAMS">GNUTLS_E_PK_NO_VALIDATION_PARAMS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-OCSP-MISMATCH-WITH-CERTS:CAPS" title="GNUTLS_E_OCSP_MISMATCH_WITH_CERTS">GNUTLS_E_OCSP_MISMATCH_WITH_CERTS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-COMMON-KEY-SHARE:CAPS" title="GNUTLS_E_NO_COMMON_KEY_SHARE">GNUTLS_E_NO_COMMON_KEY_SHARE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-REAUTH-REQUEST:CAPS" title="GNUTLS_E_REAUTH_REQUEST">GNUTLS_E_REAUTH_REQUEST</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-MATCHES:CAPS" title="GNUTLS_E_TOO_MANY_MATCHES">GNUTLS_E_TOO_MANY_MATCHES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-CRL-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_CRL_VERIFICATION_ERROR">GNUTLS_E_CRL_VERIFICATION_ERROR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-MISSING-EXTENSION:CAPS" title="GNUTLS_E_MISSING_EXTENSION">GNUTLS_E_MISSING_EXTENSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-DB-ENTRY-EXISTS:CAPS" title="GNUTLS_E_DB_ENTRY_EXISTS">GNUTLS_E_DB_ENTRY_EXISTS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-EARLY-DATA-REJECTED:CAPS" title="GNUTLS_E_EARLY_DATA_REJECTED">GNUTLS_E_EARLY_DATA_REJECTED</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-DUPLICATE-EXTENSION:CAPS" title="GNUTLS_E_X509_DUPLICATE_EXTENSION">GNUTLS_E_X509_DUPLICATE_EXTENSION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE">GNUTLS_E_UNIMPLEMENTED_FEATURE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INT-RET-0:CAPS" title="GNUTLS_E_INT_RET_0">GNUTLS_E_INT_RET_0</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-INT-CHECK-AGAIN:CAPS" title="GNUTLS_E_INT_CHECK_AGAIN">GNUTLS_E_INT_CHECK_AGAIN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MAX:CAPS" title="GNUTLS_E_APPLICATION_ERROR_MAX">GNUTLS_E_APPLICATION_ERROR_MAX</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MIN:CAPS" title="GNUTLS_E_APPLICATION_ERROR_MIN">GNUTLS_E_APPLICATION_ERROR_MIN</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-credentials-st" title="struct gnutls_certificate_credentials_st">gnutls_certificate_credentials_st</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-int" title="struct gnutls_dh_params_int">gnutls_dh_params_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-int" title="struct gnutls_openpgp_crt_int">gnutls_openpgp_crt_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-int" title="struct gnutls_openpgp_keyring_int">gnutls_openpgp_keyring_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-int" title="struct gnutls_openpgp_privkey_int">gnutls_openpgp_privkey_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pkcs11-privkey-st" title="struct gnutls_pkcs11_privkey_st">gnutls_pkcs11_privkey_st</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-priority-st" title="struct gnutls_priority_st">gnutls_priority_st</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-privkey-st" title="struct gnutls_privkey_st">gnutls_privkey_st</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-pubkey-st" title="struct gnutls_pubkey_st">gnutls_pubkey_st</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-session-int" title="struct gnutls_session_int">gnutls_session_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-tdb-int" title="struct gnutls_tdb_int">gnutls_tdb_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-int" title="gnutls_x509_crl_int">gnutls_x509_crl_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-int" title="gnutls_x509_crq_int">gnutls_x509_crq_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-int" title="gnutls_x509_crt_int">gnutls_x509_crt_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-gnutls.html#gnutls-x509-privkey-int" title="gnutls_x509_privkey_int">gnutls_x509_privkey_int</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-gnutls.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-gnutls.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-pk-algorithm-get-name"></a><h3>gnutls_pk_algorithm_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_pk_algorithm_get_name (<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> algorithm</code></em>);</pre>
+<p>Convert a <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> value to a string.</p>
+<div class="refsect3">
+<a name="gnutls-pk-algorithm-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>algorithm</p></td>
+<td class="parameter_description"><p>is a pk algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pk-algorithm-get-name.returns"></a><h4>Returns</h4>
+<p> a string that contains the name of the specified public
+key algorithm, or <code class="literal">NULL</code>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CURVE-TO-BITS:CAPS"></a><h3>GNUTLS_CURVE_TO_BITS()</h3>
+<pre class="programlisting">#define GNUTLS_CURVE_TO_BITS(curve) (unsigned int)(((unsigned int)1&lt;&lt;31)|((unsigned int)(curve)))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-BITS-TO-CURVE:CAPS"></a><h3>GNUTLS_BITS_TO_CURVE()</h3>
+<pre class="programlisting">#define GNUTLS_BITS_TO_CURVE(bits) (((unsigned int)(bits)) &amp; 0x7FFFFFFF)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-BITS-ARE-CURVE:CAPS"></a><h3>GNUTLS_BITS_ARE_CURVE()</h3>
+<pre class="programlisting">#define GNUTLS_BITS_ARE_CURVE(bits) (((unsigned int)(bits)) &amp; 0x80000000)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-init"></a><h3>gnutls_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> *session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function initializes the provided session. Every
+session must be initialized before use, and must be deinitialized
+after used by calling <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()"><code class="function">gnutls_deinit()</code></a>.</p>
+<p><em class="parameter"><code>flags</code></em>
+ can be any combination of flags from <a class="link" href="gnutls-gnutls.html#gnutls-init-flags-t" title="enum gnutls_init_flags_t"><code class="literal">gnutls_init_flags_t</code></a>.</p>
+<p>Note that since version 3.1.2 this function enables some common
+TLS extensions such as session tickets and OCSP certificate status
+request in client side by default. To prevent that use the <a class="link" href="gnutls-gnutls.html#GNUTLS-NO-EXTENSIONS:CAPS"><code class="literal">GNUTLS_NO_EXTENSIONS</code></a>
+flag.</p>
+<div class="refsect3">
+<a name="gnutls-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>session</p></td>
+<td class="parameter_description"><p>is a pointer to a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>indicate if this session is to be used for server or client.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-init.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> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-deinit"></a><h3>gnutls_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function clears all buffers associated with the <em class="parameter"><code>session</code></em>
+.
+This function will also remove session data from the session
+database if the session was terminated abnormally.</p>
+<div class="refsect3">
+<a name="gnutls-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-bye"></a><h3>gnutls_bye ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_bye (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-close-request-t" title="enum gnutls_close_request_t"><span class="type">gnutls_close_request_t</span></a> how</code></em>);</pre>
+<p>Terminates the current TLS/SSL connection. The connection should
+have been initiated using <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a>. <em class="parameter"><code>how</code></em>
+ should be one
+of <a class="link" href="gnutls-gnutls.html#GNUTLS-SHUT-RDWR:CAPS"><code class="literal">GNUTLS_SHUT_RDWR</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SHUT-WR:CAPS"><code class="literal">GNUTLS_SHUT_WR</code></a>.</p>
+<p>In case of <a class="link" href="gnutls-gnutls.html#GNUTLS-SHUT-RDWR:CAPS"><code class="literal">GNUTLS_SHUT_RDWR</code></a> the TLS session gets
+terminated and further receives and sends will be disallowed. If
+the return value is zero you may continue using the underlying
+transport layer. <a class="link" href="gnutls-gnutls.html#GNUTLS-SHUT-RDWR:CAPS"><code class="literal">GNUTLS_SHUT_RDWR</code></a> sends an alert containing a close
+request and waits for the peer to reply with the same message.</p>
+<p>In case of <a class="link" href="gnutls-gnutls.html#GNUTLS-SHUT-WR:CAPS"><code class="literal">GNUTLS_SHUT_WR</code></a> the TLS session gets terminated
+and further sends will be disallowed. In order to reuse the
+connection you should wait for an EOF from the peer.
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SHUT-WR:CAPS"><code class="literal">GNUTLS_SHUT_WR</code></a> sends an alert containing a close request.</p>
+<p>Note that not all implementations will properly terminate a TLS
+connection. Some of them, usually for performance reasons, will
+terminate only the underlying transport layer, and thus not
+distinguishing between a malicious party prematurely terminating
+the connection and normal termination.</p>
+<p>This function may also return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> or
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a>; cf. <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-bye.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>how</p></td>
+<td class="parameter_description"><p>is an integer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-bye.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> on success, or an error code, see
+function documentation for entire semantics.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake"></a><h3>gnutls_handshake ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_handshake (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function performs the handshake of the TLS/SSL protocol, and
+initializes the TLS session parameters.</p>
+<p>The non-fatal errors expected by this function are:
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS" title="GNUTLS_E_WARNING_ALERT_RECEIVED"><code class="literal">GNUTLS_E_WARNING_ALERT_RECEIVED</code></a>. When this function is called
+for re-handshake under TLS 1.2 or earlier, the non-fatal error code
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS" title="GNUTLS_E_GOT_APPLICATION_DATA"><code class="literal">GNUTLS_E_GOT_APPLICATION_DATA</code></a> may also be returned.</p>
+<p>The former two interrupt the handshake procedure due to the transport
+layer being interrupted, and the latter because of a "warning" alert that
+was sent by the peer (it is always a good idea to check any
+received alerts). On these non-fatal errors call this function again,
+until it returns 0; cf. <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a> and
+<a class="link" href="gnutls-gnutls.html#gnutls-error-is-fatal" title="gnutls_error_is_fatal ()"><code class="function">gnutls_error_is_fatal()</code></a>. In DTLS sessions the non-fatal error
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET"><code class="literal">GNUTLS_E_LARGE_PACKET</code></a> is also possible, and indicates that
+the MTU should be adjusted.</p>
+<p>When this function is called by a server after a rehandshake request
+under TLS 1.2 or earlier the <a class="link" href="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS" title="GNUTLS_E_GOT_APPLICATION_DATA"><code class="literal">GNUTLS_E_GOT_APPLICATION_DATA</code></a> error code indicates
+that some data were pending prior to peer initiating the handshake.
+Under TLS 1.3 this function when called after a successful handshake, is a no-op
+and always succeeds in server side; in client side this function is
+equivalent to <a class="link" href="gnutls-gnutls.html#gnutls-session-key-update" title="gnutls_session_key_update ()"><code class="function">gnutls_session_key_update()</code></a> with <a class="link" href="gnutls-gnutls.html#GNUTLS-KU-PEER:CAPS" title="GNUTLS_KU_PEER"><code class="literal">GNUTLS_KU_PEER</code></a> flag.</p>
+<p>This function handles both full and abbreviated TLS handshakes (resumption).
+For abbreviated handshakes, in client side, the <code class="function">gnutls_session_set_data()</code>
+should be called prior to this function to set parameters from a previous session.
+In server side, resumption is handled by either setting a DB back-end, or setting
+up keys for session tickets.</p>
+<div class="refsect3">
+<a name="gnutls-handshake.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-handshake.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> on a successful handshake, otherwise a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-reauth"></a><h3>gnutls_reauth ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_reauth (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function performs the post-handshake authentication
+for TLS 1.3. The post-handshake authentication is initiated by the server
+by calling this function. Clients respond when <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REAUTH-REQUEST:CAPS" title="GNUTLS_E_REAUTH_REQUEST"><code class="literal">GNUTLS_E_REAUTH_REQUEST</code></a>
+has been seen while receiving data.</p>
+<p>The non-fatal errors expected by this function are:
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a>, as well as
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS" title="GNUTLS_E_GOT_APPLICATION_DATA"><code class="literal">GNUTLS_E_GOT_APPLICATION_DATA</code></a> when called on server side.</p>
+<p>The former two interrupt the authentication procedure due to the transport
+layer being interrupted, and the latter because there were pending data prior
+to peer initiating the re-authentication. The server should read/process that
+data as unauthenticated and retry calling <a class="link" href="gnutls-gnutls.html#gnutls-reauth" title="gnutls_reauth ()"><code class="function">gnutls_reauth()</code></a>.</p>
+<p>When this function is called under TLS1.2 or earlier or the peer didn't
+advertise post-handshake auth, it always fails with
+<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>. The verification of the received peers certificate
+is delegated to the session or credentials verification callbacks. A
+server can check whether post handshake authentication is supported
+by the client by checking the session flags with <a class="link" href="gnutls-gnutls.html#gnutls-session-get-flags" title="gnutls_session_get_flags ()"><code class="function">gnutls_session_get_flags()</code></a>.</p>
+<p>Prior to calling this function in server side, the function
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-server-set-request" title="gnutls_certificate_server_set_request ()"><code class="function">gnutls_certificate_server_set_request()</code></a> must be called setting expectations
+for the received certificate (request or require). If none are set
+this function will return with <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>.</p>
+<p>Note that post handshake authentication is available irrespective
+of the initial negotiation type (PSK or certificate). In all cases
+however, certificate credentials must be set to the session prior
+to calling this function.</p>
+<div class="refsect3">
+<a name="gnutls-reauth.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</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-reauth.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> on a successful authentication, otherwise a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-set-timeout"></a><h3>gnutls_handshake_set_timeout ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_handshake_set_timeout (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> ms</code></em>);</pre>
+<p>This function sets the timeout for the TLS handshake process
+to the provided value. Use an <em class="parameter"><code>ms</code></em>
+ value of zero to disable
+timeout, or <a class="link" href="gnutls-gnutls.html#GNUTLS-DEFAULT-HANDSHAKE-TIMEOUT:CAPS" title="GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT"><code class="literal">GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT</code></a> for a reasonable
+default value. For the DTLS protocol, the more detailed
+<a class="link" href="gnutls-dtls.html#gnutls-dtls-set-timeouts" title="gnutls_dtls_set_timeouts ()"><code class="function">gnutls_dtls_set_timeouts()</code></a> is provided.</p>
+<p>This function requires to set a pull timeout callback. See
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-timeout-function" title="gnutls_transport_set_pull_timeout_function ()"><code class="function">gnutls_transport_set_pull_timeout_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-set-timeout.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ms</p></td>
+<td class="parameter_description"><p>is a timeout value in milliseconds</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-rehandshake"></a><h3>gnutls_rehandshake ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_rehandshake (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function can only be called in server side, and
+instructs a TLS 1.2 or earlier client to renegotiate
+parameters (perform a handshake), by sending a
+hello request message.</p>
+<p>If this function succeeds, the calling application
+should call <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a> until <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE"><code class="literal">GNUTLS_E_REHANDSHAKE</code></a>
+is returned to clear any pending data. If the <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE"><code class="literal">GNUTLS_E_REHANDSHAKE</code></a>
+error code is not seen, then the handshake request was
+not followed by the peer (the TLS protocol does not require
+the client to do, and such compliance should be handled
+by the application protocol).</p>
+<p>Once the <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE"><code class="literal">GNUTLS_E_REHANDSHAKE</code></a> error code is seen, the
+calling application should proceed to calling
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a> to negotiate the new
+parameters.</p>
+<p>If the client does not wish to renegotiate parameters he
+may reply with an alert message, and in that case the return code seen
+by subsequent <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a> will be
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS" title="GNUTLS_E_WARNING_ALERT_RECEIVED"><code class="literal">GNUTLS_E_WARNING_ALERT_RECEIVED</code></a> with the specific alert being
+<a class="link" href="gnutls-gnutls.html#GNUTLS-A-NO-RENEGOTIATION:CAPS"><code class="literal">GNUTLS_A_NO_RENEGOTIATION</code></a>. A client may also choose to ignore
+this request.</p>
+<p>Under TLS 1.3 this function is equivalent to <a class="link" href="gnutls-gnutls.html#gnutls-session-key-update" title="gnutls_session_key_update ()"><code class="function">gnutls_session_key_update()</code></a>
+with the <a class="link" href="gnutls-gnutls.html#GNUTLS-KU-PEER:CAPS" title="GNUTLS_KU_PEER"><code class="literal">GNUTLS_KU_PEER</code></a> flag. In that case subsequent calls to
+<a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a> will not return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE"><code class="literal">GNUTLS_E_REHANDSHAKE</code></a>, and
+calls to <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a> in server side are a no-op.</p>
+<p>This function always fails with <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> when
+called in client side.</p>
+<div class="refsect3">
+<a name="gnutls-rehandshake.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-rehandshake.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> on success, otherwise a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-key-update"></a><h3>gnutls_session_key_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_key_update (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will update/refresh the session keys when the
+TLS protocol is 1.3 or better. The peer is notified of the
+update by sending a message, so this function should be
+treated similarly to <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a> --i.e., it may
+return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a>.</p>
+<p>When this flag <a class="link" href="gnutls-gnutls.html#GNUTLS-KU-PEER:CAPS" title="GNUTLS_KU_PEER"><code class="literal">GNUTLS_KU_PEER</code></a> is specified, this function
+in addition to updating the local keys, will ask the peer to
+refresh its keys too.</p>
+<p>If the negotiated version is not TLS 1.3 or better this
+function will return <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>.</p>
+<div class="refsect3">
+<a name="gnutls-session-key-update.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero of <a class="link" href="gnutls-gnutls.html#GNUTLS-KU-PEER:CAPS" title="GNUTLS_KU_PEER"><code class="literal">GNUTLS_KU_PEER</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-key-update.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-get"></a><h3>gnutls_alert_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="returnvalue">gnutls_alert_description_t</span></a>
+gnutls_alert_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the last alert number received. This
+function should be called when <a class="link" href="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS" title="GNUTLS_E_WARNING_ALERT_RECEIVED"><code class="literal">GNUTLS_E_WARNING_ALERT_RECEIVED</code></a> or
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS" title="GNUTLS_E_FATAL_ALERT_RECEIVED"><code class="literal">GNUTLS_E_FATAL_ALERT_RECEIVED</code></a> errors are returned by a gnutls
+function. The peer may send alerts if he encounters an error.
+If no alert has been received the returned value is undefined.</p>
+<div class="refsect3">
+<a name="gnutls-alert-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alert-get.returns"></a><h4>Returns</h4>
+<p> the last alert received, a
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-send"></a><h3>gnutls_alert_send ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_alert_send (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-level-t" title="enum gnutls_alert_level_t"><span class="type">gnutls_alert_level_t</span></a> level</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> desc</code></em>);</pre>
+<p>This function will send an alert to the peer in order to inform
+him of something important (eg. his Certificate could not be verified).
+If the alert level is Fatal then the peer is expected to close the
+connection, otherwise he may ignore the alert and continue.</p>
+<p>The error code of the underlying record send function will be
+returned, so you may also receive <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> as well.</p>
+<div class="refsect3">
+<a name="gnutls-alert-send.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>level</p></td>
+<td class="parameter_description"><p>is the level of the alert</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>desc</p></td>
+<td class="parameter_description"><p>is the alert description</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alert-send.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-send-appropriate"></a><h3>gnutls_alert_send_appropriate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_alert_send_appropriate (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> err</code></em>);</pre>
+<p>Sends an alert to the peer depending on the error code returned by
+a gnutls function. This function will call <code class="function">gnutls_error_to_alert()</code>
+to determine the appropriate alert to send.</p>
+<p>This function may also return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a>, or
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a>.</p>
+<p>This function historically was always sending an alert to the
+peer, even if <em class="parameter"><code>err</code></em>
+ was inappropriate to respond with an alert
+(e.g., <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a>). Since 3.6.6 this function returns
+success without transmitting any data on error codes that
+should not result to an alert.</p>
+<div class="refsect3">
+<a name="gnutls-alert-send-appropriate.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err</p></td>
+<td class="parameter_description"><p>is an error code returned by another GnuTLS function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alert-send-appropriate.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-get-name"></a><h3>gnutls_alert_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_alert_get_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> alert</code></em>);</pre>
+<p>This function will return a string that describes the given alert
+number, or <code class="literal">NULL</code>. See <a class="link" href="gnutls-gnutls.html#gnutls-alert-get" title="gnutls_alert_get ()"><code class="function">gnutls_alert_get()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-alert-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>alert</p></td>
+<td class="parameter_description"><p>is an alert number.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alert-get-name.returns"></a><h4>Returns</h4>
+<p> string corresponding to <a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-get-strname"></a><h3>gnutls_alert_get_strname ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_alert_get_strname (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> alert</code></em>);</pre>
+<p>This function will return a string of the name of the alert.</p>
+<div class="refsect3">
+<a name="gnutls-alert-get-strname.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>alert</p></td>
+<td class="parameter_description"><p>is an alert number.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alert-get-strname.returns"></a><h4>Returns</h4>
+<p> string corresponding to <a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> value.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pk-bits-to-sec-param"></a><h3>gnutls_pk_bits_to_sec_param ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>
+gnutls_pk_bits_to_sec_param (<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> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
+<p>This is the inverse of <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a>. Given an algorithm
+and the number of bits, it will return the security parameter. This is
+a rough indication.</p>
+<div class="refsect3">
+<a name="gnutls-pk-bits-to-sec-param.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>algo</p></td>
+<td class="parameter_description"><p>is a 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>is the number of bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pk-bits-to-sec-param.returns"></a><h4>Returns</h4>
+<p> The security parameter.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sec-param-get-name"></a><h3>gnutls_sec_param_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_sec_param_get_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);</pre>
+<p>Convert a <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> value to a string.</p>
+<div class="refsect3">
+<a name="gnutls-sec-param-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>param</p></td>
+<td class="parameter_description"><p>is a security parameter</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sec-param-get-name.returns"></a><h4>Returns</h4>
+<p> a pointer to a string that contains the name of the
+specified security level, or <code class="literal">NULL</code>.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sec-param-to-pk-bits"></a><h3>gnutls_sec_param_to_pk_bits ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_sec_param_to_pk_bits (<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> algo</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> param</code></em>);</pre>
+<p>When generating private and public key pairs a difficult question
+is which size of "bits" the modulus will be in RSA and the group size
+in DSA. The easy answer is 1024, which is also wrong. This function
+will convert a human understandable security parameter to an
+appropriate size for the specific algorithm.</p>
+<div class="refsect3">
+<a name="gnutls-sec-param-to-pk-bits.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>algo</p></td>
+<td class="parameter_description"><p>is a public key algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>param</p></td>
+<td class="parameter_description"><p>is a security parameter</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sec-param-to-pk-bits.returns"></a><h4>Returns</h4>
+<p> The number of bits, or (0).</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sec-param-to-symmetric-bits"></a><h3>gnutls_sec_param_to_symmetric_bits ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_sec_param_to_symmetric_bits ();</pre>
+<p>This function will return the number of bits that correspond to
+symmetric cipher strength for the given security parameter.</p>
+<div class="refsect3">
+<a name="gnutls-sec-param-to-symmetric-bits.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>algo</p></td>
+<td class="parameter_description"><p>is a public key algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>param</p></td>
+<td class="parameter_description"><p>is a security parameter</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sec-param-to-symmetric-bits.returns"></a><h4>Returns</h4>
+<p> The number of bits, or (0).</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-group-get"></a><h3>gnutls_group_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-group-t" title="enum gnutls_group_t"><span class="returnvalue">gnutls_group_t</span></a>
+gnutls_group_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Returns the currently used group for key exchange. Only valid
+when using an elliptic curve or DH ciphersuite.</p>
+<div class="refsect3">
+<a name="gnutls-group-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-group-get.returns"></a><h4>Returns</h4>
+<p> the currently used group, a <a class="link" href="gnutls-gnutls.html#gnutls-group-t" title="enum gnutls_group_t"><span class="type">gnutls_group_t</span></a>
+type.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-get"></a><h3>gnutls_cipher_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a>
+gnutls_cipher_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the currently used cipher.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-get.returns"></a><h4>Returns</h4>
+<p> the currently used cipher, a <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a>
+type.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-early-cipher-get"></a><h3>gnutls_early_cipher_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="returnvalue">gnutls_cipher_algorithm_t</span></a>
+gnutls_early_cipher_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the cipher algorithm used for encrypting early data.</p>
+<div class="refsect3">
+<a name="gnutls-early-cipher-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-early-cipher-get.returns"></a><h4>Returns</h4>
+<p> the cipher used for early data, a
+<a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> type.</p>
+</div>
+<p class="since">Since: 3.7.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-kx-get"></a><h3>gnutls_kx_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="returnvalue">gnutls_kx_algorithm_t</span></a>
+gnutls_kx_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the currently used key exchange algorithm.</p>
+<p>This function will return <a class="link" href="gnutls-gnutls.html#GNUTLS-KX-ECDHE-RSA:CAPS"><code class="literal">GNUTLS_KX_ECDHE_RSA</code></a>, or <a class="link" href="gnutls-gnutls.html#GNUTLS-KX-DHE-RSA:CAPS"><code class="literal">GNUTLS_KX_DHE_RSA</code></a>
+under TLS 1.3, to indicate an elliptic curve DH key exchange or
+a finite field one. The precise group used is available
+by calling <a class="link" href="gnutls-gnutls.html#gnutls-group-get" title="gnutls_group_get ()"><code class="function">gnutls_group_get()</code></a> instead.</p>
+<div class="refsect3">
+<a name="gnutls-kx-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-kx-get.returns"></a><h4>Returns</h4>
+<p> the key exchange algorithm used in the last handshake, a
+<a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-get"></a><h3>gnutls_mac_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="returnvalue">gnutls_mac_algorithm_t</span></a>
+gnutls_mac_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the currently used MAC algorithm.</p>
+<div class="refsect3">
+<a name="gnutls-mac-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-mac-get.returns"></a><h4>Returns</h4>
+<p> the currently used mac algorithm, a
+<a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-prf-hash-get"></a><h3>gnutls_prf_hash_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="returnvalue">gnutls_digest_algorithm_t</span></a>
+gnutls_prf_hash_get (<em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the currently used hash algorithm. In TLS 1.3, the hash
+algorithm is used for both the key derivation function and
+handshake message authentication code. In TLS 1.2, it matches the
+hash algorithm used for PRF.</p>
+<div class="refsect3">
+<a name="gnutls-prf-hash-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-prf-hash-get.returns"></a><h4>Returns</h4>
+<p> the currently used hash algorithm, a
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> value.</p>
+</div>
+<p class="since">Since: 3.6.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-early-prf-hash-get"></a><h3>gnutls_early_prf_hash_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="returnvalue">gnutls_digest_algorithm_t</span></a>
+gnutls_early_prf_hash_get (<em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the hash algorithm used as a PRF to derive keys for encrypting
+early data in TLS 1.3.</p>
+<div class="refsect3">
+<a name="gnutls-early-prf-hash-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-early-prf-hash-get.returns"></a><h4>Returns</h4>
+<p> the hash algorithm used for early data, a
+<a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> value.</p>
+</div>
+<p class="since">Since: 3.7.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-type-get"></a><h3>gnutls_certificate_type_get ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="returnvalue">gnutls_certificate_type_t</span></a>
+gnutls_certificate_type_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function returns the type of the certificate that is negotiated
+for this side to send to the peer. The certificate type is by default
+X.509, unless an alternative certificate type is enabled by
+<a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()"><code class="function">gnutls_init()</code></a> and negotiated during the session.</p>
+<p>Resumed sessions will return the certificate type that was negotiated
+and used in the original session.</p>
+<p>As of version 3.6.4 it is recommended to use
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get2" title="gnutls_certificate_type_get2 ()"><code class="function">gnutls_certificate_type_get2()</code></a> which is more fine-grained.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-type-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-type-get.returns"></a><h4>Returns</h4>
+<p> the currently used <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> certificate
+type as negotiated for 'our' side of the connection.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-type-get2"></a><h3>gnutls_certificate_type_get2 ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="returnvalue">gnutls_certificate_type_t</span></a>
+gnutls_certificate_type_get2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ctype-target-t" title="enum gnutls_ctype_target_t"><span class="type">gnutls_ctype_target_t</span></a> target</code></em>);</pre>
+<p>This function returns the type of the certificate that a side
+is negotiated to use. The certificate type is by default X.509,
+unless an alternative certificate type is enabled by <a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()"><code class="function">gnutls_init()</code></a> and
+negotiated during the session.</p>
+<p>The <em class="parameter"><code>target</code></em>
+ parameter specifies whether to request the negotiated
+certificate type for the client (<a class="link" href="gnutls-gnutls.html#GNUTLS-CTYPE-CLIENT:CAPS"><code class="literal">GNUTLS_CTYPE_CLIENT</code></a>),
+or for the server (<a class="link" href="gnutls-gnutls.html#GNUTLS-CTYPE-SERVER:CAPS"><code class="literal">GNUTLS_CTYPE_SERVER</code></a>). Additionally, in P2P mode
+connection set up where you don't know in advance who will be client
+and who will be server you can use the flag (<a class="link" href="gnutls-gnutls.html#GNUTLS-CTYPE-OURS:CAPS"><code class="literal">GNUTLS_CTYPE_OURS</code></a>) and
+(<a class="link" href="gnutls-gnutls.html#GNUTLS-CTYPE-PEERS:CAPS"><code class="literal">GNUTLS_CTYPE_PEERS</code></a>) to retrieve the corresponding certificate types.</p>
+<p>Resumed sessions will return the certificate type that was negotiated
+and used in the original session. That is, this function can be used
+to reliably determine the type of the certificate returned by
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()"><code class="function">gnutls_certificate_get_peers()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-type-get2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-ctype-target-t" title="enum gnutls_ctype_target_t"><span class="type">gnutls_ctype_target_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-type-get2.returns"></a><h4>Returns</h4>
+<p> the currently used <a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> certificate
+type for the client or the server.</p>
+</div>
+<p class="since">Since: 3.6.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sign-algorithm-get"></a><h3>gnutls_sign_algorithm_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_sign_algorithm_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Returns the signature algorithm that is (or will be) used in this
+session by the server to sign data. This function should be
+used only with TLS 1.2 or later.</p>
+<div class="refsect3">
+<a name="gnutls-sign-algorithm-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sign-algorithm-get.returns"></a><h4>Returns</h4>
+<p> The sign algorithm or <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+</div>
+<p class="since">Since: 3.1.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sign-algorithm-get-client"></a><h3>gnutls_sign_algorithm_get_client ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_sign_algorithm_get_client (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Returns the signature algorithm that is (or will be) used in this
+session by the client to sign data. This function should be
+used only with TLS 1.2 or later.</p>
+<div class="refsect3">
+<a name="gnutls-sign-algorithm-get-client.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sign-algorithm-get-client.returns"></a><h4>Returns</h4>
+<p> The sign algorithm or <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+</div>
+<p class="since">Since: 3.1.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sign-algorithm-get-requested"></a><h3>gnutls_sign_algorithm_get_requested ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_sign_algorithm_get_requested (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> indx</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> *algo</code></em>);</pre>
+<p>Returns the signature algorithm specified by index that was
+requested by the peer. If the specified index has no data available
+this function returns <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 negotiated TLS version does not support signature algorithms
+then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned even
+for the first index. The first index is 0.</p>
+<p>This function is useful in the certificate callback functions
+to assist in selecting the correct certificate.</p>
+<div class="refsect3">
+<a name="gnutls-sign-algorithm-get-requested.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>is an index of the signature algorithm to return</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>the returned certificate type will be stored there</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sign-algorithm-get-requested.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-get-name"></a><h3>gnutls_cipher_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_cipher_get_name ();</pre>
+<p>Convert a <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> type to a string.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-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>algorithm</p></td>
+<td class="parameter_description"><p>is an encryption algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-get-name.returns"></a><h4>Returns</h4>
+<p> a pointer to a string that contains the name of the
+specified cipher, or <code class="literal">NULL</code>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-oid-to-digest"></a><h3>gnutls_oid_to_digest ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="returnvalue">gnutls_digest_algorithm_t</span></a>
+gnutls_oid_to_digest ();</pre>
+<p>Converts a textual object identifier to a <a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> value.</p>
+<div class="refsect3">
+<a name="gnutls-oid-to-digest.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>oid</p></td>
+<td class="parameter_description"><p>is an object identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-oid-to-digest.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> id of the specified digest
+algorithm, or <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"><code class="literal">GNUTLS_DIG_UNKNOWN</code></a> on failure.</p>
+</div>
+<p class="since">Since: 3.4.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ecc-curve-set-enabled"></a><h3>gnutls_ecc_curve_set_enabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_ecc_curve_set_enabled (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> curve</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> enabled</code></em>);</pre>
+<p>Modify the previous system wide setting that marked <em class="parameter"><code>curve</code></em>
+ as
+enabled or disabled. Calling this fuction is allowed
+only if allowlisting mode is set in the configuration file,
+and only if the system-wide TLS priority string
+has not been initialized yet.
+The intended usage is to provide applications with a way
+to expressly deviate from the distribution or site defaults
+inherited from the configuration file.
+The modification is composable with further modifications
+performed through the priority string mechanism.</p>
+<p>This function is not thread-safe and is intended to be called
+in the main thread at the beginning of the process execution.</p>
+<div class="refsect3">
+<a name="gnutls-ecc-curve-set-enabled.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>curve</p></td>
+<td class="parameter_description"><p>is an ECC curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>enabled</p></td>
+<td class="parameter_description"><p>whether to enable the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ecc-curve-set-enabled.returns"></a><h4>Returns</h4>
+<p> 0 on success or negative error code otherwise.</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sign-set-secure"></a><h3>gnutls_sign_set_secure ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_sign_set_secure (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> sign</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> secure</code></em>);</pre>
+<p>Modify the previous system wide setting that marked <em class="parameter"><code>sign</code></em>
+ as secure
+or insecure. Calling this function is allowed
+only if allowlisting mode is set in the configuration file,
+and only if the system-wide TLS priority string
+has not been initialized yet.
+The intended usage is to provide applications with a way
+to expressly deviate from the distribution or site defaults
+inherited from the configuration file.
+The modification is composable with further modifications
+performed through the priority string mechanism.</p>
+<p>This function is not thread-safe and is intended to be called
+in the main thread at the beginning of the process execution.</p>
+<p>Even when <em class="parameter"><code>secure</code></em>
+ is true, <em class="parameter"><code>sign</code></em>
+ is not marked as secure for the
+use in certificates. Use <a class="link" href="gnutls-gnutls.html#gnutls-sign-set-secure-for-certs" title="gnutls_sign_set_secure_for_certs ()"><code class="function">gnutls_sign_set_secure_for_certs()</code></a> to
+mark it secure as well for certificates.</p>
+<div class="refsect3">
+<a name="gnutls-sign-set-secure.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>sign</p></td>
+<td class="parameter_description"><p>the sign algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secure</p></td>
+<td class="parameter_description"><p>whether to mark the sign algorithm secure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sign-set-secure.returns"></a><h4>Returns</h4>
+<p> 0 on success or negative error code otherwise.</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sign-set-secure-for-certs"></a><h3>gnutls_sign_set_secure_for_certs ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_sign_set_secure_for_certs (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> sign</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> secure</code></em>);</pre>
+<p>Modify the previous system wide setting that marked <em class="parameter"><code>sign</code></em>
+ as secure
+or insecure for the use in certificates. Calling this fuction is allowed
+only if allowlisting mode is set in the configuration file,
+and only if the system-wide TLS priority string
+has not been initialized yet.
+The intended usage is to provide applications with a way
+to expressly deviate from the distribution or site defaults
+inherited from the configuration file.
+The modification is composable with further modifications
+performed through the priority string mechanism.</p>
+<p>This function is not thread-safe and is intended to be called
+in the main thread at the beginning of the process execution.</p>
+<p>When <em class="parameter"><code>secure</code></em>
+ is true, <em class="parameter"><code>sign</code></em>
+ is marked as secure for any use unlike
+<a class="link" href="gnutls-gnutls.html#gnutls-sign-set-secure" title="gnutls_sign_set_secure ()"><code class="function">gnutls_sign_set_secure()</code></a>. Otherwise, it is marked as insecure only
+for the use in certificates. Use <a class="link" href="gnutls-gnutls.html#gnutls-sign-set-secure" title="gnutls_sign_set_secure ()"><code class="function">gnutls_sign_set_secure()</code></a> to mark
+it insecure for any uses.</p>
+<div class="refsect3">
+<a name="gnutls-sign-set-secure-for-certs.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>sign</p></td>
+<td class="parameter_description"><p>the sign algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secure</p></td>
+<td class="parameter_description"><p>whether to mark the sign algorithm secure for certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-sign-set-secure-for-certs.returns"></a><h4>Returns</h4>
+<p> 0 on success or negative error code otherwise.</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-set-secure"></a><h3>gnutls_digest_set_secure ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_digest_set_secure (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> secure</code></em>);</pre>
+<p>Modify the previous system wide setting that marked <em class="parameter"><code>dig</code></em>
+ as secure
+or insecure. This only has effect when the algorithm is enabled
+through the allowlisting mode in the configuration file, or when
+the setting is modified with a prior call to this function.</p>
+<div class="refsect3">
+<a name="gnutls-digest-set-secure.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>dig</p></td>
+<td class="parameter_description"><p>is a digest algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secure</p></td>
+<td class="parameter_description"><p>whether to mark the digest algorithm secure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-protocol-set-enabled"></a><h3>gnutls_protocol_set_enabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_protocol_set_enabled (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> version</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> enabled</code></em>);</pre>
+<p>Control the previous system-wide setting that marked <em class="parameter"><code>version</code></em>
+ as
+enabled or disabled. Calling this fuction is allowed
+only if allowlisting mode is set in the configuration file,
+and only if the system-wide TLS priority string
+has not been initialized yet.
+The intended usage is to provide applications with a way
+to expressly deviate from the distribution or site defaults
+inherited from the configuration file.
+The modification is composable with further modifications
+performed through the priority string mechanism.</p>
+<p>This function is not thread-safe and is intended to be called
+in the main thread at the beginning of the process execution.</p>
+<div class="refsect3">
+<a name="gnutls-protocol-set-enabled.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>version</p></td>
+<td class="parameter_description"><p>is a (gnutls) version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>enabled</p></td>
+<td class="parameter_description"><p>whether to enable the protocol</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-protocol-set-enabled.returns"></a><h4>Returns</h4>
+<p> 0 on success or negative error code otherwise.</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-error-is-fatal"></a><h3>gnutls_error_is_fatal ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_error_is_fatal ();</pre>
+<p>If a GnuTLS function returns a negative error code you may feed that
+value to this function to see if the error condition is fatal to
+a TLS session (i.e., must be terminated).</p>
+<p>Note that you may also want to check the error code manually, since some
+non-fatal errors to the protocol (such as a warning alert or
+a rehandshake request) may be fatal for your program.</p>
+<p>This function is only useful if you are dealing with errors from
+functions that relate to a TLS session (e.g., record layer or handshake
+layer handling functions).</p>
+<div class="refsect3">
+<a name="gnutls-error-is-fatal.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>error</p></td>
+<td class="parameter_description"><p>is a GnuTLS error code, a negative error code</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-error-is-fatal.returns"></a><h4>Returns</h4>
+<p> Non-zero value on fatal errors or zero on non-fatal.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-perror"></a><h3>gnutls_perror ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_perror (<em class="parameter"><code><span class="type">int</span> error</code></em>);</pre>
+<p>This function is like <code class="function">perror()</code>. The only difference is that it
+accepts an error number returned by a gnutls function.</p>
+<div class="refsect3">
+<a name="gnutls-perror.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>error</p></td>
+<td class="parameter_description"><p>is a GnuTLS error code, a negative error code</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-strerror"></a><h3>gnutls_strerror ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_strerror ();</pre>
+<p>This function is similar to strerror. The difference is that it
+accepts an error number returned by a gnutls function; In case of
+an unknown error a descriptive string is sent instead of <code class="literal">NULL</code>.</p>
+<p>Error codes are always a negative error code.</p>
+<div class="refsect3">
+<a name="gnutls-strerror.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>error</p></td>
+<td class="parameter_description"><p>is a GnuTLS error code, a negative error code</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-strerror.returns"></a><h4>Returns</h4>
+<p> A string explaining the GnuTLS error message.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-set-random"></a><h3>gnutls_handshake_set_random ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_handshake_set_random (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *random</code></em>);</pre>
+<p>This function will explicitly set the server or client hello
+random value in the subsequent TLS handshake. The random value
+should be a 32-byte value.</p>
+<p>Note that this function should not normally be used as gnutls
+will select automatically a random value for the handshake.</p>
+<p>This function should not be used when resuming a session.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-set-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>random</p></td>
+<td class="parameter_description"><p>a random value of 32-bytes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-handshake-set-random.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> on success, or an error code.</p>
+<p>Since 3.1.9</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-get-last-out"></a><h3>gnutls_handshake_get_last_out ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="returnvalue">gnutls_handshake_description_t</span></a>
+gnutls_handshake_get_last_out (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function is only useful to check where the last performed
+handshake failed. If the previous handshake succeed or was not
+performed at all then no meaningful value will be returned.</p>
+<p>Check <a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><code class="literal">gnutls_handshake_description_t</code></a> in gnutls.h for the
+available handshake descriptions.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-get-last-out.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-handshake-get-last-out.returns"></a><h4>Returns</h4>
+<p> the last handshake message type sent, a
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><code class="literal">gnutls_handshake_description_t</code></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-get-last-in"></a><h3>gnutls_handshake_get_last_in ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="returnvalue">gnutls_handshake_description_t</span></a>
+gnutls_handshake_get_last_in (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function is only useful to check where the last performed
+handshake failed. If the previous handshake succeed or was not
+performed at all then no meaningful value will be returned.</p>
+<p>Check <a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><code class="literal">gnutls_handshake_description_t</code></a> in gnutls.h for the
+available handshake descriptions.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-get-last-in.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-handshake-get-last-in.returns"></a><h4>Returns</h4>
+<p> the last handshake message type received, a
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><code class="literal">gnutls_handshake_description_t</code></a>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-heartbeat-ping"></a><h3>gnutls_heartbeat_ping ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_heartbeat_ping (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> max_tries</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function sends a ping to the peer. If the <em class="parameter"><code>flags</code></em>
+ is set
+to <a class="link" href="gnutls-gnutls.html#GNUTLS-HEARTBEAT-WAIT:CAPS" title="GNUTLS_HEARTBEAT_WAIT"><code class="literal">GNUTLS_HEARTBEAT_WAIT</code></a> then it waits for a reply from the peer.</p>
+<p>Note that it is highly recommended to use this function with the
+flag <a class="link" href="gnutls-gnutls.html#GNUTLS-HEARTBEAT-WAIT:CAPS" title="GNUTLS_HEARTBEAT_WAIT"><code class="literal">GNUTLS_HEARTBEAT_WAIT</code></a>, or you need to handle retransmissions
+and timeouts manually.</p>
+<p>The total TLS data transmitted as part of the ping message are given by
+the following formula: MAX(16, <em class="parameter"><code>data_size</code></em>
+)+<a class="link" href="gnutls-gnutls.html#gnutls-record-overhead-size" title="gnutls_record_overhead_size ()"><code class="function">gnutls_record_overhead_size()</code></a>+3.</p>
+<div class="refsect3">
+<a name="gnutls-heartbeat-ping.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>is the length of the ping payload.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>max_tries</p></td>
+<td class="parameter_description"><p>if flags is <a class="link" href="gnutls-gnutls.html#GNUTLS-HEARTBEAT-WAIT:CAPS" title="GNUTLS_HEARTBEAT_WAIT"><code class="literal">GNUTLS_HEARTBEAT_WAIT</code></a> then this sets the number of retransmissions. Use zero for indefinite (until timeout).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>if <a class="link" href="gnutls-gnutls.html#GNUTLS-HEARTBEAT-WAIT:CAPS" title="GNUTLS_HEARTBEAT_WAIT"><code class="literal">GNUTLS_HEARTBEAT_WAIT</code></a> then wait for pong or timeout instead of returning immediately.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-heartbeat-ping.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-heartbeat-pong"></a><h3>gnutls_heartbeat_pong ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_heartbeat_pong (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function replies to a ping by sending a pong to the peer.</p>
+<div class="refsect3">
+<a name="gnutls-heartbeat-pong.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</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-heartbeat-pong.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-set-timeout"></a><h3>gnutls_record_set_timeout ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_record_set_timeout (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> ms</code></em>);</pre>
+<p>This function sets the receive timeout for the record layer
+to the provided value. Use an <em class="parameter"><code>ms</code></em>
+ value of zero to disable
+timeout (the default), or <a class="link" href="gnutls-gnutls.html#GNUTLS-INDEFINITE-TIMEOUT:CAPS" title="GNUTLS_INDEFINITE_TIMEOUT"><code class="literal">GNUTLS_INDEFINITE_TIMEOUT</code></a>, to
+set an indefinite timeout.</p>
+<p>This function requires to set a pull timeout callback. See
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-timeout-function" title="gnutls_transport_set_pull_timeout_function ()"><code class="function">gnutls_transport_set_pull_timeout_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-set-timeout.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ms</p></td>
+<td class="parameter_description"><p>is a timeout value in milliseconds</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-disable-padding"></a><h3>gnutls_record_disable_padding ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_record_disable_padding (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Used to disabled padding in TLS 1.0 and above. Normally you do not
+need to use this function, but there are buggy clients that
+complain if a server pads the encrypted data. This of course will
+disable protection against statistical attacks on the data.</p>
+<p>This function is defunct since 3.1.7. Random padding is disabled
+by default unless requested using <a class="link" href="gnutls-gnutls.html#gnutls-record-send-range" title="gnutls_record_send_range ()"><code class="function">gnutls_record_send_range()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-disable-padding.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-cork"></a><h3>gnutls_record_cork ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_record_cork (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>If called, <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a> will no longer send any records.
+Any sent records will be cached until <a class="link" href="gnutls-gnutls.html#gnutls-record-uncork" title="gnutls_record_uncork ()"><code class="function">gnutls_record_uncork()</code></a> is called.</p>
+<p>This function is safe to use with DTLS after GnuTLS 3.3.0.</p>
+<div class="refsect3">
+<a name="gnutls-record-cork.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-uncork"></a><h3>gnutls_record_uncork ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_record_uncork (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This resets the effect of <a class="link" href="gnutls-gnutls.html#gnutls-record-cork" title="gnutls_record_cork ()"><code class="function">gnutls_record_cork()</code></a>, and flushes any pending
+data. If the <a class="link" href="gnutls-gnutls.html#GNUTLS-RECORD-WAIT:CAPS" title="GNUTLS_RECORD_WAIT"><code class="literal">GNUTLS_RECORD_WAIT</code></a> flag is specified then this
+function will block until the data is sent or a fatal error
+occurs (i.e., the function will retry on <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a>).</p>
+<p>If the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-RECORD-WAIT:CAPS" title="GNUTLS_RECORD_WAIT"><code class="literal">GNUTLS_RECORD_WAIT</code></a> is not specified and the function
+is interrupted then the <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a>
+errors will be returned. To obtain the data left in the corked
+buffer use <a class="link" href="gnutls-gnutls.html#gnutls-record-check-corked" title="gnutls_record_check_corked ()"><code class="function">gnutls_record_check_corked()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-uncork.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Could be zero or <a class="link" href="gnutls-gnutls.html#GNUTLS-RECORD-WAIT:CAPS" title="GNUTLS_RECORD_WAIT"><code class="literal">GNUTLS_RECORD_WAIT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-uncork.returns"></a><h4>Returns</h4>
+<p> On success the number of transmitted data is returned, or
+otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.1.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-discard-queued"></a><h3>gnutls_record_discard_queued ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_record_discard_queued (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function discards all queued to be sent packets in a DTLS session.
+These are the packets queued after an interrupted <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a>.</p>
+<p>This function can only be used with transports where <code class="function">send()</code> is
+an all-or-nothing operation (e.g., UDP). When partial writes are allowed
+this function will cause session errors.</p>
+<div class="refsect3">
+<a name="gnutls-record-discard-queued.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-discard-queued.returns"></a><h4>Returns</h4>
+<p> The number of bytes discarded.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-get-state"></a><h3>gnutls_record_get_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_record_get_state (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> read</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> *mac_key</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> *IV</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> *cipher_key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> seq_number[8]</code></em>);</pre>
+<p>This function will return the parameters of the current record state.
+These are only useful to be provided to an external off-loading device
+or subsystem. The returned values should be considered constant
+and valid for the lifetime of the session.</p>
+<p>In that case, to sync the state back you must call <a class="link" href="gnutls-gnutls.html#gnutls-record-set-state" title="gnutls_record_set_state ()"><code class="function">gnutls_record_set_state()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-get-state.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>read</p></td>
+<td class="parameter_description"><p>if non-zero the read parameters are returned, otherwise the write</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mac_key</p></td>
+<td class="parameter_description"><p>the key used for MAC (if a MAC is used)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>IV</p></td>
+<td class="parameter_description"><p>the initialization vector or nonce used</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cipher_key</p></td>
+<td class="parameter_description"><p>the cipher key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq_number</p></td>
+<td class="parameter_description"><p>A 64-bit sequence number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-get-state.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> on success, or an error code.</p>
+<p>Since 3.4.0</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-set-state"></a><h3>gnutls_record_set_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_record_set_state (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> read</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> seq_number[8]</code></em>);</pre>
+<p>This function will set the sequence number in the current record state.
+This function is useful if sending and receiving are offloaded from
+gnutls. That is, if <a class="link" href="gnutls-gnutls.html#gnutls-record-get-state" title="gnutls_record_get_state ()"><code class="function">gnutls_record_get_state()</code></a> was used.</p>
+<div class="refsect3">
+<a name="gnutls-record-set-state.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>read</p></td>
+<td class="parameter_description"><p>if non-zero the read parameters are returned, otherwise the write</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq_number</p></td>
+<td class="parameter_description"><p>A 64-bit sequence number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-set-state.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> on success, or an error code.</p>
+<p>Since 3.4.0</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-range-split"></a><h3>gnutls_range_split ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_range_split (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-range-st" title="gnutls_range_st"><span class="type">gnutls_range_st</span></a> *orig</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-range-st" title="gnutls_range_st"><span class="type">gnutls_range_st</span></a> *small_range</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-range-st" title="gnutls_range_st"><span class="type">gnutls_range_st</span></a> *rem_range</code></em>);</pre>
+<p>This function should be used when it is required to hide the length
+of very long data that cannot be directly provided to <a class="link" href="gnutls-gnutls.html#gnutls-record-send-range" title="gnutls_record_send_range ()"><code class="function">gnutls_record_send_range()</code></a>.
+In that case this function should be called with the desired length
+hiding range in <em class="parameter"><code>orig</code></em>
+. The returned <em class="parameter"><code>next</code></em>
+ value should then be used in
+the next call to <a class="link" href="gnutls-gnutls.html#gnutls-record-send-range" title="gnutls_record_send_range ()"><code class="function">gnutls_record_send_range()</code></a> with the partial data.
+That process should be repeated until <em class="parameter"><code>remainder</code></em>
+ is (0,0).</p>
+<div class="refsect3">
+<a name="gnutls-range-split.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>orig</p></td>
+<td class="parameter_description"><p>is the original range provided by the user</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>next</p></td>
+<td class="parameter_description"><p>is the returned range that can be conveyed in a TLS record</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>remainder</p></td>
+<td class="parameter_description"><p>is the returned remaining range</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-range-split.returns"></a><h4>Returns</h4>
+<p> 0 in case splitting succeeds, non zero in case of error.
+Note that <em class="parameter"><code>orig</code></em>
+is not changed, while the values of <em class="parameter"><code>next</code></em>
+and <em class="parameter"><code>remainder</code></em>
+are modified to store the resulting values.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-send"></a><h3>gnutls_record_send ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_send (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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>);</pre>
+<p>This function has the similar semantics with <code class="function">send()</code>. The only
+difference is that it accepts a GnuTLS session, and uses different
+error codes.
+Note that if the send buffer is full, <code class="function">send()</code> will block this
+function. See the <code class="function">send()</code> documentation for more information.</p>
+<p>You can replace the default push function which is <code class="function">send()</code>, by using
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()"><code class="function">gnutls_transport_set_push_function()</code></a>.</p>
+<p>If the EINTR is returned by the internal push function
+then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> will be returned. If
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> is returned, you must
+call this function again with the exact same parameters, or provide a
+<code class="literal">NULL</code> pointer for <em class="parameter"><code>data</code></em>
+ and 0 for <em class="parameter"><code>data_size</code></em>
+, in order to write the
+same data as before. If you wish to discard the previous data instead
+of retrying, you must call <a class="link" href="gnutls-gnutls.html#gnutls-record-discard-queued" title="gnutls_record_discard_queued ()"><code class="function">gnutls_record_discard_queued()</code></a> before
+calling this function with different parameters. Note that the latter
+works only on special transports (e.g., UDP).
+cf. <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a>.</p>
+<p>Note that in DTLS this function will return the <a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET"><code class="literal">GNUTLS_E_LARGE_PACKET</code></a>
+error code if the send data exceed the data MTU value - as returned
+by <a class="link" href="gnutls-dtls.html#gnutls-dtls-get-data-mtu" title="gnutls_dtls_get_data_mtu ()"><code class="function">gnutls_dtls_get_data_mtu()</code></a>. The errno value EMSGSIZE
+also maps to <a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET"><code class="literal">GNUTLS_E_LARGE_PACKET</code></a>.
+Note that since 3.2.13 this function can be called under cork in DTLS
+mode, and will refuse to send data over the MTU size by returning
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS" title="GNUTLS_E_LARGE_PACKET"><code class="literal">GNUTLS_E_LARGE_PACKET</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-send.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>contains the data to send</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>is the length of the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-send.returns"></a><h4>Returns</h4>
+<p> The number of bytes sent, or a negative error code. The
+number of bytes sent might be less than <em class="parameter"><code>data_size</code></em>
+. The maximum
+number of bytes this function can send in a single call depends
+on the negotiated maximum record size.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-send2"></a><h3>gnutls_record_send2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_send2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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">size_t</span> pad</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function is identical to <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a> except that it
+takes an extra argument to specify padding to be added the record.
+To determine the maximum size of padding, use
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-size" title="gnutls_record_get_max_size ()"><code class="function">gnutls_record_get_max_size()</code></a> and <a class="link" href="gnutls-gnutls.html#gnutls-record-overhead-size" title="gnutls_record_overhead_size ()"><code class="function">gnutls_record_overhead_size()</code></a>.</p>
+<p>Note that in order for GnuTLS to provide constant time processing
+of padding and data in TLS1.3, the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-SAFE-PADDING-CHECK:CAPS"><code class="literal">GNUTLS_SAFE_PADDING_CHECK</code></a>
+must be used in <a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()"><code class="function">gnutls_init()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-send2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>contains the data to send</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>is the length of the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pad</p></td>
+<td class="parameter_description"><p>padding to be added to the record</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-record-send2.returns"></a><h4>Returns</h4>
+<p> The number of bytes sent, or a negative error code. The
+number of bytes sent might be less than <em class="parameter"><code>data_size</code></em>
+. The maximum
+number of bytes this function can send in a single call depends
+on the negotiated maximum record size.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-send-range"></a><h3>gnutls_record_send_range ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_send_range (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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>const <a class="link" href="gnutls-gnutls.html#gnutls-range-st" title="gnutls_range_st"><span class="type">gnutls_range_st</span></a> *range</code></em>);</pre>
+<p>This function operates like <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a> but, while
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a> adds minimal padding to each TLS record,
+this function uses the TLS extra-padding feature to conceal the real
+data size within the range of lengths provided.
+Some TLS sessions do not support extra padding (e.g. stream ciphers in standard
+TLS or SSL3 sessions). To know whether the current session supports extra
+padding, and hence length hiding, use the <a class="link" href="gnutls-gnutls.html#gnutls-record-can-use-length-hiding" title="gnutls_record_can_use_length_hiding ()"><code class="function">gnutls_record_can_use_length_hiding()</code></a>
+function.</p>
+<p>Note: This function currently is limited to blocking sockets.</p>
+<div class="refsect3">
+<a name="gnutls-record-send-range.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>contains the data to send.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>is the length of the data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>range</p></td>
+<td class="parameter_description"><p>is the range of lengths in which the real data length must be hidden.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-send-range.returns"></a><h4>Returns</h4>
+<p> The number of bytes sent (that is data_size in a successful invocation),
+or a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-send-file"></a><h3>gnutls_record_send_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_send_file (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> fd</code></em>,
+ <em class="parameter"><code><span class="type">off_t</span> *offset</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> count</code></em>);</pre>
+<p>This function sends data from <em class="parameter"><code>fd</code></em>
+. If KTLS (kernel TLS) is enabled, it will
+use the <code class="function">sendfile()</code> system call to avoid overhead of copying data between user
+space and the kernel. Otherwise, this functionality is merely emulated by
+calling <code class="function">read()</code> and <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a>. If this implementation is
+suboptimal, check whether KTLS is enabled using
+<code class="function">gnutls_transport_is_ktls_enabled()</code>.</p>
+<p>If <em class="parameter"><code>offset</code></em>
+ is NULL then file offset is incremented by number of bytes send,
+otherwise file offset remains unchanged.</p>
+<div class="refsect3">
+<a name="gnutls-record-send-file.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fd</p></td>
+<td class="parameter_description"><p>file descriptor from which to read data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>Is relative to file offset, denotes the starting location for
+reading. after function returns, it point to position following
+last read byte.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>count</p></td>
+<td class="parameter_description"><p>is the length of the data in bytes to be read from file and send.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-send-file.returns"></a><h4>Returns</h4>
+<p> The number of bytes sent, or a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-recv"></a><h3>gnutls_record_recv ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_recv (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>);</pre>
+<p>This function has the similar semantics with <code class="function">recv()</code>. The only
+difference is that it accepts a GnuTLS session, and uses different
+error codes.
+In the special case that the peer requests a renegotiation, the
+caller will receive an error code of <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE"><code class="literal">GNUTLS_E_REHANDSHAKE</code></a>. In case
+of a client, this message may be simply ignored, replied with an alert
+<a class="link" href="gnutls-gnutls.html#GNUTLS-A-NO-RENEGOTIATION:CAPS"><code class="literal">GNUTLS_A_NO_RENEGOTIATION</code></a>, or replied with a new handshake,
+depending on the client's will. A server receiving this error code
+can only initiate a new handshake or terminate the session.</p>
+<p>If <code class="literal">EINTR</code> is returned by the internal pull function (the default
+is <code class="function">recv()</code>) then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> will be returned. If
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> is returned, you must
+call this function again to get the data. See also
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-recv.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the buffer that the data will be read into</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>the number of requested bytes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-recv.returns"></a><h4>Returns</h4>
+<p> The number of bytes received and zero on EOF (for stream
+connections). A negative error code is returned in case of an error.
+The number of bytes received might be less than the requested <em class="parameter"><code>data_size</code></em>
+.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-recv-packet"></a><h3>gnutls_record_recv_packet ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_recv_packet (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-packet-t" title="gnutls_packet_t"><span class="type">gnutls_packet_t</span></a> *packet</code></em>);</pre>
+<p>This is a lower-level function than <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a> and allows
+to directly receive the whole decrypted packet. That avoids a
+memory copy, and is intended to be used by applications seeking high
+performance.</p>
+<p>The received packet is accessed using <a class="link" href="gnutls-gnutls.html#gnutls-packet-get" title="gnutls_packet_get ()"><code class="function">gnutls_packet_get()</code></a> and
+must be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-packet-deinit" title="gnutls_packet_deinit ()"><code class="function">gnutls_packet_deinit()</code></a>. The returned
+packet will be <code class="literal">NULL</code> if the return value is zero (EOF).</p>
+<div class="refsect3">
+<a name="gnutls-record-recv-packet.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>packet</p></td>
+<td class="parameter_description"><p>the structure that will hold the packet data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-recv-packet.returns"></a><h4>Returns</h4>
+<p> The number of bytes received and zero on EOF (for stream
+connections). A negative error code is returned in case of an error.</p>
+</div>
+<p class="since">Since: 3.3.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-packet-get"></a><h3>gnutls_packet_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_packet_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-packet-t" title="gnutls_packet_t"><span class="type">gnutls_packet_t</span></a> packet</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>unsigned <span class="type">char</span> *sequence</code></em>);</pre>
+<p>This function returns the data and sequence number associated with
+the received packet.</p>
+<div class="refsect3">
+<a name="gnutls-packet-get.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>packet</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-packet-t" title="gnutls_packet_t"><span class="type">gnutls_packet_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>will contain the data present in the <em class="parameter"><code>packet</code></em>
+structure (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sequence</p></td>
+<td class="parameter_description"><p>the 8-bytes of the packet sequence number (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.3.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-packet-deinit"></a><h3>gnutls_packet_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_packet_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-packet-t" title="gnutls_packet_t"><span class="type">gnutls_packet_t</span></a> packet</code></em>);</pre>
+<p>This function will deinitialize all data associated with
+the received packet.</p>
+<div class="refsect3">
+<a name="gnutls-packet-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>packet</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_packet_st</span> structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.3.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-recv-seq"></a><h3>gnutls_record_recv_seq ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_recv_seq (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><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>unsigned <span class="type">char</span> *seq</code></em>);</pre>
+<p>This function is the same as <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a>, except that
+it returns in addition to data, the sequence number of the data.
+This is useful in DTLS where record packets might be received
+out-of-order. The returned 8-byte sequence number is an
+integer in big-endian format and should be
+treated as a unique message identification.</p>
+<div class="refsect3">
+<a name="gnutls-record-recv-seq.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the buffer that the data will be read into</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>the number of requested bytes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>is the packet's 64-bit sequence number. Should have space for 8 bytes.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-recv-seq.returns"></a><h4>Returns</h4>
+<p> The number of bytes received and zero on EOF. A negative
+error code is returned in case of an error. The number of bytes
+received might be less than <em class="parameter"><code>data_size</code></em>
+.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-overhead-size"></a><h3>gnutls_record_overhead_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_record_overhead_size (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the size in bytes of the overhead
+due to TLS (or DTLS) per record. On certain occasions
+(e.g., CBC ciphers) the returned value is the maximum
+possible overhead.</p>
+<div class="refsect3">
+<a name="gnutls-record-overhead-size.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>session</p></td>
+<td class="parameter_description"><p>is <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.2.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-est-record-overhead-size"></a><h3>gnutls_est_record_overhead_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_est_record_overhead_size (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> version</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> comp</code></em>);</pre>
+<p>This function will return the set size in bytes of the overhead
+due to TLS (or DTLS) per record.</p>
+<p>Note that this function may provide inaccurate values when TLS
+extensions that modify the record format are negotiated. In these
+cases a more accurate value can be obtained using <a class="link" href="gnutls-gnutls.html#gnutls-record-overhead-size" title="gnutls_record_overhead_size ()"><code class="function">gnutls_record_overhead_size()</code></a>
+after a completed handshake.</p>
+<div class="refsect3">
+<a name="gnutls-est-record-overhead-size.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>version</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cipher</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mac</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> value</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>comp</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> value (ignored)</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>
+<p class="since">Since: 3.2.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-set-max-empty-records"></a><h3>gnutls_record_set_max_empty_records()</h3>
+<pre class="programlisting">#define gnutls_record_set_max_empty_records(session, x)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-can-use-length-hiding"></a><h3>gnutls_record_can_use_length_hiding ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_record_can_use_length_hiding (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>If the session supports length-hiding padding, you can
+invoke <a class="link" href="gnutls-gnutls.html#gnutls-record-send-range" title="gnutls_record_send_range ()"><code class="function">gnutls_record_send_range()</code></a> to send a message whose
+length is hidden in the given range. If the session does not
+support length hiding padding, you can use the standard
+<a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a> function, or <a class="link" href="gnutls-gnutls.html#gnutls-record-send-range" title="gnutls_record_send_range ()"><code class="function">gnutls_record_send_range()</code></a>
+making sure that the range is the same as the length of the
+message you are trying to send.</p>
+<div class="refsect3">
+<a name="gnutls-record-can-use-length-hiding.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-can-use-length-hiding.returns"></a><h4>Returns</h4>
+<p> true (1) if the current session supports length-hiding
+padding, false (0) if the current session does not.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-get-direction"></a><h3>gnutls_record_get_direction ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_record_get_direction (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function is useful to determine whether a GnuTLS function was interrupted
+while sending or receiving, so that <code class="function">select()</code> or <code class="function">poll()</code> may be called appropriately.</p>
+<p>It provides information about the internals of the record
+protocol and is only useful if a prior gnutls function call,
+e.g. <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a>, was interrupted and returned
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a>. After such an interrupt
+applications may call <code class="function">select()</code> or <code class="function">poll()</code> before restoring the
+interrupted GnuTLS function.</p>
+<p>This function's output is unreliable if you are using the same
+<em class="parameter"><code>session</code></em>
+ in different threads for sending and receiving.</p>
+<div class="refsect3">
+<a name="gnutls-record-get-direction.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-get-direction.returns"></a><h4>Returns</h4>
+<p> 0 if interrupted while trying to read data, or 1 while trying to write data.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-get-max-size"></a><h3>gnutls_record_get_max_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_record_get_max_size (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the record size. The maximum record size is negotiated by the
+client after the first handshake message.</p>
+<div class="refsect3">
+<a name="gnutls-record-get-max-size.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-get-max-size.returns"></a><h4>Returns</h4>
+<p> The maximum record packet size in this connection.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-set-max-size"></a><h3>gnutls_record_set_max_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_set_max_size (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> size</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_record_set_max_size</code> is deprecated and should not be used in newly-written code.</p>
+<p>if the client can assume that the 'record size limit'
+extension is supported by the server, we recommend using
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-max-recv-size" title="gnutls_record_set_max_recv_size ()"><code class="function">gnutls_record_set_max_recv_size()</code></a> instead.</p>
+</div>
+<p>This function sets the maximum amount of plaintext sent and
+received in a record in this connection.</p>
+<p>Prior to 3.6.4, this function was implemented using a TLS extension
+called 'max fragment length', which limits the acceptable values to
+512(=2^9), 1024(=2^10), 2048(=2^11) and 4096(=2^12).</p>
+<p>Since 3.6.4, the limit is also negotiated through a new TLS
+extension called 'record size limit', which doesn't have the
+limitation, as long as the value ranges between 512 and 16384.
+Note that while the 'record size limit' extension is preferred, not
+all TLS implementations use or even understand the extension.</p>
+<div class="refsect3">
+<a name="gnutls-record-set-max-size.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>is the new size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-set-max-size.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-set-max-recv-size"></a><h3>gnutls_record_set_max_recv_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_set_max_recv_size (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> size</code></em>);</pre>
+<p>This function sets the maximum amount of plaintext received in a
+record in this connection.</p>
+<p>The limit is also negotiated through a TLS extension called 'record
+size limit'. Note that while the 'record size limit' extension is
+preferred, not all TLS implementations use or even understand the
+extension.</p>
+<div class="refsect3">
+<a name="gnutls-record-set-max-recv-size.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>is the new size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-set-max-recv-size.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.6.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-check-pending"></a><h3>gnutls_record_check_pending ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_record_check_pending (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function checks if there are unread data
+in the gnutls buffers. If the return value is
+non-zero the next call to <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a>
+is guaranteed not to block.</p>
+<div class="refsect3">
+<a name="gnutls-record-check-pending.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-check-pending.returns"></a><h4>Returns</h4>
+<p> Returns the size of the data or zero.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-check-corked"></a><h3>gnutls_record_check_corked ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_record_check_corked (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function checks if there pending corked
+data in the gnutls buffers --see <a class="link" href="gnutls-gnutls.html#gnutls-record-cork" title="gnutls_record_cork ()"><code class="function">gnutls_record_cork()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-check-corked.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-check-corked.returns"></a><h4>Returns</h4>
+<p> Returns the size of the corked data or zero.</p>
+</div>
+<p class="since">Since: 3.2.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-get-max-early-data-size"></a><h3>gnutls_record_get_max_early_data_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">size_t</span>
+gnutls_record_get_max_early_data_size (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function returns the maximum early data size in this connection.
+This property can only be set to servers. The client may be
+provided with the maximum allowed size through the "early_data"
+extension of the NewSessionTicket handshake message.</p>
+<div class="refsect3">
+<a name="gnutls-record-get-max-early-data-size.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-get-max-early-data-size.returns"></a><h4>Returns</h4>
+<p> The maximum early data size in this connection.</p>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-set-max-early-data-size"></a><h3>gnutls_record_set_max_early_data_size ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_record_set_max_early_data_size (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> size</code></em>);</pre>
+<p>This function sets the maximum early data size in this connection.
+This property can only be set to servers. The client may be
+provided with the maximum allowed size through the "early_data"
+extension of the NewSessionTicket handshake message.</p>
+<div class="refsect3">
+<a name="gnutls-record-set-max-early-data-size.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>is the new size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-set-max-early-data-size.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.6.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-send-early-data"></a><h3>gnutls_record_send_early_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_send_early_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> length</code></em>);</pre>
+<p>This function can be used by a client to send data early in the
+handshake processes when resuming a session. This is used to
+implement a zero-roundtrip (0-RTT) mode. It has the same semantics
+as <a class="link" href="gnutls-gnutls.html#gnutls-record-send" title="gnutls_record_send ()"><code class="function">gnutls_record_send()</code></a>.</p>
+<p>There may be a limit to the amount of data sent as early data. Use
+<a class="link" href="gnutls-gnutls.html#gnutls-record-get-max-early-data-size" title="gnutls_record_get_max_early_data_size ()"><code class="function">gnutls_record_get_max_early_data_size()</code></a> to check the limit. If the
+limit exceeds, this function returns
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECORD-LIMIT-REACHED:CAPS" title="GNUTLS_E_RECORD_LIMIT_REACHED"><code class="literal">GNUTLS_E_RECORD_LIMIT_REACHED</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-send-early-data.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>contains the data to send</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>is the length of the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-send-early-data.returns"></a><h4>Returns</h4>
+<p> The number of bytes sent, or a negative error code. The
+number of bytes sent might be less than <em class="parameter"><code>data_size</code></em>
+. The maximum
+number of bytes this function can send in a single call depends
+on the negotiated maximum record size.</p>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-recv-early-data"></a><h3>gnutls_record_recv_early_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+gnutls_record_recv_early_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>);</pre>
+<p>This function can be used by a server to retrieve data sent early
+in the handshake processes when resuming a session. This is used
+to implement a zero-roundtrip (0-RTT) mode. It has the same
+semantics as <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a>.</p>
+<p>This function can be called either in a handshake hook, or after
+the handshake is complete.</p>
+<div class="refsect3">
+<a name="gnutls-record-recv-early-data.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the buffer that the data will be read into</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>the number of requested bytes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-record-recv-early-data.returns"></a><h4>Returns</h4>
+<p> The number of bytes received and zero when early data
+reading is complete. A negative error code is returned in case of
+an error. If no early data is received during the handshake, this
+function returns <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>. The
+number of bytes received might be less than the requested
+<em class="parameter"><code>data_size</code></em>
+.</p>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-force-valid"></a><h3>gnutls_session_force_valid ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_force_valid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Clears the invalid flag in a session. That means
+that sessions were corrupt or invalid data were received
+can be re-used. Use only when debugging or experimenting
+with the TLS protocol. Should not be used in typical
+applications.</p>
+<div class="refsect3">
+<a name="gnutls-session-force-valid.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-prf"></a><h3>gnutls_prf ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_prf (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code><span class="type">int</span> server_random_first</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> extra_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *extra</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *out</code></em>);</pre>
+<p>Applies the TLS Pseudo-Random-Function (PRF) on the master secret
+and the provided data, seeded with the client and server random fields.
+For the key expansion specified in RFC5705 see <a class="link" href="gnutls-gnutls.html#gnutls-prf-rfc5705" title="gnutls_prf_rfc5705 ()"><code class="function">gnutls_prf_rfc5705()</code></a>.</p>
+<p>The <em class="parameter"><code>label</code></em>
+ variable usually contains a string denoting the purpose
+for the generated data. The <em class="parameter"><code>server_random_first</code></em>
+ indicates whether
+the client random field or the server random field should be first
+in the seed. Non-zero indicates that the server random field is first,
+0 that the client random field is first.</p>
+<p>The <em class="parameter"><code>extra</code></em>
+ variable can be used to add more data to the seed, after
+the random variables. It can be used to make sure the
+generated output is strongly connected to some additional data
+(e.g., a string used in user authentication).</p>
+<p>The output is placed in <em class="parameter"><code>out</code></em>
+, which must be pre-allocated.</p>
+<p>Note: This function produces identical output with <a class="link" href="gnutls-gnutls.html#gnutls-prf-rfc5705" title="gnutls_prf_rfc5705 ()"><code class="function">gnutls_prf_rfc5705()</code></a>
+when <em class="parameter"><code>server_random_first</code></em>
+ is set to 0 and <em class="parameter"><code>extra</code></em>
+ is <code class="literal">NULL</code>. Under TLS1.3
+this function will only operate when these conditions are true, or otherwise
+return <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>.</p>
+<div class="refsect3">
+<a name="gnutls-prf.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>label</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>label used in PRF computation, typically a short string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>server_random_first</p></td>
+<td class="parameter_description"><p>non-zero if server random field should be first in seed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extra_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>extra</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extra</p></td>
+<td class="parameter_description"><p>optional extra data to seed the PRF with.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>outsize</p></td>
+<td class="parameter_description"><p>size of pre-allocated output buffer to hold the output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>pre-allocated buffer to hold the generated data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-prf.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> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-prf-rfc5705"></a><h3>gnutls_prf_rfc5705 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_prf_rfc5705 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> context_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *context</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *out</code></em>);</pre>
+<p>Exports keying material from TLS/DTLS session to an application, as
+specified in RFC5705.</p>
+<p>In the TLS versions prior to 1.3, it applies the TLS
+Pseudo-Random-Function (PRF) on the master secret and the provided
+data, seeded with the client and server random fields.</p>
+<p>In TLS 1.3, it applies HKDF on the exporter master secret derived
+from the master secret.</p>
+<p>The <em class="parameter"><code>label</code></em>
+ variable usually contains a string denoting the purpose
+for the generated data.</p>
+<p>The <em class="parameter"><code>context</code></em>
+ variable can be used to add more data to the seed, after
+the random variables. It can be used to make sure the
+generated output is strongly connected to some additional data
+(e.g., a string used in user authentication). </p>
+<p>The output is placed in <em class="parameter"><code>out</code></em>
+, which must be pre-allocated.</p>
+<p>Note that, to provide the RFC5705 context, the <em class="parameter"><code>context</code></em>
+ variable
+must be non-null.</p>
+<div class="refsect3">
+<a name="gnutls-prf-rfc5705.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>label</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>label used in PRF computation, typically a short string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>context_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>extra</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>optional extra data to seed the PRF with.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>outsize</p></td>
+<td class="parameter_description"><p>size of pre-allocated output buffer to hold the output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>pre-allocated buffer to hold the generated data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-prf-rfc5705.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> on success, or an error code.</p>
+</div>
+<p class="since">Since: 3.4.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-prf-early"></a><h3>gnutls_prf_early ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_prf_early (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> context_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *context</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *out</code></em>);</pre>
+<p>This function is similar to <a class="link" href="gnutls-gnutls.html#gnutls-prf-rfc5705" title="gnutls_prf_rfc5705 ()"><code class="function">gnutls_prf_rfc5705()</code></a>, but only works in
+TLS 1.3 or later to export early keying material.</p>
+<p>Note that the keying material is only available after the
+ClientHello message is processed and before the application traffic
+keys are established. Therefore this function shall be called in a
+handshake hook function for <a class="link" href="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-HELLO:CAPS"><code class="literal">GNUTLS_HANDSHAKE_CLIENT_HELLO</code></a>.</p>
+<p>The <em class="parameter"><code>label</code></em>
+ variable usually contains a string denoting the purpose
+for the generated data.</p>
+<p>The <em class="parameter"><code>context</code></em>
+ variable can be used to add more data to the seed, after
+the random variables. It can be used to make sure the
+generated output is strongly connected to some additional data
+(e.g., a string used in user authentication).</p>
+<p>The output is placed in <em class="parameter"><code>out</code></em>
+, which must be pre-allocated.</p>
+<p>Note that, to provide the RFC5705 context, the <em class="parameter"><code>context</code></em>
+ variable
+must be non-null.</p>
+<div class="refsect3">
+<a name="gnutls-prf-early.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>label</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>label used in PRF computation, typically a short string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>context_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>extra</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>context</p></td>
+<td class="parameter_description"><p>optional extra data to seed the PRF with.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>outsize</p></td>
+<td class="parameter_description"><p>size of pre-allocated output buffer to hold the output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>pre-allocated buffer to hold the generated data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-prf-early.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> on success, or an error code.</p>
+</div>
+<p class="since">Since: 3.6.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-prf-raw"></a><h3>gnutls_prf_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_prf_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> label_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *label</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> seed_size</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *seed</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> outsize</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *out</code></em>);</pre>
+<p>Apply the TLS Pseudo-Random-Function (PRF) on the master secret
+and the provided data.</p>
+<p>The <em class="parameter"><code>label</code></em>
+ variable usually contains a string denoting the purpose
+for the generated data. The <em class="parameter"><code>seed</code></em>
+ usually contains data such as the
+client and server random, perhaps together with some additional
+data that is added to guarantee uniqueness of the output for a
+particular purpose.</p>
+<p>Because the output is not guaranteed to be unique for a particular
+session unless <em class="parameter"><code>seed</code></em>
+ includes the client random and server random
+fields (the PRF would output the same data on another connection
+resumed from the first one), it is not recommended to use this
+function directly. The <a class="link" href="gnutls-gnutls.html#gnutls-prf" title="gnutls_prf ()"><code class="function">gnutls_prf()</code></a> function seeds the PRF with the
+client and server random fields directly, and is recommended if you
+want to generate pseudo random data unique for each session.</p>
+<p>Note: This function will only operate under TLS versions prior to 1.3.
+In TLS1.3 the use of PRF is replaced with HKDF and the generic
+exporters like <a class="link" href="gnutls-gnutls.html#gnutls-prf-rfc5705" title="gnutls_prf_rfc5705 ()"><code class="function">gnutls_prf_rfc5705()</code></a> should be used instead. Under
+TLS1.3 this function returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-prf-raw.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>label</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>label used in PRF computation, typically a short string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed_size</p></td>
+<td class="parameter_description"><p>length of the <em class="parameter"><code>seed</code></em>
+variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed</p></td>
+<td class="parameter_description"><p>optional extra data to seed the PRF with.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>outsize</p></td>
+<td class="parameter_description"><p>size of pre-allocated output buffer to hold the output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>pre-allocated buffer to hold the generated data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-prf-raw.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> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-server-name-set"></a><h3>gnutls_server_name_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_server_name_set (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-server-name-type-t" title="enum gnutls_server_name_type_t"><span class="type">gnutls_server_name_type_t</span></a> type</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> name_length</code></em>);</pre>
+<p>This function is to be used by clients that want to inform (via a
+TLS extension mechanism) the server of the name they connected to.
+This should be used by clients that connect to servers that do
+virtual hosting.</p>
+<p>The value of <em class="parameter"><code>name</code></em>
+ depends on the <em class="parameter"><code>type</code></em>
+ type. In case of
+<a class="link" href="gnutls-gnutls.html#GNUTLS-NAME-DNS:CAPS"><code class="literal">GNUTLS_NAME_DNS</code></a>, a UTF-8 null-terminated domain name string,
+without the trailing dot, is expected.</p>
+<p>IPv4 or IPv6 addresses are not permitted to be set by this function.
+If the function is called with a name of <em class="parameter"><code>name_length</code></em>
+ zero it will clear
+all server names set.</p>
+<div class="refsect3">
+<a name="gnutls-server-name-set.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>specifies the indicator type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>is a string that contains the server name.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name_length</p></td>
+<td class="parameter_description"><p>holds the length of name excluding the terminating null byte</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-server-name-set.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-server-name-get"></a><h3>gnutls_server_name_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_server_name_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *data_length</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> indx</code></em>);</pre>
+<p>This function will allow you to get the name indication (if any), a
+client has sent. The name indication may be any of the enumeration
+gnutls_server_name_type_t.</p>
+<p>If <em class="parameter"><code>type</code></em>
+ is GNUTLS_NAME_DNS, then this function is to be used by
+servers that support virtual hosting, and the data will be a null
+terminated IDNA ACE string (prior to GnuTLS 3.4.0 it was a UTF-8 string).</p>
+<p>If <em class="parameter"><code>data</code></em>
+ has not enough size to hold the server name
+GNUTLS_E_SHORT_MEMORY_BUFFER is returned, and <em class="parameter"><code>data_length</code></em>
+ will
+hold the required size.</p>
+<p><em class="parameter"><code>indx</code></em>
+ is used to retrieve more than one server names (if sent by
+the client). The first server name has an index of 0, the second 1
+and so on. If no name with the given index exists
+GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE is returned.</p>
+<div class="refsect3">
+<a name="gnutls-server-name-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</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 data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_length</p></td>
+<td class="parameter_description"><p>will hold the data length. Must hold the maximum size of data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>will hold the server name indicator type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>is the index of the server_name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-server-name-get.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, on UTF-8
+decoding error <a class="link" href="gnutls-gnutls.html#GNUTLS-E-IDNA-ERROR:CAPS" title="GNUTLS_E_IDNA_ERROR"><code class="literal">GNUTLS_E_IDNA_ERROR</code></a> is returned, otherwise a negative
+error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-heartbeat-get-timeout"></a><h3>gnutls_heartbeat_get_timeout ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_heartbeat_get_timeout (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the milliseconds remaining
+for a retransmission of the previously sent ping
+message. This function is useful when ping is used in
+non-blocking mode, to estimate when to call <a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-ping" title="gnutls_heartbeat_ping ()"><code class="function">gnutls_heartbeat_ping()</code></a>
+if no packets have been received.</p>
+<div class="refsect3">
+<a name="gnutls-heartbeat-get-timeout.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-heartbeat-get-timeout.returns"></a><h4>Returns</h4>
+<p> the remaining time in milliseconds.</p>
+</div>
+<p class="since">Since: 3.1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-heartbeat-set-timeouts"></a><h3>gnutls_heartbeat_set_timeouts ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_heartbeat_set_timeouts (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> retrans_timeout</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> total_timeout</code></em>);</pre>
+<p>This function will override the timeouts for the DTLS heartbeat
+protocol. The retransmission timeout is the time after which a
+message from the peer is not received, the previous request will
+be retransmitted. The total timeout is the time after which the
+handshake will be aborted with <a class="link" href="gnutls-gnutls.html#GNUTLS-E-TIMEDOUT:CAPS" title="GNUTLS_E_TIMEDOUT"><code class="literal">GNUTLS_E_TIMEDOUT</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-heartbeat-set-timeouts.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>retrans_timeout</p></td>
+<td class="parameter_description"><p>The time at which a retransmission will occur in milliseconds</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>total_timeout</p></td>
+<td class="parameter_description"><p>The time at which the connection will be aborted, in milliseconds.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-heartbeat-enable"></a><h3>gnutls_heartbeat_enable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_heartbeat_enable (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> type</code></em>);</pre>
+<p>If this function is called with the <a class="link" href="gnutls-gnutls.html#GNUTLS-HB-PEER-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_PEER_ALLOWED_TO_SEND"><code class="literal">GNUTLS_HB_PEER_ALLOWED_TO_SEND</code></a>
+<em class="parameter"><code>type</code></em>
+, GnuTLS will allow heartbeat messages to be received. Moreover it also
+request the peer to accept heartbeat messages. This function
+must be called prior to TLS handshake.</p>
+<p>If the <em class="parameter"><code>type</code></em>
+ used is <a class="link" href="gnutls-gnutls.html#GNUTLS-HB-LOCAL-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_LOCAL_ALLOWED_TO_SEND"><code class="literal">GNUTLS_HB_LOCAL_ALLOWED_TO_SEND</code></a>, then the peer
+will be asked to accept heartbeat messages but not send ones.</p>
+<p>The function <a class="link" href="gnutls-gnutls.html#gnutls-heartbeat-allowed" title="gnutls_heartbeat_allowed ()"><code class="function">gnutls_heartbeat_allowed()</code></a> can be used to test Whether
+locally generated heartbeat messages can be accepted by the peer.</p>
+<div class="refsect3">
+<a name="gnutls-heartbeat-enable.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>one of the GNUTLS_HB_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-heartbeat-allowed"></a><h3>gnutls_heartbeat_allowed ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_heartbeat_allowed (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> type</code></em>);</pre>
+<p>This function will check whether heartbeats are allowed
+to be sent or received in this session.</p>
+<div class="refsect3">
+<a name="gnutls-heartbeat-allowed.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>one of <a class="link" href="gnutls-gnutls.html#GNUTLS-HB-LOCAL-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_LOCAL_ALLOWED_TO_SEND"><code class="literal">GNUTLS_HB_LOCAL_ALLOWED_TO_SEND</code></a> and <a class="link" href="gnutls-gnutls.html#GNUTLS-HB-PEER-ALLOWED-TO-SEND:CAPS" title="GNUTLS_HB_PEER_ALLOWED_TO_SEND"><code class="literal">GNUTLS_HB_PEER_ALLOWED_TO_SEND</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-heartbeat-allowed.returns"></a><h4>Returns</h4>
+<p> Non zero if heartbeats are allowed.</p>
+</div>
+<p class="since">Since: 3.1.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-safe-renegotiation-status"></a><h3>gnutls_safe_renegotiation_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_safe_renegotiation_status (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Can be used to check whether safe renegotiation is being used
+in the current session.</p>
+<div class="refsect3">
+<a name="gnutls-safe-renegotiation-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-safe-renegotiation-status.returns"></a><h4>Returns</h4>
+<p> 0 when safe renegotiation is not used and non (0) when
+safe renegotiation is used.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-ext-master-secret-status"></a><h3>gnutls_session_ext_master_secret_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_session_ext_master_secret_status
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the status of the extended master secret extension negotiation.
+This is in accordance to RFC7627. That information is also
+available to the more generic <a class="link" href="gnutls-gnutls.html#gnutls-session-get-flags" title="gnutls_session_get_flags ()"><code class="function">gnutls_session_get_flags()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-session-ext-master-secret-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-ext-master-secret-status.returns"></a><h4>Returns</h4>
+<p> Non-zero if the negotiation was successful or zero otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-etm-status"></a><h3>gnutls_session_etm_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_session_etm_status (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the status of the encrypt-then-mac extension negotiation.
+This is in accordance to rfc7366</p>
+<div class="refsect3">
+<a name="gnutls-session-etm-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-etm-status.returns"></a><h4>Returns</h4>
+<p> Non-zero if the negotiation was successful or zero otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-flags"></a><h3>gnutls_session_get_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_session_get_flags (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return a series (ORed) of flags, applicable
+for the current session.</p>
+<p>This replaces individual informational functions such as
+<a class="link" href="gnutls-gnutls.html#gnutls-safe-renegotiation-status" title="gnutls_safe_renegotiation_status ()"><code class="function">gnutls_safe_renegotiation_status()</code></a>, <a class="link" href="gnutls-gnutls.html#gnutls-session-ext-master-secret-status" title="gnutls_session_ext_master_secret_status ()"><code class="function">gnutls_session_ext_master_secret_status()</code></a>,
+etc.</p>
+<div class="refsect3">
+<a name="gnutls-session-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-flags.returns"></a><h4>Returns</h4>
+<p> An ORed sequence of flags (see <a class="link" href="gnutls-gnutls.html#gnutls-session-flags-t" title="enum gnutls_session_flags_t"><code class="literal">gnutls_session_flags_t</code></a>)</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-ticket-key-generate"></a><h3>gnutls_session_ticket_key_generate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_ticket_key_generate (<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>);</pre>
+<p>Generate a random key to encrypt security parameters within
+SessionTicket.</p>
+<div class="refsect3">
+<a name="gnutls-session-ticket-key-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>key</p></td>
+<td class="parameter_description"><p>is a pointer to a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> which will contain a newly
+created key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-ticket-key-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, or an
+error code.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-ticket-enable-client"></a><h3>gnutls_session_ticket_enable_client ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_ticket_enable_client (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Request that the client should attempt session resumption using
+SessionTicket. This call is typically unnecessary as session
+tickets are enabled by default.</p>
+<div class="refsect3">
+<a name="gnutls-session-ticket-enable-client.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-ticket-enable-client.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, or an
+error code.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-ticket-enable-server"></a><h3>gnutls_session_ticket_enable_server ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_ticket_enable_server (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *key</code></em>);</pre>
+<p>Request that the server should attempt session resumption using
+session tickets, i.e., by delegating storage to the client.
+<em class="parameter"><code>key</code></em>
+ must be initialized using <a class="link" href="gnutls-gnutls.html#gnutls-session-ticket-key-generate" title="gnutls_session_ticket_key_generate ()"><code class="function">gnutls_session_ticket_key_generate()</code></a>.
+To avoid leaking that key, use <a class="link" href="gnutls-gnutls.html#gnutls-memset" title="gnutls_memset ()"><code class="function">gnutls_memset()</code></a> prior to
+releasing it.</p>
+<p>The default ticket expiration time can be overridden using
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-cache-expiration" title="gnutls_db_set_cache_expiration ()"><code class="function">gnutls_db_set_cache_expiration()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-session-ticket-enable-server.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>key to encrypt session parameters.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-ticket-enable-server.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, or an
+error code.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-ticket-send"></a><h3>gnutls_session_ticket_send ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_ticket_send (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> nr</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>Sends a fresh session ticket to the peer. This is relevant only
+in server side under TLS1.3. This function may also return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a>
+or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> and in that case it must be called again.</p>
+<div class="refsect3">
+<a name="gnutls-session-ticket-send.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nr</p></td>
+<td class="parameter_description"><p>the number of tickets to send</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-session-ticket-send.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> on success, or a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-set-profile"></a><h3>gnutls_srtp_set_profile ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srtp_set_profile (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-srtp-profile-t" title="enum gnutls_srtp_profile_t"><span class="type">gnutls_srtp_profile_t</span></a> profile</code></em>);</pre>
+<p>This function is to be used by both clients and servers, to declare
+what SRTP profiles they support, to negotiate with the peer.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-set-profile.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>profile</p></td>
+<td class="parameter_description"><p>is the profile id to add.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-set-profile.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 code is returned.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-set-profile-direct"></a><h3>gnutls_srtp_set_profile_direct ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srtp_set_profile_direct (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *profiles</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>);</pre>
+<p>This function is to be used by both clients and servers, to declare
+what SRTP profiles they support, to negotiate with the peer.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-set-profile-direct.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>profiles</p></td>
+<td class="parameter_description"><p>is a string that contains the supported SRTP profiles,
+separated by colons.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err_pos</p></td>
+<td class="parameter_description"><p>In case of an error this will have the position in the string the error occurred, may be NULL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-set-profile-direct.returns"></a><h4>Returns</h4>
+<p> On syntax error <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> is returned,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-get-selected-profile"></a><h3>gnutls_srtp_get_selected_profile ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srtp_get_selected_profile (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-srtp-profile-t" title="enum gnutls_srtp_profile_t"><span class="type">gnutls_srtp_profile_t</span></a> *profile</code></em>);</pre>
+<p>This function allows you to get the negotiated SRTP profile.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-get-selected-profile.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>profile</p></td>
+<td class="parameter_description"><p>will hold the profile</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-get-selected-profile.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 code is returned.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-get-profile-name"></a><h3>gnutls_srtp_get_profile_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_srtp_get_profile_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-srtp-profile-t" title="enum gnutls_srtp_profile_t"><span class="type">gnutls_srtp_profile_t</span></a> profile</code></em>);</pre>
+<p>This function allows you to get the corresponding name for a
+SRTP protection profile.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-get-profile-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>profile</p></td>
+<td class="parameter_description"><p>The profile to look up a string for</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-get-profile-name.returns"></a><h4>Returns</h4>
+<p> On success, the name of a SRTP profile as a string,
+otherwise NULL.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-get-profile-id"></a><h3>gnutls_srtp_get_profile_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srtp_get_profile_id (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-srtp-profile-t" title="enum gnutls_srtp_profile_t"><span class="type">gnutls_srtp_profile_t</span></a> *profile</code></em>);</pre>
+<p>This function allows you to look up a profile based on a string.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-get-profile-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>name</p></td>
+<td class="parameter_description"><p>The name of the profile to look up</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>profile</p></td>
+<td class="parameter_description"><p>Will hold the profile id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-get-profile-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 code is returned.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-get-keys"></a><h3>gnutls_srtp_get_keys ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srtp_get_keys (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *key_material</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_material_size</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> *client_key</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> *client_salt</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> *server_key</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> *server_salt</code></em>);</pre>
+<p>This is a helper function to generate the keying material for SRTP.
+It requires the space of the key material to be pre-allocated (should be at least
+2x the maximum key size and salt size). The <em class="parameter"><code>client_key</code></em>
+, <em class="parameter"><code>client_salt</code></em>
+, <em class="parameter"><code>server_key</code></em>
+
+and <em class="parameter"><code>server_salt</code></em>
+ are convenience datums that point inside the key material. They may
+be <code class="literal">NULL</code>.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-get-keys.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_material</p></td>
+<td class="parameter_description"><p>Space to hold the generated key material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_material_size</p></td>
+<td class="parameter_description"><p>The maximum size of the key material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>client_key</p></td>
+<td class="parameter_description"><p>The master client write key, pointing inside the key material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>server_key</p></td>
+<td class="parameter_description"><p>The master server write key, pointing inside the key material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>client_salt</p></td>
+<td class="parameter_description"><p>The master client write salt, pointing inside the key material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>server_salt</p></td>
+<td class="parameter_description"><p>The master server write salt, pointing inside the key material</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-get-keys.returns"></a><h4>Returns</h4>
+<p> On success the size of the key material is returned,
+otherwise, <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> if the buffer given is not
+sufficient, or a negative error code.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-set-mki"></a><h3>gnutls_srtp_set_mki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srtp_set_mki (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *mki</code></em>);</pre>
+<p>This function sets the Master Key Identifier, to be
+used by this session (if any).</p>
+<div class="refsect3">
+<a name="gnutls-srtp-set-mki.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mki</p></td>
+<td class="parameter_description"><p>holds the MKI</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-set-mki.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 code is returned.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-get-mki"></a><h3>gnutls_srtp_get_mki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srtp_get_mki (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *mki</code></em>);</pre>
+<p>This function exports the negotiated Master Key Identifier,
+received by the peer if any. The returned value in <em class="parameter"><code>mki</code></em>
+ should be
+treated as constant and valid only during the session's lifetime.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-get-mki.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mki</p></td>
+<td class="parameter_description"><p>will hold the MKI</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srtp-get-mki.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 code is returned.</p>
+<p>Since 3.1.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-compress-certificate-get-selected-method"></a><h3>gnutls_compress_certificate_get_selected_method ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="returnvalue">gnutls_compression_method_t</span></a>
+gnutls_compress_certificate_get_selected_method
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function returns the certificate compression method that has been
+selected to compress the certificate before sending it to the peer.
+The selection is done based on the local list of supported compression
+methods and the peer's requested compression methods.</p>
+<div class="refsect3">
+<a name="gnutls-compress-certificate-get-selected-method.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-compress-certificate-get-selected-method.returns"></a><h4>Returns</h4>
+<p> selected certificate compression method.</p>
+<p>Since 3.7.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-compress-certificate-set-methods"></a><h3>gnutls_compress_certificate_set_methods ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_compress_certificate_set_methods
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> *methods</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> methods_len</code></em>);</pre>
+<p>This function sets the supported compression methods for certificate compression
+for the given session. The list of supported compression methods will be used
+for a) requesting the compression of peer's certificate and b) selecting the
+method to compress the local certificate before sending it to the peer.
+The order of compression methods inside the list does matter as the method
+that appears earlier in the list will be preffered before the later ones.
+Note that even if you set the list of supported compression methods, the
+compression might not be used if the peer does not support any of your chosen
+compression methods.</p>
+<p>The list of supported compression methods must meet the following criteria:
+Argument <em class="parameter"><code>methods</code></em>
+ must be an array of valid compression methods of type
+<a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a>. Argument <em class="parameter"><code>methods_len</code></em>
+ must contain the number of
+compression methods stored in the <em class="parameter"><code>methods</code></em>
+ array and must be within range &lt;1, 127&gt;.
+The length constraints are defined by <code class="literal">MIN_COMPRESS_CERTIFICATE_METHODS</code>
+and <code class="literal">MAX_COMPRESS_CERTIFICATE_METHODS</code> macros located in the header file
+compress_certificate.h.</p>
+<p>If either <em class="parameter"><code>methods</code></em>
+ or <em class="parameter"><code>methods_len</code></em>
+ is equal to 0, current list of supported
+compression methods will be unset.</p>
+<div class="refsect3">
+<a name="gnutls-compress-certificate-set-methods.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>methods</p></td>
+<td class="parameter_description"><p>is a list of supported compression methods.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>methods_len</p></td>
+<td class="parameter_description"><p>number of compression methods in <em class="parameter"><code>methods</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-compress-certificate-set-methods.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> on success, otherwise a negative error code.</p>
+<p>Since 3.7.4</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alpn-get-selected-protocol"></a><h3>gnutls_alpn_get_selected_protocol ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_alpn_get_selected_protocol (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *protocol</code></em>);</pre>
+<p>This function allows you to get the negotiated protocol name. The
+returned protocol should be treated as opaque, constant value and
+only valid during the session life.</p>
+<p>The selected protocol is the first supported by the list sent
+by the client.</p>
+<div class="refsect3">
+<a name="gnutls-alpn-get-selected-protocol.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>protocol</p></td>
+<td class="parameter_description"><p>will hold the protocol name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alpn-get-selected-protocol.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 code is returned.</p>
+<p>Since 3.2.0</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alpn-set-protocols"></a><h3>gnutls_alpn_set_protocols ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_alpn_set_protocols (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *protocols</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> protocols_size</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function is to be used by both clients and servers, to declare
+the supported ALPN protocols, which are used during negotiation with peer.</p>
+<p>See <a class="link" href="gnutls-gnutls.html#gnutls-alpn-flags-t" title="enum gnutls_alpn_flags_t"><code class="literal">gnutls_alpn_flags_t</code></a> description for the documentation of available
+flags.</p>
+<div class="refsect3">
+<a name="gnutls-alpn-set-protocols.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>protocols</p></td>
+<td class="parameter_description"><p>is the protocol names to add.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>protocols_size</p></td>
+<td class="parameter_description"><p>the number of protocols to add.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or a sequence of <a class="link" href="gnutls-gnutls.html#gnutls-alpn-flags-t" title="enum gnutls_alpn_flags_t"><code class="literal">gnutls_alpn_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alpn-set-protocols.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 code is returned.</p>
+<p>Since 3.2.0</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-key-generate"></a><h3>gnutls_key_generate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_key_generate (<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>unsigned <span class="type">int</span> key_size</code></em>);</pre>
+<p>Generates a random key of <em class="parameter"><code>key_size</code></em>
+ bytes.</p>
+<div class="refsect3">
+<a name="gnutls-key-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>key</p></td>
+<td class="parameter_description"><p>is a pointer to a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> which will contain a newly
+created key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_size</p></td>
+<td class="parameter_description"><p>the number of bytes of the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-key-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, or an
+error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-init"></a><h3>gnutls_priority_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> *priority_cache</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *priorities</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>);</pre>
+<p>For applications that do not modify their crypto settings per release, consider
+using <a class="link" href="gnutls-gnutls.html#gnutls-priority-init2" title="gnutls_priority_init2 ()"><code class="function">gnutls_priority_init2()</code></a> with <a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-INIT-DEF-APPEND:CAPS" title="GNUTLS_PRIORITY_INIT_DEF_APPEND"><code class="literal">GNUTLS_PRIORITY_INIT_DEF_APPEND</code></a> flag
+instead. We suggest to use centralized crypto settings handled by the GnuTLS
+library, and applications modifying the default settings to their needs.</p>
+<p>This function is identical to <a class="link" href="gnutls-gnutls.html#gnutls-priority-init2" title="gnutls_priority_init2 ()"><code class="function">gnutls_priority_init2()</code></a> with zero
+flags.</p>
+<p>A <code class="literal">NULL</code> <em class="parameter"><code>priorities</code></em>
+ string indicates the default priorities to be
+used (this is available since GnuTLS 3.3.0).</p>
+<div class="refsect3">
+<a name="gnutls-priority-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>priority_cache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priorities</p></td>
+<td class="parameter_description"><p>is a string describing priorities (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err_pos</p></td>
+<td class="parameter_description"><p>In case of an error this will have the position in the string the error occurred</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-init.returns"></a><h4>Returns</h4>
+<p> On syntax error <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> is returned,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-init2"></a><h3>gnutls_priority_init2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_init2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> *priority_cache</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *priorities</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>Sets priorities for the ciphers, key exchange methods, and macs.
+The <em class="parameter"><code>priority_cache</code></em>
+ should be deinitialized
+using <a class="link" href="gnutls-gnutls.html#gnutls-priority-deinit" title="gnutls_priority_deinit ()"><code class="function">gnutls_priority_deinit()</code></a>.</p>
+<p>The <span class="type">priorities</span> option allows you to specify a colon
+separated list of the cipher priorities to enable.
+Some keywords are defined to provide quick access
+to common preferences.</p>
+<p>When <em class="parameter"><code>flags</code></em>
+ is set to <a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-INIT-DEF-APPEND:CAPS" title="GNUTLS_PRIORITY_INIT_DEF_APPEND"><code class="literal">GNUTLS_PRIORITY_INIT_DEF_APPEND</code></a> then the <em class="parameter"><code>priorities</code></em>
+
+specified will be appended to the default options.</p>
+<p>Unless there is a special need, use the "NORMAL" keyword to
+apply a reasonable security level, or "NORMAL:%<code class="literal">COMPAT</code>" for compatibility.</p>
+<p>"PERFORMANCE" means all the "secure" ciphersuites are enabled,
+limited to 128 bit ciphers and sorted by terms of speed
+performance.</p>
+<p>"LEGACY" the NORMAL settings for GnuTLS 3.2.x or earlier. There is
+no verification profile set, and the allowed DH primes are considered
+weak today.</p>
+<p>"NORMAL" means all "secure" ciphersuites. The 256-bit ciphers are
+included as a fallback only. The ciphers are sorted by security
+margin.</p>
+<p>"PFS" means all "secure" ciphersuites that support perfect forward secrecy.
+The 256-bit ciphers are included as a fallback only.
+The ciphers are sorted by security margin.</p>
+<p>"SECURE128" means all "secure" ciphersuites of security level 128-bit
+or more.</p>
+<p>"SECURE192" means all "secure" ciphersuites of security level 192-bit
+or more.</p>
+<p>"SUITEB128" means all the NSA SuiteB ciphersuites with security level
+of 128.</p>
+<p>"SUITEB192" means all the NSA SuiteB ciphersuites with security level
+of 192.</p>
+<p>"NONE" means nothing is enabled. This disables everything, including protocols.</p>
+<p>"@<em class="parameter"><code>KEYWORD1</code></em>
+,KEYWORD2,..." The system administrator imposed settings.
+The provided keyword(s) will be expanded from a configuration-time
+provided file - default is: /etc/gnutls/config.
+Any attributes that follow it, will be appended to the expanded
+string. If multiple keywords are provided, separated by commas,
+then the first keyword that exists in the configuration file
+will be used. At least one of the keywords must exist, or this
+function will return an error. Typical usage would be to specify
+an application specified keyword first, followed by "SYSTEM" as
+a default fallback. e.g., "<em class="parameter"><code>LIBVIRT</code></em>
+,SYSTEM:!-VERS-SSL3.0" will
+first try to find a config file entry matching "LIBVIRT", but if
+that does not exist will use the entry for "SYSTEM". If "SYSTEM"
+does not exist either, an error will be returned. In all cases,
+the SSL3.0 protocol will be disabled. The system priority file
+entries should be formatted as "KEYWORD=VALUE", e.g.,
+"SYSTEM=NORMAL:+ARCFOUR-128".</p>
+<p>Special keywords are "!", "-" and "+".
+"!" or "-" appended with an algorithm will remove this algorithm.
+"+" appended with an algorithm will add this algorithm.</p>
+<p>Check the GnuTLS manual section "Priority strings" for detailed
+information.</p>
+<p>Examples:</p>
+<p>"NONE:+VERS-TLS-ALL:+MAC-ALL:+RSA:+AES-128-CBC:+SIGN-ALL:+COMP-NULL"</p>
+<p>"NORMAL:+ARCFOUR-128" means normal ciphers plus ARCFOUR-128.</p>
+<p>"SECURE128:-VERS-SSL3.0" means that only secure ciphers are
+and enabled, SSL3.0 is disabled.</p>
+<p>"NONE:+VERS-TLS-ALL:+AES-128-CBC:+RSA:+SHA1:+COMP-NULL:+SIGN-RSA-SHA1",</p>
+<p>"NONE:+VERS-TLS-ALL:+AES-128-CBC:+ECDHE-RSA:+SHA1:+COMP-NULL:+SIGN-RSA-SHA1:+CURVE-SECP256R1",</p>
+<p>"SECURE256:+SECURE128",</p>
+<p>Note that "NORMAL:%<code class="literal">COMPAT</code>" is the most compatible mode.</p>
+<p>A <code class="literal">NULL</code> <em class="parameter"><code>priorities</code></em>
+ string indicates the default priorities to be
+used (this is available since GnuTLS 3.3.0).</p>
+<div class="refsect3">
+<a name="gnutls-priority-init2.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>priority_cache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priorities</p></td>
+<td class="parameter_description"><p>is a string describing priorities (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err_pos</p></td>
+<td class="parameter_description"><p>In case of an error this will have the position in the string the error occurred</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-INIT-DEF-APPEND:CAPS" title="GNUTLS_PRIORITY_INIT_DEF_APPEND"><code class="literal">GNUTLS_PRIORITY_INIT_DEF_APPEND</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-init2.returns"></a><h4>Returns</h4>
+<p> On syntax error <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> is returned,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-deinit"></a><h3>gnutls_priority_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_priority_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority_cache</code></em>);</pre>
+<p>Deinitializes the priority cache.</p>
+<div class="refsect3">
+<a name="gnutls-priority-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>priority_cache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-get-cipher-suite-index"></a><h3>gnutls_priority_get_cipher_suite_index ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_get_cipher_suite_index
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *sidx</code></em>);</pre>
+<p>Provides the internal ciphersuite index to be used with
+<code class="function">gnutls_cipher_suite_info()</code>. The index <em class="parameter"><code>idx</code></em>
+ provided is an
+index kept at the priorities structure. It might be that a valid
+priorities index does not correspond to a ciphersuite and in
+that case <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_SUITE"><code class="literal">GNUTLS_E_UNKNOWN_CIPHER_SUITE</code></a> will be returned.
+Once the last available index is crossed then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</p>
+<div class="refsect3">
+<a name="gnutls-priority-get-cipher-suite-index.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>is an index number.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sidx</p></td>
+<td class="parameter_description"><p>internal index of cipher suite to get information about.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-get-cipher-suite-index.returns"></a><h4>Returns</h4>
+<p> On success it returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> (0), or a negative error value otherwise.</p>
+</div>
+<p class="since">Since: 3.0.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-string-list"></a><h3>gnutls_priority_string_list ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_priority_string_list (<em class="parameter"><code><span class="type">unsigned </span> iter</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>Can be used to iterate all available priority strings.
+Due to internal implementation details, there are cases where this
+function can return the empty string. In that case that string should be ignored.
+When no strings are available it returns <code class="literal">NULL</code>.</p>
+<div class="refsect3">
+<a name="gnutls-priority-string-list.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>iter</p></td>
+<td class="parameter_description"><p>an integer counter starting from zero</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-PRIORITY-LIST-INIT-KEYWORDS:CAPS" title="GNUTLS_PRIORITY_LIST_INIT_KEYWORDS"><code class="literal">GNUTLS_PRIORITY_LIST_INIT_KEYWORDS</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-PRIORITY-LIST-SPECIAL:CAPS" title="GNUTLS_PRIORITY_LIST_SPECIAL"><code class="literal">GNUTLS_PRIORITY_LIST_SPECIAL</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-string-list.returns"></a><h4>Returns</h4>
+<p> a priority string</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-set"></a><h3>gnutls_priority_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_set (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> priority</code></em>);</pre>
+<p>Sets the priorities to use on the ciphers, key exchange methods,
+and macs. Note that this function is expected to be called once
+per session; when called multiple times (e.g., before a re-handshake,
+the caller should make sure that any new settings are not incompatible
+with the original session).</p>
+<div class="refsect3">
+<a name="gnutls-priority-set.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priority</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-set.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> on success, or an error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-set-direct"></a><h3>gnutls_priority_set_direct ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_set_direct (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *priorities</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>);</pre>
+<p>Sets the priorities to use on the ciphers, key exchange methods,
+and macs. This function avoids keeping a
+priority cache and is used to directly set string priorities to a
+TLS session. For documentation check the <a class="link" href="gnutls-gnutls.html#gnutls-priority-init" title="gnutls_priority_init ()"><code class="function">gnutls_priority_init()</code></a>.</p>
+<p>To use a reasonable default, consider using <a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority" title="gnutls_set_default_priority ()"><code class="function">gnutls_set_default_priority()</code></a>,
+or <a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority-append" title="gnutls_set_default_priority_append ()"><code class="function">gnutls_set_default_priority_append()</code></a> instead of this function.</p>
+<div class="refsect3">
+<a name="gnutls-priority-set-direct.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>priorities</p></td>
+<td class="parameter_description"><p>is a string describing priorities</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err_pos</p></td>
+<td class="parameter_description"><p>In case of an error this will have the position in the string the error occurred</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-set-direct.returns"></a><h4>Returns</h4>
+<p> On syntax error <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> is returned,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-certificate-type-list"></a><h3>gnutls_priority_certificate_type_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_certificate_type_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<p>Get a list of available certificate types in the priority
+structure.</p>
+<p>As of version 3.6.4 this function is an alias for
+gnutls_priority_certificate_type_list2 with the target parameter
+set to:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>GNUTLS_CTYPE_SERVER, if the <code class="literal">SERVER_PRECEDENCE</code> option is set</p></li>
+<li class="listitem"><p>GNUTLS_CTYPE_CLIENT, otherwise.</p></li>
+</ul></div>
+<div class="refsect3">
+<a name="gnutls-priority-certificate-type-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-certificate-type-list.returns"></a><h4>Returns</h4>
+<p> the number of certificate types, or an error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-certificate-type-list2"></a><h3>gnutls_priority_certificate_type_list2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_certificate_type_list2
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ctype-target-t" title="enum gnutls_ctype_target_t"><span class="type">gnutls_ctype_target_t</span></a> target</code></em>);</pre>
+<p>Get a list of available certificate types for the given target
+in the priority structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-certificate-type-list2.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>target</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-ctype-target-t" title="enum gnutls_ctype_target_t"><span class="type">gnutls_ctype_target_t</span></a> type. Valid arguments are
+GNUTLS_CTYPE_CLIENT and GNUTLS_CTYPE_SERVER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-certificate-type-list2.returns"></a><h4>Returns</h4>
+<p> the number of certificate types, or an error code.</p>
+</div>
+<p class="since">Since: 3.6.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-sign-list"></a><h3>gnutls_priority_sign_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_sign_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<p>Get a list of available signature algorithms in the priority
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-sign-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-sign-list.returns"></a><h4>Returns</h4>
+<p> the number of algorithms, or an error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-protocol-list"></a><h3>gnutls_priority_protocol_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_protocol_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<p>Get a list of available TLS version numbers in the priority
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-protocol-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-protocol-list.returns"></a><h4>Returns</h4>
+<p> the number of protocols, or an error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-ecc-curve-list"></a><h3>gnutls_priority_ecc_curve_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_ecc_curve_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_priority_ecc_curve_list</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function has been replaced by
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-group-list" title="gnutls_priority_group_list ()"><code class="function">gnutls_priority_group_list()</code></a> since 3.6.0.</p>
+</div>
+<p>Get a list of available elliptic curves in the priority
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-ecc-curve-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-ecc-curve-list.returns"></a><h4>Returns</h4>
+<p> the number of items, or an error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-group-list"></a><h3>gnutls_priority_group_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_group_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<p>Get a list of available groups in the priority
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-group-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-group-list.returns"></a><h4>Returns</h4>
+<p> the number of items, or an error code.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-kx-list"></a><h3>gnutls_priority_kx_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_kx_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<p>Get a list of available key exchange methods in the priority
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-kx-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-kx-list.returns"></a><h4>Returns</h4>
+<p> the number of items, or an error code.</p>
+</div>
+<p class="since">Since: 3.2.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-cipher-list"></a><h3>gnutls_priority_cipher_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_cipher_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<p>Get a list of available ciphers in the priority
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-cipher-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-cipher-list.returns"></a><h4>Returns</h4>
+<p> the number of items, or an error code.</p>
+</div>
+<p class="since">Since: 3.2.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-mac-list"></a><h3>gnutls_priority_mac_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_priority_mac_list (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> pcache</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">int</span> **list</code></em>);</pre>
+<p>Get a list of available MAC algorithms in the priority
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-priority-mac-list.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>pcache</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-priority-t" title="gnutls_priority_t"><span class="type">gnutls_priority_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list</p></td>
+<td class="parameter_description"><p>will point to an integer list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-priority-mac-list.returns"></a><h4>Returns</h4>
+<p> the number of items, or an error code.</p>
+</div>
+<p class="since">Since: 3.2.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-get-system-config-file"></a><h3>gnutls_get_system_config_file ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_get_system_config_file (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the filename of the system wide configuration
+file to be loaded by the library.</p>
+<div class="refsect3">
+<a name="gnutls-get-system-config-file.returns"></a><h4>Returns</h4>
+<p> a constant pointer to the config file path</p>
+</div>
+<p class="since">Since: 3.6.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-set-default-priority"></a><h3>gnutls_set_default_priority ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_set_default_priority (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Sets the default priority on the ciphers, key exchange methods,
+and macs. This is the recommended method of
+setting the defaults, in order to promote consistency between applications
+using GnuTLS, and to allow GnuTLS using applications to update settings
+in par with the library. For client applications which require
+maximum compatibility consider calling <code class="function">gnutls_session_enable_compatibility_mode()</code>
+after this function.</p>
+<p>For an application to specify additional options to priority string
+consider using <a class="link" href="gnutls-gnutls.html#gnutls-set-default-priority-append" title="gnutls_set_default_priority_append ()"><code class="function">gnutls_set_default_priority_append()</code></a>.</p>
+<p>To allow a user to override the defaults (e.g., when a user interface
+or configuration file is available), the functions
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()"><code class="function">gnutls_priority_set_direct()</code></a> or <a class="link" href="gnutls-gnutls.html#gnutls-priority-set" title="gnutls_priority_set ()"><code class="function">gnutls_priority_set()</code></a> can
+be used.</p>
+<div class="refsect3">
+<a name="gnutls-set-default-priority.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-set-default-priority.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> on success, or an error code.</p>
+</div>
+<p class="since">Since: 2.1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-set-default-priority-append"></a><h3>gnutls_set_default_priority_append ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_set_default_priority_append (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *add_prio</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err_pos</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>Sets the default priority on the ciphers, key exchange methods,
+and macs with the additional options in <em class="parameter"><code>add_prio</code></em>
+. This is the recommended method of
+setting the defaults when only few additional options are to be added. This promotes
+consistency between applications using GnuTLS, and allows GnuTLS using applications
+to update settings in par with the library.</p>
+<p>The <em class="parameter"><code>add_prio</code></em>
+ string should start as a normal priority string, e.g.,
+'-VERS-TLS-ALL:+VERS-TLS1.3:%<code class="literal">COMPAT</code>' or '%<code class="literal">FORCE_ETM</code>'. That is, it must not start
+with ':'.</p>
+<p>To allow a user to override the defaults (e.g., when a user interface
+or configuration file is available), the functions
+<a class="link" href="gnutls-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()"><code class="function">gnutls_priority_set_direct()</code></a> or <a class="link" href="gnutls-gnutls.html#gnutls-priority-set" title="gnutls_priority_set ()"><code class="function">gnutls_priority_set()</code></a> can
+be used.</p>
+<div class="refsect3">
+<a name="gnutls-set-default-priority-append.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>add_prio</p></td>
+<td class="parameter_description"><p>is a string describing priorities to be appended to default</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err_pos</p></td>
+<td class="parameter_description"><p>In case of an error this will have the position in the string the error occurred</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-set-default-priority-append.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> on success, or an error code.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-suite-get-name"></a><h3>gnutls_cipher_suite_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_cipher_suite_get_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> kx_algorithm</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher_algorithm</code></em>);</pre>
+<p>This function returns the ciphersuite name under TLS1.2 or earlier
+versions when provided with individual algorithms. The full cipher suite
+name must be prepended by TLS or SSL depending of the protocol in use.</p>
+<p>To get a description of the current ciphersuite across versions, it
+is recommended to use <a class="link" href="gnutls-gnutls.html#gnutls-session-get-desc" title="gnutls_session_get_desc ()"><code class="function">gnutls_session_get_desc()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-suite-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>kx_algorithm</p></td>
+<td class="parameter_description"><p>is a Key exchange algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cipher_algorithm</p></td>
+<td class="parameter_description"><p>is a cipher algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mac_algorithm</p></td>
+<td class="parameter_description"><p>is a MAC algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-cipher-suite-get-name.returns"></a><h4>Returns</h4>
+<p> a string that contains the name of a TLS cipher suite,
+specified by the given algorithms, or <code class="literal">NULL</code>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-protocol-get-name"></a><h3>gnutls_protocol_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_protocol_get_name ();</pre>
+<p>Convert a <a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> value to a string.</p>
+<div class="refsect3">
+<a name="gnutls-protocol-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>version</p></td>
+<td class="parameter_description"><p>is a (gnutls) version number</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-protocol-get-name.returns"></a><h4>Returns</h4>
+<p> a string that contains the name of the specified TLS
+version (e.g., "TLS1.0"), or <code class="literal">NULL</code>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-data"></a><h3>gnutls_session_get_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_get_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *session_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *session_data_size</code></em>);</pre>
+<p>Returns all session parameters needed to be stored to support resumption,
+in a pre-allocated buffer.</p>
+<p>See <a class="link" href="gnutls-gnutls.html#gnutls-session-get-data2" title="gnutls_session_get_data2 ()"><code class="function">gnutls_session_get_data2()</code></a> for more information.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-data.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data</p></td>
+<td class="parameter_description"><p>is a pointer to space to hold the session.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_data_size</p></td>
+<td class="parameter_description"><p>is the session_data's size, or it will be set by the function.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-data.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-data2"></a><h3>gnutls_session_get_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_get_data2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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>);</pre>
+<p>Returns necessary parameters to support resumption. The client
+should call this function and store the returned session data. A session
+can be resumed later by calling <code class="function">gnutls_session_set_data()</code> with the returned
+data. Note that under TLS 1.3, it is recommended for clients to use
+session parameters only once, to prevent passive-observers from correlating
+the different connections.</p>
+<p>The returned <em class="parameter"><code>data</code></em>
+ are allocated and must be released using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>This function will fail if called prior to handshake completion. In
+case of false start TLS, the handshake completes only after data have
+been successfully received from the peer.</p>
+<p>Under TLS1.3 session resumption is possible only after a session ticket
+is received by the client. To ensure that such a ticket has been received use
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-flags" title="gnutls_session_get_flags ()"><code class="function">gnutls_session_get_flags()</code></a> and check for flag <a class="link" href="gnutls-gnutls.html#GNUTLS-SFLAGS-SESSION-TICKET:CAPS"><code class="literal">GNUTLS_SFLAGS_SESSION_TICKET</code></a>;
+if this flag is not set, this function will wait for a new ticket within
+an estimated roundtrip, and if not received will return dummy data which
+cannot lead to resumption.</p>
+<p>To get notified when new tickets are received by the server
+use <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-hook-function" title="gnutls_handshake_set_hook_function ()"><code class="function">gnutls_handshake_set_hook_function()</code></a> to wait for <a class="link" href="gnutls-gnutls.html#GNUTLS-HANDSHAKE-NEW-SESSION-TICKET:CAPS"><code class="literal">GNUTLS_HANDSHAKE_NEW_SESSION_TICKET</code></a>
+messages. Each call of <a class="link" href="gnutls-gnutls.html#gnutls-session-get-data2" title="gnutls_session_get_data2 ()"><code class="function">gnutls_session_get_data2()</code></a> after a ticket is
+received, will return session resumption data corresponding to the last
+received ticket.</p>
+<p>Note that this function under TLS1.3 requires a callback to be set with
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-timeout-function" title="gnutls_transport_set_pull_timeout_function ()"><code class="function">gnutls_transport_set_pull_timeout_function()</code></a> for successful operation. There
+was a bug before 3.6.10 which could make this function fail if that callback
+was not set. On later versions if not set, the function will return a successful
+error code, but will return dummy data that cannot lead to a resumption.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-data2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>is a pointer to a datum that will hold the session.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-data2.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-random"></a><h3>gnutls_session_get_random ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_get_random (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *client</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> *server</code></em>);</pre>
+<p>This function returns pointers to the client and server
+random fields used in the TLS handshake. The pointers are
+not to be modified or deallocated.</p>
+<p>If a client random value has not yet been established, the output
+will be garbage.</p>
+<div class="refsect3">
+<a name="gnutls-session-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>client</p></td>
+<td class="parameter_description"><p>the client part of the random</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>server</p></td>
+<td class="parameter_description"><p>the server part of the random</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-master-secret"></a><h3>gnutls_session_get_master_secret ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_get_master_secret (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *secret</code></em>);</pre>
+<p>This function returns pointers to the master secret
+used in the TLS session. The pointers are not to be modified or deallocated.</p>
+<p>This function is only applicable under TLS 1.2 or earlier versions.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-master-secret.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secret</p></td>
+<td class="parameter_description"><p>the session's master secret</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-desc"></a><h3>gnutls_session_get_desc ()</h3>
+<pre class="programlisting"><span class="returnvalue">char</span> *
+gnutls_session_get_desc (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function returns a string describing the current session.
+The string is null terminated and allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If initial negotiation is not complete when this function is called,
+<code class="literal">NULL</code> will be returned.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-desc.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-desc.returns"></a><h4>Returns</h4>
+<p> a description of the protocols and algorithms in the current session.</p>
+</div>
+<p class="since">Since: 3.1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-verify-function"></a><h3>gnutls_session_set_verify_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_set_verify_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_certificate_verify_function</span> *func</code></em>);</pre>
+<p>This function sets a callback to be called when peer's certificate
+has been received in order to verify it on receipt rather than
+doing after the handshake is completed. This overrides any callback
+set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-function" title="gnutls_certificate_set_verify_function ()"><code class="function">gnutls_certificate_set_verify_function()</code></a>.</p>
+<p>The callback's function prototype is:
+int (*callback)(gnutls_session_t);</p>
+<p>If the callback function is provided then gnutls will call it, in the
+handshake, just after the certificate message has been received.
+To verify or obtain the certificate the <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get" title="gnutls_certificate_type_get ()"><code class="function">gnutls_certificate_type_get()</code></a>, <a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()"><code class="function">gnutls_certificate_get_peers()</code></a> functions
+can be used.</p>
+<p>The callback function should return 0 for the handshake to continue
+or non-zero to terminate.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-verify-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-verify-cert"></a><h3>gnutls_session_set_verify_cert ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_set_verify_cert (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function instructs GnuTLS to verify the peer's certificate
+using the provided hostname. If the verification fails the handshake
+will also fail with <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR"><code class="literal">GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR</code></a>. In that
+case the verification result can be obtained using <a class="link" href="gnutls-gnutls.html#gnutls-session-get-verify-cert-status" title="gnutls_session_get_verify_cert_status ()"><code class="function">gnutls_session_get_verify_cert_status()</code></a>.</p>
+<p>The <em class="parameter"><code>hostname</code></em>
+ pointer provided must remain valid for the lifetime
+of the session. More precisely it should be available during any subsequent
+handshakes. If no hostname is provided, no hostname verification
+will be performed. For a more advanced verification function check
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-verify-cert2" title="gnutls_session_set_verify_cert2 ()"><code class="function">gnutls_session_set_verify_cert2()</code></a>.</p>
+<p>If <em class="parameter"><code>flags</code></em>
+ is provided which contain a profile, this function should be
+called after any session priority setting functions.</p>
+<p>The <a class="link" href="gnutls-gnutls.html#gnutls-session-set-verify-cert" title="gnutls_session_set_verify_cert ()"><code class="function">gnutls_session_set_verify_cert()</code></a> function is intended to be used by TLS
+clients to verify the server's certificate.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-verify-cert.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hostname</p></td>
+<td class="parameter_description"><p>is the expected name of the peer; 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>flags for certificate verification -- <a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-verify-cert2"></a><h3>gnutls_session_set_verify_cert2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_set_verify_cert2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-typed-vdata-st" title="gnutls_typed_vdata_st"><span class="type">gnutls_typed_vdata_st</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> elements</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function instructs GnuTLS to verify the peer's certificate
+using the provided typed data information. If the verification fails the handshake
+will also fail with <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR"><code class="literal">GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR</code></a>. In that
+case the verification result can be obtained using <a class="link" href="gnutls-gnutls.html#gnutls-session-get-verify-cert-status" title="gnutls_session_get_verify_cert_status ()"><code class="function">gnutls_session_get_verify_cert_status()</code></a>.</p>
+<p>The acceptable typed data are the same as in <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers" title="gnutls_certificate_verify_peers ()"><code class="function">gnutls_certificate_verify_peers()</code></a>,
+and once set must remain valid for the lifetime of the session. More precisely
+they should be available during any subsequent handshakes.</p>
+<p>If <em class="parameter"><code>flags</code></em>
+ is provided which contain a profile, this function should be
+called after any session priority setting functions.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-verify-cert2.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>an array of typed data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>elements</p></td>
+<td class="parameter_description"><p>the number of data elements</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags for certificate verification -- <a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-verify-cert-status"></a><h3>gnutls_session_get_verify_cert_status ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_session_get_verify_cert_status (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> Param1</code></em>);</pre>
+<p>This function returns the status of the verification when initiated
+via auto-verification, i.e., by <a class="link" href="gnutls-gnutls.html#gnutls-session-set-verify-cert2" title="gnutls_session_set_verify_cert2 ()"><code class="function">gnutls_session_set_verify_cert2()</code></a> or
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-verify-cert" title="gnutls_session_set_verify_cert ()"><code class="function">gnutls_session_set_verify_cert()</code></a>. If no certificate verification
+was occurred then the return value would be set to ((unsigned int)-1).</p>
+<p>The certificate verification status is the same as in <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers" title="gnutls_certificate_verify_peers ()"><code class="function">gnutls_certificate_verify_peers()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-verify-cert-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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-verify-cert-status.returns"></a><h4>Returns</h4>
+<p> the certificate verification status.</p>
+</div>
+<p class="since">Since: 3.4.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-premaster"></a><h3>gnutls_session_set_premaster ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_set_premaster (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> entity</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-protocol-t" title="enum gnutls_protocol_t"><span class="type">gnutls_protocol_t</span></a> version</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-kx-algorithm-t" title="enum gnutls_kx_algorithm_t"><span class="type">gnutls_kx_algorithm_t</span></a> kx</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><span class="type">gnutls_cipher_algorithm_t</span></a> cipher</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-compression-method-t" title="enum gnutls_compression_method_t"><span class="type">gnutls_compression_method_t</span></a> comp</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> *master</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> *session_id</code></em>);</pre>
+<p>This function sets the premaster secret in a session. This is
+a function intended for exceptional uses. Do not use this
+function unless you are implementing a legacy protocol.
+Use <code class="function">gnutls_session_set_data()</code> instead.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-premaster.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>entity</p></td>
+<td class="parameter_description"><p>GNUTLS_SERVER or GNUTLS_CLIENT</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>version</p></td>
+<td class="parameter_description"><p>the TLS protocol version</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>kx</p></td>
+<td class="parameter_description"><p>the key exchange method</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cipher</p></td>
+<td class="parameter_description"><p>the cipher</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mac</p></td>
+<td class="parameter_description"><p>the MAC algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>comp</p></td>
+<td class="parameter_description"><p>the compression method (ignored)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>master</p></td>
+<td class="parameter_description"><p>the master key to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_id</p></td>
+<td class="parameter_description"><p>the session identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-set-premaster.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-id"></a><h3>gnutls_session_get_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_get_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *session_id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *session_id_size</code></em>);</pre>
+<p>Returns the TLS session identifier. The session ID is selected by the
+server, and in older versions of TLS was a unique identifier shared
+between client and server which was persistent across resumption.
+In the latest version of TLS (1.3) or TLS with session tickets, the
+notion of session identifiers is undefined and cannot be relied for uniquely
+identifying sessions across client and server.</p>
+<p>In client side this function returns the identifier returned by the
+server, and cannot be assumed to have any relation to session resumption.
+In server side this function is guaranteed to return a persistent
+identifier of the session since GnuTLS 3.6.4, which may not necessarily
+map into the TLS session ID value. Prior to that version the value
+could only be considered a persistent identifier, under TLS1.2 or earlier
+and when no session tickets were in use.</p>
+<p>The session identifier value returned is always less than
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID-SIZE:CAPS" title="GNUTLS_MAX_SESSION_ID_SIZE"><code class="literal">GNUTLS_MAX_SESSION_ID_SIZE</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_id</p></td>
+<td class="parameter_description"><p>is a pointer to space to hold the session id.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_id_size</p></td>
+<td class="parameter_description"><p>initially should contain the maximum <em class="parameter"><code>session_id</code></em>
+size and will be updated.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-id2"></a><h3>gnutls_session_get_id2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_get_id2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *session_id</code></em>);</pre>
+<p>Returns the TLS session identifier. The session ID is selected by the
+server, and in older versions of TLS was a unique identifier shared
+between client and server which was persistent across resumption.
+In the latest version of TLS (1.3) or TLS 1.2 with session tickets, the
+notion of session identifiers is undefined and cannot be relied for uniquely
+identifying sessions across client and server.</p>
+<p>In client side this function returns the identifier returned by the
+server, and cannot be assumed to have any relation to session resumption.
+In server side this function is guaranteed to return a persistent
+identifier of the session since GnuTLS 3.6.4, which may not necessarily
+map into the TLS session ID value. Prior to that version the value
+could only be considered a persistent identifier, under TLS1.2 or earlier
+and when no session tickets were in use.</p>
+<p>The session identifier value returned is always less than
+<a class="link" href="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID-SIZE:CAPS" title="GNUTLS_MAX_SESSION_ID_SIZE"><code class="literal">GNUTLS_MAX_SESSION_ID_SIZE</code></a> and should be treated as constant.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-id2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_id</p></td>
+<td class="parameter_description"><p>will point to the session ID.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-id2.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-id"></a><h3>gnutls_session_set_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_set_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *sid</code></em>);</pre>
+<p>This function sets the session ID to be used in a client hello.
+This is a function intended for exceptional uses. Do not use this
+function unless you are implementing a custom protocol.</p>
+<p>To set session resumption parameters use <code class="function">gnutls_session_set_data()</code> instead.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sid</p></td>
+<td class="parameter_description"><p>the session identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-set-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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.2.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-channel-binding"></a><h3>gnutls_session_channel_binding ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_channel_binding (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-channel-binding-t" title="enum gnutls_channel_binding_t"><span class="type">gnutls_channel_binding_t</span></a> cbtype</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> *cb</code></em>);</pre>
+<p>Extract given channel binding data of the <em class="parameter"><code>cbtype</code></em>
+ (e.g.,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CB-TLS-UNIQUE:CAPS"><code class="literal">GNUTLS_CB_TLS_UNIQUE</code></a>) type.</p>
+<div class="refsect3">
+<a name="gnutls-session-channel-binding.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cbtype</p></td>
+<td class="parameter_description"><p>an <a class="link" href="gnutls-gnutls.html#gnutls-channel-binding-t" title="enum gnutls_channel_binding_t"><span class="type">gnutls_channel_binding_t</span></a> enumeration type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cb</p></td>
+<td class="parameter_description"><p>output buffer array with data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-channel-binding.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> on success,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a> if the <em class="parameter"><code>cbtype</code></em>
+is unsupported,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-CHANNEL-BINDING-NOT-AVAILABLE:CAPS" title="GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE"><code class="literal">GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE</code></a> if the data is not
+currently available, or an error code.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-is-resumed"></a><h3>gnutls_session_is_resumed ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_is_resumed (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Checks whether session is resumed or not. This is functional
+for both server and client side.</p>
+<div class="refsect3">
+<a name="gnutls-session-is-resumed.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-is-resumed.returns"></a><h4>Returns</h4>
+<p> non zero if this session is resumed, or a zero if this is
+a new session.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-resumption-requested"></a><h3>gnutls_session_resumption_requested ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_resumption_requested (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Check whether the client has asked for session resumption.
+This function is valid only on server side.</p>
+<div class="refsect3">
+<a name="gnutls-session-resumption-requested.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-resumption-requested.returns"></a><h4>Returns</h4>
+<p> non zero if session resumption was asked, or a zero if not.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-store-func"></a><h3>gnutls_db_store_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_db_store_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *Param1</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><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>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-remove-func"></a><h3>gnutls_db_remove_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_db_remove_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *Param1</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>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-retr-func"></a><h3>gnutls_db_retr_func ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="returnvalue">gnutls_datum_t</span></a>
+<span class="c_punctuation">(</span>*gnutls_db_retr_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *Param1</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>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-set-cache-expiration"></a><h3>gnutls_db_set_cache_expiration ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_db_set_cache_expiration (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> seconds</code></em>);</pre>
+<p>Set the expiration time for resumed sessions. The default is 21600
+(6 hours) at the time of writing.</p>
+<p>The maximum value that can be set using this function is 604800
+(7 days).</p>
+<div class="refsect3">
+<a name="gnutls-db-set-cache-expiration.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seconds</p></td>
+<td class="parameter_description"><p>is the number of seconds.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-get-default-cache-expiration"></a><h3>gnutls_db_get_default_cache_expiration ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_db_get_default_cache_expiration
+ (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the expiration time (in seconds) of stored sessions for resumption.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-remove-session"></a><h3>gnutls_db_remove_session ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_db_remove_session (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will remove the current session data from the
+session database. This will prevent future handshakes reusing
+these session data. This function should be called if a session
+was terminated abnormally, and before <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()"><code class="function">gnutls_deinit()</code></a> is called.</p>
+<p>Normally <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()"><code class="function">gnutls_deinit()</code></a> will remove abnormally terminated
+sessions.</p>
+<div class="refsect3">
+<a name="gnutls-db-remove-session.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-set-retrieve-function"></a><h3>gnutls_db_set_retrieve_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_db_set_retrieve_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-retr-func" title="gnutls_db_retr_func ()"><span class="type">gnutls_db_retr_func</span></a> retr_func</code></em>);</pre>
+<p>Sets the function that will be used to retrieve data from the
+resumed sessions database. This function must return a
+gnutls_datum_t containing the data on success, or a gnutls_datum_t
+containing null and 0 on failure.</p>
+<p>The datum's data must be allocated using the function
+<code class="function">gnutls_malloc()</code>.</p>
+<p>The first argument to <em class="parameter"><code>retr_func</code></em>
+ will be null unless
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()"><code class="function">gnutls_db_set_ptr()</code></a> has been called.</p>
+<div class="refsect3">
+<a name="gnutls-db-set-retrieve-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>retr_func</p></td>
+<td class="parameter_description"><p>is the function.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-set-remove-function"></a><h3>gnutls_db_set_remove_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_db_set_remove_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-remove-func" title="gnutls_db_remove_func ()"><span class="type">gnutls_db_remove_func</span></a> rem_func</code></em>);</pre>
+<p>Sets the function that will be used to remove data from the
+resumed sessions database. This function must return 0 on success.</p>
+<p>The first argument to <em class="parameter"><code>rem_func</code></em>
+ will be null unless
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()"><code class="function">gnutls_db_set_ptr()</code></a> has been called.</p>
+<div class="refsect3">
+<a name="gnutls-db-set-remove-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rem_func</p></td>
+<td class="parameter_description"><p>is the function.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-set-store-function"></a><h3>gnutls_db_set_store_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_db_set_store_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-store-func" title="gnutls_db_store_func ()"><span class="type">gnutls_db_store_func</span></a> store_func</code></em>);</pre>
+<p>Sets the function that will be used to store data in the resumed
+sessions database. This function must return 0 on success.</p>
+<p>The first argument to <em class="parameter"><code>store_func</code></em>
+ will be null unless
+<a class="link" href="gnutls-gnutls.html#gnutls-db-set-ptr" title="gnutls_db_set_ptr ()"><code class="function">gnutls_db_set_ptr()</code></a> has been called.</p>
+<div class="refsect3">
+<a name="gnutls-db-set-store-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>store_func</p></td>
+<td class="parameter_description"><p>is the function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-set-ptr"></a><h3>gnutls_db_set_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_db_set_ptr (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
+<p>Sets the pointer that will be provided to db store, retrieve and
+delete functions, as the first argument.</p>
+<div class="refsect3">
+<a name="gnutls-db-set-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_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>is the pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-get-ptr"></a><h3>gnutls_db_get_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+gnutls_db_get_ptr (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get db function pointer.</p>
+<div class="refsect3">
+<a name="gnutls-db-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-db-get-ptr.returns"></a><h4>Returns</h4>
+<p> the pointer that will be sent to db store, retrieve and
+delete functions, as the first argument.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-check-entry"></a><h3>gnutls_db_check_entry ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_db_check_entry (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> session_entry</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_db_check_entry</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is deprecated.</p>
+</div>
+<p>This function has no effect.</p>
+<div class="refsect3">
+<a name="gnutls-db-check-entry.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>session_entry</p></td>
+<td class="parameter_description"><p>is the session data (not key)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-db-check-entry.returns"></a><h4>Returns</h4>
+<p> Returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED"><code class="literal">GNUTLS_E_EXPIRED</code></a>, if the database entry has
+expired or 0 otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-check-entry-time"></a><h3>gnutls_db_check_entry_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_db_check_entry_time (<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> *entry</code></em>);</pre>
+<p>This function returns the time that this entry was active.
+It can be used for database entry expiration.</p>
+<div class="refsect3">
+<a name="gnutls-db-check-entry-time.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>entry</p></td>
+<td class="parameter_description"><p>is a pointer to a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-db-check-entry-time.returns"></a><h4>Returns</h4>
+<p> The time this entry was created, or zero on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-check-entry-expire-time"></a><h3>gnutls_db_check_entry_expire_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_db_check_entry_expire_time (<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> *entry</code></em>);</pre>
+<p>This function returns the time that this entry will expire.
+It can be used for database entry expiration.</p>
+<div class="refsect3">
+<a name="gnutls-db-check-entry-expire-time.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>entry</p></td>
+<td class="parameter_description"><p>is a pointer to a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-db-check-entry-expire-time.returns"></a><h4>Returns</h4>
+<p> The time this entry will expire, or zero on error.</p>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-hook-func"></a><h3>gnutls_handshake_hook_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_handshake_hook_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> htype</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> when</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> incoming</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> *msg</code></em>);</pre>
+<p>Function prototype for handshake hooks. It is set using
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-hook-function" title="gnutls_handshake_set_hook_function ()"><code class="function">gnutls_handshake_set_hook_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-hook-func.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>session</p></td>
+<td class="parameter_description"><p>the current session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>htype</p></td>
+<td class="parameter_description"><p>the type of the handshake message (<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><code class="literal">gnutls_handshake_description_t</code></a>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>when</p></td>
+<td class="parameter_description"><p>non zero if this is a post-process/generation call and zero otherwise</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>incoming</p></td>
+<td class="parameter_description"><p>non zero if this is an incoming message and zero if this is an outgoing message</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>msg</p></td>
+<td class="parameter_description"><p>the (const) data of the handshake message without the handshake headers.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-handshake-hook-func.returns"></a><h4>Returns</h4>
+<p> Non zero on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-set-hook-function"></a><h3>gnutls_handshake_set_hook_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_handshake_set_hook_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> htype</code></em>,
+ <em class="parameter"><code><span class="type">int</span> when</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-handshake-hook-func" title="gnutls_handshake_hook_func ()"><span class="type">gnutls_handshake_hook_func</span></a> func</code></em>);</pre>
+<p>This function will set a callback to be called after or before the specified
+handshake message has been received or generated. This is a
+generalization of <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function" title="gnutls_handshake_set_post_client_hello_function ()"><code class="function">gnutls_handshake_set_post_client_hello_function()</code></a>.</p>
+<p>To call the hook function prior to the message being generated or processed
+use <a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-PRE:CAPS" title="GNUTLS_HOOK_PRE"><code class="literal">GNUTLS_HOOK_PRE</code></a> as <em class="parameter"><code>when</code></em>
+ parameter, <a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-POST:CAPS" title="GNUTLS_HOOK_POST"><code class="literal">GNUTLS_HOOK_POST</code></a> to call
+after, and <a class="link" href="gnutls-gnutls.html#GNUTLS-HOOK-BOTH:CAPS" title="GNUTLS_HOOK_BOTH"><code class="literal">GNUTLS_HOOK_BOTH</code></a> for both cases.</p>
+<p>This callback must return 0 on success or a gnutls error code to
+terminate the handshake.</p>
+<p>To hook at all handshake messages use an <em class="parameter"><code>htype</code></em>
+ of <a class="link" href="gnutls-gnutls.html#GNUTLS-HANDSHAKE-ANY:CAPS" title="GNUTLS_HANDSHAKE_ANY"><code class="literal">GNUTLS_HANDSHAKE_ANY</code></a>.</p>
+<p>Warning: You should not use this function to terminate the
+handshake based on client input unless you know what you are
+doing. Before the handshake is finished there is no way to know if
+there is a man-in-the-middle attack being performed.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-set-hook-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>htype</p></td>
+<td class="parameter_description"><p>the <a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><code class="literal">gnutls_handshake_description_t</code></a> of the message to hook at</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>when</p></td>
+<td class="parameter_description"><p><code class="literal">GNUTLS_HOOK_</code>* depending on when the hook function should be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-simple-hook-func"></a><h3>gnutls_handshake_simple_hook_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_handshake_simple_hook_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> Param1</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-set-post-client-hello-function"></a><h3>gnutls_handshake_set_post_client_hello_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_handshake_set_post_client_hello_function
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-handshake-simple-hook-func" title="gnutls_handshake_simple_hook_func ()"><span class="type">gnutls_handshake_simple_hook_func</span></a> func</code></em>);</pre>
+<p>This function will set a callback to be called after the client
+hello has been received (callback valid in server side only). This
+allows the server to adjust settings based on received extensions.</p>
+<p>Those settings could be ciphersuites, requesting certificate, or
+anything else except for version negotiation (this is done before
+the hello message is parsed).</p>
+<p>This callback must return 0 on success or a gnutls error code to
+terminate the handshake.</p>
+<p>Since GnuTLS 3.3.5 the callback is
+allowed to return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS" title="GNUTLS_E_AGAIN"><code class="literal">GNUTLS_E_AGAIN</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> to
+put the handshake on hold. In that case <a class="link" href="gnutls-gnutls.html#gnutls-handshake" title="gnutls_handshake ()"><code class="function">gnutls_handshake()</code></a>
+will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS" title="GNUTLS_E_INTERRUPTED"><code class="literal">GNUTLS_E_INTERRUPTED</code></a> and can be resumed when needed.</p>
+<p>Warning: You should not use this function to terminate the
+handshake based on client input unless you know what you are
+doing. Before the handshake is finished there is no way to know if
+there is a man-in-the-middle attack being performed.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-set-post-client-hello-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-set-max-packet-length"></a><h3>gnutls_handshake_set_max_packet_length ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_handshake_set_max_packet_length
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> max</code></em>);</pre>
+<p>This function will set the maximum size of all handshake messages.
+Handshakes over this size are rejected with
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS" title="GNUTLS_E_HANDSHAKE_TOO_LARGE"><code class="literal">GNUTLS_E_HANDSHAKE_TOO_LARGE</code></a> error code. The default value is
+128kb which is typically large enough. Set this to 0 if you do not
+want to set an upper limit.</p>
+<p>The reason for restricting the handshake message sizes are to
+limit Denial of Service attacks.</p>
+<p>Note that the maximum handshake size was increased to 128kb
+from 48kb in GnuTLS 3.5.5.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-set-max-packet-length.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>max</p></td>
+<td class="parameter_description"><p>is the maximum number.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-check-version"></a><h3>gnutls_check_version ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_check_version ();</pre>
+<p>Check the GnuTLS Library version against the provided string.
+See <a class="link" href="gnutls-gnutls.html#GNUTLS-VERSION:CAPS" title="GNUTLS_VERSION"><code class="literal">GNUTLS_VERSION</code></a> for a suitable <em class="parameter"><code>req_version</code></em>
+ string.</p>
+<p>See also <code class="function">gnutls_check_version_numeric()</code>, which provides this
+functionality as a macro.</p>
+<div class="refsect3">
+<a name="gnutls-check-version.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>req_version</p></td>
+<td class="parameter_description"><p>version string to compare with, or <code class="literal">NULL</code>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-check-version.returns"></a><h4>Returns</h4>
+<p> Check that the version of the library is at
+minimum the one given as a string in <em class="parameter"><code>req_version</code></em>
+and return the
+actual version string of the library; return <code class="literal">NULL</code> if the
+condition is not met. If <code class="literal">NULL</code> is passed to this function no
+check is done and only the version string is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-credentials-set"></a><h3>gnutls_credentials_set ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_credentials_set (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t"><span class="type">gnutls_credentials_type_t</span></a> type</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *cred</code></em>);</pre>
+<p>Sets the needed credentials for the specified type. E.g. username,
+password - or public and private keys etc. The <em class="parameter"><code>cred</code></em>
+ parameter is
+a structure that depends on the specified type and on the current
+session (client or server).</p>
+<p>In order to minimize memory usage, and share credentials between
+several threads gnutls keeps a pointer to cred, and not the whole
+cred structure. Thus you will have to keep the structure allocated
+until you call <a class="link" href="gnutls-gnutls.html#gnutls-deinit" title="gnutls_deinit ()"><code class="function">gnutls_deinit()</code></a>.</p>
+<p>For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-ANON:CAPS"><code class="literal">GNUTLS_CRD_ANON</code></a>, <em class="parameter"><code>cred</code></em>
+ should be
+<span class="type">gnutls_anon_client_credentials_t</span> in case of a client. In case of
+a server it should be <span class="type">gnutls_anon_server_credentials_t</span>.</p>
+<p>For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-SRP:CAPS"><code class="literal">GNUTLS_CRD_SRP</code></a>, <em class="parameter"><code>cred</code></em>
+ should be <span class="type">gnutls_srp_client_credentials_t</span>
+in case of a client, and <span class="type">gnutls_srp_server_credentials_t</span>, in case
+of a server.</p>
+<p>For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-CERTIFICATE:CAPS"><code class="literal">GNUTLS_CRD_CERTIFICATE</code></a>, <em class="parameter"><code>cred</code></em>
+ should be
+<span class="type">gnutls_certificate_credentials_t</span>.</p>
+<div class="refsect3">
+<a name="gnutls-credentials-set.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is the type of the credentials</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cred</p></td>
+<td class="parameter_description"><p>the credentials to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-credentials-set.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-credentials-get"></a><h3>gnutls_credentials_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_credentials_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-credentials-type-t" title="enum gnutls_credentials_type_t"><span class="type">gnutls_credentials_type_t</span></a> type</code></em>,
+ <em class="parameter"><code><span class="type">void</span> **cred</code></em>);</pre>
+<p>Returns the previously provided credentials structures.</p>
+<p>For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-ANON:CAPS"><code class="literal">GNUTLS_CRD_ANON</code></a>, <em class="parameter"><code>cred</code></em>
+ will be
+<span class="type">gnutls_anon_client_credentials_t</span> in case of a client. In case of
+a server it should be <span class="type">gnutls_anon_server_credentials_t</span>.</p>
+<p>For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-SRP:CAPS"><code class="literal">GNUTLS_CRD_SRP</code></a>, <em class="parameter"><code>cred</code></em>
+ will be <span class="type">gnutls_srp_client_credentials_t</span>
+in case of a client, and <span class="type">gnutls_srp_server_credentials_t</span>, in case
+of a server.</p>
+<p>For <a class="link" href="gnutls-gnutls.html#GNUTLS-CRD-CERTIFICATE:CAPS"><code class="literal">GNUTLS_CRD_CERTIFICATE</code></a>, <em class="parameter"><code>cred</code></em>
+ will be
+<span class="type">gnutls_certificate_credentials_t</span>.</p>
+<div class="refsect3">
+<a name="gnutls-credentials-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is the type of the credentials to return</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cred</p></td>
+<td class="parameter_description"><p>will contain the credentials.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-credentials-get.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.3.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-free-server-credentials"></a><h3>gnutls_anon_free_server_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anon_free_server_credentials (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> sc</code></em>);</pre>
+<p>Free a gnutls_anon_server_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-anon-free-server-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_anon_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-allocate-server-credentials"></a><h3>gnutls_anon_allocate_server_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_anon_allocate_server_credentials
+ (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> *sc</code></em>);</pre>
+<p>Allocate a gnutls_anon_server_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-anon-allocate-server-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_anon_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-anon-allocate-server-credentials.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> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-set-server-dh-params"></a><h3>gnutls_anon_set_server_dh_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anon_set_server_dh_params (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_anon_set_server_dh_params</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set the Diffie-Hellman parameters for an
+anonymous server to use. These parameters will be used in
+Anonymous Diffie-Hellman cipher suites.</p>
+<div class="refsect3">
+<a name="gnutls-anon-set-server-dh-params.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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_anon_server_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dh_params</p></td>
+<td class="parameter_description"><p>The Diffie-Hellman parameters.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-set-server-known-dh-params"></a><h3>gnutls_anon_set_server_known_dh_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_anon_set_server_known_dh_params
+ (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> sec_param</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_anon_set_server_known_dh_params</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set the Diffie-Hellman parameters for an
+anonymous server to use. These parameters will be used in
+Anonymous Diffie-Hellman cipher suites and will be selected from
+the FFDHE set of RFC7919 according to the security level provided.</p>
+<div class="refsect3">
+<a name="gnutls-anon-set-server-known-dh-params.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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_anon_server_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sec_param</p></td>
+<td class="parameter_description"><p>is an option of the <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><code class="literal">gnutls_sec_param_t</code></a> enumeration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-anon-set-server-known-dh-params.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.5.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-set-server-params-function"></a><h3>gnutls_anon_set_server_params_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anon_set_server_params_function
+ (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_anon_set_server_params_function</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set a callback in order for the server to get
+the Diffie-Hellman parameters for anonymous authentication. The
+callback should return <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 class="refsect3">
+<a name="gnutls-anon-set-server-params-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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-free-client-credentials"></a><h3>gnutls_anon_free_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anon_free_client_credentials (<em class="parameter"><code><span class="type">gnutls_anon_client_credentials_t</span> sc</code></em>);</pre>
+<p>Free a gnutls_anon_client_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-anon-free-client-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_anon_client_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-allocate-client-credentials"></a><h3>gnutls_anon_allocate_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_anon_allocate_client_credentials
+ (<em class="parameter"><code><span class="type">gnutls_anon_client_credentials_t</span> *sc</code></em>);</pre>
+<p>Allocate a gnutls_anon_client_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-anon-allocate-client-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_anon_client_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-anon-allocate-client-credentials.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> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-free-credentials"></a><h3>gnutls_certificate_free_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_free_credentials (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
+<p>Free a gnutls_certificate_credentials_t structure.</p>
+<p>This function does not free any temporary parameters associated
+with this structure (ie RSA and DH parameters are not freed by this
+function).</p>
+<div class="refsect3">
+<a name="gnutls-certificate-free-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-allocate-credentials"></a><h3>gnutls_certificate_allocate_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_allocate_credentials
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> *res</code></em>);</pre>
+<p>Allocate a gnutls_certificate_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-allocate-credentials.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>res</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-allocate-credentials.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> on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-issuer"></a><h3>gnutls_certificate_get_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_get_issuer (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</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-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *issuer</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 the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"><code class="literal">GNUTLS_TL_GET_COPY</code></a> is specified a copy of the issuer
+will be returned which must be freed using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a>.
+In that case the provided <em class="parameter"><code>issuer</code></em>
+ must not be initialized.</p>
+<p>As with <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-get-issuer" title="gnutls_x509_trust_list_get_issuer ()"><code class="function">gnutls_x509_trust_list_get_issuer()</code></a> this function requires
+the <a class="link" href="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"><code class="literal">GNUTLS_TL_GET_COPY</code></a> flag in order to operate with PKCS<span class="type">11</span> trust
+lists in a thread-safe way.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</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. Should be treated as constant.</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 <a class="link" href="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"><code class="literal">GNUTLS_TL_GET_COPY</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-crt-raw"></a><h3>gnutls_certificate_get_crt_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_get_crt_raw (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx1</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx2</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> *cert</code></em>);</pre>
+<p>This function will return the DER encoded certificate of the
+server or any other certificate on its certificate chain (based on <em class="parameter"><code>idx2</code></em>
+).
+The returned data should be treated as constant and only accessible during the lifetime
+of <em class="parameter"><code>sc</code></em>
+. The <em class="parameter"><code>idx1</code></em>
+ matches the value <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()"><code class="function">gnutls_certificate_set_x509_key()</code></a> and friends
+functions.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-crt-raw.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx1</p></td>
+<td class="parameter_description"><p>the index of the certificate chain if multiple are present</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx2</p></td>
+<td class="parameter_description"><p>the index of the certificate in the chain. Zero gives the server's certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>Will hold the DER encoded certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-crt-raw.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. In case the indexes are out of bounds <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>
+is returned.</p>
+</div>
+<p class="since">Since: 3.2.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-free-keys"></a><h3>gnutls_certificate_free_keys ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_free_keys (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
+<p>This function will delete all the keys and the certificates associated
+with the given credentials. This function must not be called when a
+TLS negotiation that uses the credentials is in progress.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-free-keys.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-free-cas"></a><h3>gnutls_certificate_free_cas ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_free_cas (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
+<p>This function was operational on very early versions of gnutls.
+Due to internal refactorings and the fact that this was hardly ever
+used, it is currently a no-op.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-free-cas.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-free-ca-names"></a><h3>gnutls_certificate_free_ca_names ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_free_ca_names (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
+<p>This function will delete all the CA name in the given
+credentials. Clients may call this to save some memory since in
+client side the CA names are not used. Servers might want to use
+this function if a large list of trusted CAs is present and
+sending the names of it would just consume bandwidth without providing
+information to client.</p>
+<p>CA names are used by servers to advertise the CAs they support to
+clients.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-free-ca-names.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-free-crls"></a><h3>gnutls_certificate_free_crls ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_free_crls (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>);</pre>
+<p>This function will delete all the CRLs associated
+with the given credentials.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-free-crls.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-dh-params"></a><h3>gnutls_certificate_set_dh_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_dh_params (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_certificate_set_dh_params</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set the Diffie-Hellman parameters for a
+certificate server to use. These parameters will be used in
+Ephemeral Diffie-Hellman cipher suites. Note that only a pointer
+to the parameters are stored in the certificate handle, so you
+must not deallocate the parameters before the certificate is deallocated.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-dh-params.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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dh_params</p></td>
+<td class="parameter_description"><p>the Diffie-Hellman parameters.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-known-dh-params"></a><h3>gnutls_certificate_set_known_dh_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_known_dh_params
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> sec_param</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_certificate_set_known_dh_params</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set the Diffie-Hellman parameters for a
+certificate server to use. These parameters will be used in
+Ephemeral Diffie-Hellman cipher suites and will be selected from
+the FFDHE set of RFC7919 according to the security level provided.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-known-dh-params.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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sec_param</p></td>
+<td class="parameter_description"><p>is an option of the <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><code class="literal">gnutls_sec_param_t</code></a> enumeration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-known-dh-params.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.5.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-verify-flags"></a><h3>gnutls_certificate_set_verify_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_verify_flags (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the flags to be used for verification
+of certificates and override any defaults. The provided flags must be an OR of the
+<a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a> enumerations.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-verify-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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>are the flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-verify-flags"></a><h3>gnutls_certificate_get_verify_flags ()</h3>
+<pre class="programlisting">unsigned <span class="returnvalue">int</span>
+gnutls_certificate_get_verify_flags (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>);</pre>
+<p>Returns the verification flags set with
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()"><code class="function">gnutls_certificate_set_verify_flags()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-verify-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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-verify-flags.returns"></a><h4>Returns</h4>
+<p> The certificate verification flags used by <em class="parameter"><code>res</code></em>
+.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-flags"></a><h3>gnutls_certificate_set_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_flags (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> Param1</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will set flags to tweak the operation of
+the credentials structure. See the <a class="link" href="gnutls-gnutls.html#gnutls-certificate-flags" title="enum gnutls_certificate_flags"><span class="type">gnutls_certificate_flags</span></a> enumerations
+for more information on the available flags.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>are the flags of <a class="link" href="gnutls-gnutls.html#gnutls-certificate-flags" title="enum gnutls_certificate_flags"><span class="type">gnutls_certificate_flags</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-verify-limits"></a><h3>gnutls_certificate_set_verify_limits ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_verify_limits (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> max_bits</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> max_depth</code></em>);</pre>
+<p>This function will set some upper limits for the default
+verification function, <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>, to avoid
+denial of service attacks. You can set them to zero to disable
+limits.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-verify-limits.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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>max_bits</p></td>
+<td class="parameter_description"><p>is the number of bits of an acceptable certificate (default 8200)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>max_depth</p></td>
+<td class="parameter_description"><p>is maximum depth of the verification of a certificate chain (default 5)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-system-trust"></a><h3>gnutls_certificate_set_x509_system_trust ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_system_trust
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>);</pre>
+<p>This function adds the system's default trusted CAs in order to
+verify client or server certificates.</p>
+<p>In the case the system is currently unsupported <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>
+is returned.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-system-trust.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-system-trust.returns"></a><h4>Returns</h4>
+<p> the number of certificates processed or a negative error code
+on error.</p>
+</div>
+<p class="since">Since: 3.0.20</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-trust-file"></a><h3>gnutls_certificate_set_x509_trust_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_trust_file
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *cafile</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> type</code></em>);</pre>
+<p>This function adds the trusted CAs in order to verify client or
+server certificates. In case of a client this is not required to
+be called if the certificates are not verified using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>. This function may be called
+multiple times.</p>
+<p>In case of a server the names of the CAs set here will be sent to
+the client if a certificate request is sent. This can be disabled
+using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()"><code class="function">gnutls_certificate_send_x509_rdn_sequence()</code></a>.</p>
+<p>This function can also accept URLs. In that case it
+will import all certificates that are marked as trusted. Note
+that the supported URLs are the ones indicated by <a class="link" href="gnutls-gnutls.html#gnutls-url-is-supported" title="gnutls_url_is_supported ()"><code class="function">gnutls_url_is_supported()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust-file.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cafile</p></td>
+<td class="parameter_description"><p>is a file containing the list of trusted CAs (DER or PEM list)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust-file.returns"></a><h4>Returns</h4>
+<p> the number of certificates processed</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-trust-dir"></a><h3>gnutls_certificate_set_x509_trust_dir ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_trust_dir (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *ca_dir</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> type</code></em>);</pre>
+<p>This function adds the trusted CAs present in the directory in order to
+verify client or server certificates. This function is identical
+to <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file" title="gnutls_certificate_set_x509_trust_file ()"><code class="function">gnutls_certificate_set_x509_trust_file()</code></a> but loads all certificates
+in a directory.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust-dir.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca_dir</p></td>
+<td class="parameter_description"><p>is a directory containing the list of trusted CAs (DER or PEM list)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust-dir.returns"></a><h4>Returns</h4>
+<p> the number of certificates processed</p>
+</div>
+<p class="since">Since: 3.3.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-trust-mem"></a><h3>gnutls_certificate_set_x509_trust_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_trust_mem (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *ca</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> type</code></em>);</pre>
+<p>This function adds the trusted CAs in order to verify client or
+server certificates. In case of a client this is not required to be
+called if the certificates are not verified using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>. This function may be called
+multiple times.</p>
+<p>In case of a server the CAs set here will be sent to the client if
+a certificate request is sent. This can be disabled using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()"><code class="function">gnutls_certificate_send_x509_rdn_sequence()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust-mem.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca</p></td>
+<td class="parameter_description"><p>is a list of trusted CAs or a DER certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust-mem.returns"></a><h4>Returns</h4>
+<p> the number of certificates processed or a negative error code
+on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-crl-file"></a><h3>gnutls_certificate_set_x509_crl_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_crl_file (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *crlfile</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> type</code></em>);</pre>
+<p>This function adds the trusted CRLs in order to verify client or server
+certificates. In case of a client this is not required
+to be called if the certificates are not verified using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>.
+This function may be called multiple times.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-crl-file.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crlfile</p></td>
+<td class="parameter_description"><p>is a file containing the list of verified CRLs (DER or PEM list)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-crl-file.returns"></a><h4>Returns</h4>
+<p> number of CRLs processed or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-crl-mem"></a><h3>gnutls_certificate_set_x509_crl_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_crl_mem (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *CRL</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> type</code></em>);</pre>
+<p>This function adds the trusted CRLs in order to verify client or
+server certificates. In case of a client this is not required to
+be called if the certificates are not verified using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>. This function may be called
+multiple times.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-crl-mem.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>CRL</p></td>
+<td class="parameter_description"><p>is a list of trusted CRLs. They should have been verified before.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-crl-mem.returns"></a><h4>Returns</h4>
+<p> number of CRLs processed, or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-key-file"></a><h3>gnutls_certificate_set_x509_key_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_key_file (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *keyfile</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> type</code></em>);</pre>
+<p>This function sets a certificate/private key pair in the
+gnutls_certificate_credentials_t type. This function may be
+called more than once, in case multiple keys/certificates exist for
+the server. For clients that need to send more than its own end
+entity certificate, e.g., also an intermediate CA cert, then the
+<em class="parameter"><code>certfile</code></em>
+ must contain the ordered certificate chain.</p>
+<p>Note that the names in the certificate provided will be considered
+when selecting the appropriate certificate to use (in case of multiple
+certificate/key pairs).</p>
+<p>This function can also accept URLs at <em class="parameter"><code>keyfile</code></em>
+ and <em class="parameter"><code>certfile</code></em>
+. In that case it
+will use the private key and certificate indicated by the URLs. Note
+that the supported URLs are the ones indicated by <a class="link" href="gnutls-gnutls.html#gnutls-url-is-supported" title="gnutls_url_is_supported ()"><code class="function">gnutls_url_is_supported()</code></a>.</p>
+<p>In case the <em class="parameter"><code>certfile</code></em>
+ is provided as a PKCS <span class="type">11</span> URL, then the certificate, and its
+present issuers in the token are imported (i.e., forming the required trust chain).</p>
+<p>If that function fails to load the <em class="parameter"><code>res</code></em>
+ structure is at an undefined state, it must
+not be reused to load other keys or certificates.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used to other functions to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-file.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>certfile</p></td>
+<td class="parameter_description"><p>is a file that containing the certificate list (path) for
+the specified private key, in PKCS7 format, or a list of certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>keyfile</p></td>
+<td class="parameter_description"><p>is a file that contains the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-file.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+<p class="since">Since: 3.1.11</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-key-file2"></a><h3>gnutls_certificate_set_x509_key_file2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_key_file2 (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *keyfile</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> type</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function sets a certificate/private key pair in the
+gnutls_certificate_credentials_t type. This function may be
+called more than once, in case multiple keys/certificates exist for
+the server. For clients that need to send more than its own end
+entity certificate, e.g., also an intermediate CA cert, then the
+<em class="parameter"><code>certfile</code></em>
+ must contain the ordered certificate chain.</p>
+<p>Note that the names in the certificate provided will be considered
+when selecting the appropriate certificate to use (in case of multiple
+certificate/key pairs).</p>
+<p>This function can also accept URLs at <em class="parameter"><code>keyfile</code></em>
+ and <em class="parameter"><code>certfile</code></em>
+. In that case it
+will use the private key and certificate indicated by the URLs. Note
+that the supported URLs are the ones indicated by <a class="link" href="gnutls-gnutls.html#gnutls-url-is-supported" title="gnutls_url_is_supported ()"><code class="function">gnutls_url_is_supported()</code></a>.
+Before GnuTLS 3.4.0 when a URL was specified, the <em class="parameter"><code>pass</code></em>
+ part was ignored and a
+PIN callback had to be registered, this is no longer the case in current releases.</p>
+<p>In case the <em class="parameter"><code>certfile</code></em>
+ is provided as a PKCS <span class="type">11</span> URL, then the certificate, and its
+present issuers in the token are imported (i.e., forming the required trust chain).</p>
+<p>If that function fails to load the <em class="parameter"><code>res</code></em>
+ structure is at an undefined state, it must
+not be reused to load other keys or certificates.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used to other functions to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-file2.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>certfile</p></td>
+<td class="parameter_description"><p>is a file that containing the certificate list (path) for
+the specified private key, in PKCS7 format, or a list of certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>keyfile</p></td>
+<td class="parameter_description"><p>is a file that contains the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>is the password of the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of gnutls_pkcs_encrypt_flags_t</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-file2.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-key-mem"></a><h3>gnutls_certificate_set_x509_key_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_key_mem (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *cert</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> *key</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> type</code></em>);</pre>
+<p>This function sets a certificate/private key pair in the
+gnutls_certificate_credentials_t type. This function may be called
+more than once, in case multiple keys/certificates exist for the
+server.</p>
+<p>Note that the keyUsage (2.5.29.15) PKIX extension in X.509 certificates
+is supported. This means that certificates intended for signing cannot
+be used for ciphersuites that require encryption.</p>
+<p>If the certificate and the private key are given in PEM encoding
+then the strings that hold their values must be null terminated.</p>
+<p>The <em class="parameter"><code>key</code></em>
+ may be <code class="literal">NULL</code> if you are using a sign callback, see
+<code class="function">gnutls_sign_callback_set()</code>.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used to other functions to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-mem.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>contains a certificate list (path) for the specified private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>is the private key, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-mem.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-key-mem2"></a><h3>gnutls_certificate_set_x509_key_mem2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_key_mem2 (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *cert</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> *key</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> type</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function sets a certificate/private key pair in the
+gnutls_certificate_credentials_t type. This function may be called
+more than once, in case multiple keys/certificates exist for the
+server.</p>
+<p>Note that the keyUsage (2.5.29.15) PKIX extension in X.509 certificates
+is supported. This means that certificates intended for signing cannot
+be used for ciphersuites that require encryption.</p>
+<p>If the certificate and the private key are given in PEM encoding
+then the strings that hold their values must be null terminated.</p>
+<p>The <em class="parameter"><code>key</code></em>
+ may be <code class="literal">NULL</code> if you are using a sign callback, see
+<code class="function">gnutls_sign_callback_set()</code>.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used to other functions to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-mem2.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>contains a certificate list (path) for the specified private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>is the private key, or <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>is the key's password</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of gnutls_pkcs_encrypt_flags_t</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key-mem2.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-send-x509-rdn-sequence"></a><h3>gnutls_certificate_send_x509_rdn_sequence ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_send_x509_rdn_sequence
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> status</code></em>);</pre>
+<p>If status is non zero, this function will order gnutls not to send
+the rdnSequence in the certificate request message. That is the
+server will not advertise its trusted CAs to the peer. If status
+is zero then the default behaviour will take effect, which is to
+advertise the server's trusted CAs.</p>
+<p>This function has no effect in clients, and in authentication
+methods other than certificate with X.509 certificates.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-send-x509-rdn-sequence.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>session</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>status</p></td>
+<td class="parameter_description"><p>is 0 or 1</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-simple-pkcs12-file"></a><h3>gnutls_certificate_set_x509_simple_pkcs12_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_simple_pkcs12_file
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pkcs12file</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> type</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);</pre>
+<p>This function sets a certificate/private key pair and/or a CRL in
+the gnutls_certificate_credentials_t type. This function may
+be called more than once (in case multiple keys/certificates exist
+for the server).</p>
+<p>PKCS<span class="type">12</span> files with a MAC, encrypted bags and PKCS #8
+private keys are supported. However,
+only password based security, and the same password for all
+operations, are supported.</p>
+<p>PKCS<span class="type">12</span> file may contain many keys and/or certificates, and this
+function will try to auto-detect based on the key ID the certificate
+and key pair to use. If the PKCS<span class="type">12</span> file contain the issuer of
+the selected certificate, it will be appended to the certificate
+to form a chain.</p>
+<p>If more than one private keys are stored in the PKCS<span class="type">12</span> file,
+then only one key will be read (and it is undefined which one).</p>
+<p>It is believed that the limitations of this function is acceptable
+for most usage, and that any more flexibility would introduce
+complexity that would make it harder to use this functionality at
+all.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used to other functions to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-simple-pkcs12-file.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pkcs12file</p></td>
+<td class="parameter_description"><p>filename of file containing PKCS<span class="type">12</span> blob.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER of the <em class="parameter"><code>pkcs12file</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>optional password used to decrypt PKCS<span class="type">12</span> file, bags and keys.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-simple-pkcs12-file.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-simple-pkcs12-mem"></a><h3>gnutls_certificate_set_x509_simple_pkcs12_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_simple_pkcs12_mem
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *p12blob</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> type</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);</pre>
+<p>This function sets a certificate/private key pair and/or a CRL in
+the gnutls_certificate_credentials_t type. This function may
+be called more than once (in case multiple keys/certificates exist
+for the server).</p>
+<p>Encrypted PKCS<span class="type">12</span> bags and PKCS#8 private keys are supported. However,
+only password based security, and the same password for all
+operations, are supported.</p>
+<p>PKCS<span class="type">12</span> file may contain many keys and/or certificates, and this
+function will try to auto-detect based on the key ID the certificate
+and key pair to use. If the PKCS<span class="type">12</span> file contain the issuer of
+the selected certificate, it will be appended to the certificate
+to form a chain.</p>
+<p>If more than one private keys are stored in the PKCS<span class="type">12</span> file,
+then only one key will be read (and it is undefined which one).</p>
+<p>It is believed that the limitations of this function is acceptable
+for most usage, and that any more flexibility would introduce
+complexity that would make it harder to use this functionality at
+all.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used to other functions to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-simple-pkcs12-mem.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p12blob</p></td>
+<td class="parameter_description"><p>the PKCS<span class="type">12</span> blob.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>is PEM or DER of the <em class="parameter"><code>pkcs12file</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>optional password used to decrypt PKCS<span class="type">12</span> file, bags and keys.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-simple-pkcs12-mem.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-key"></a><h3>gnutls_certificate_set_x509_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_key (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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_list</code></em>,
+ <em class="parameter"><code><span class="type">int</span> cert_list_size</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>);</pre>
+<p>This function sets a certificate/private key pair in the
+gnutls_certificate_credentials_t type. This function may be
+called more than once, in case multiple keys/certificates exist for
+the server. For clients that wants to send more than their own end
+entity certificate (e.g., also an intermediate CA cert) then put
+the certificate chain in <em class="parameter"><code>cert_list</code></em>
+.</p>
+<p>Note that the certificates and keys provided, can be safely deinitialized
+after this function is called.</p>
+<p>If that function fails to load the <em class="parameter"><code>res</code></em>
+ type is at an undefined state, it must
+not be reused to load other keys or certificates.</p>
+<p>Note that, this function by default returns zero on success and a negative value on error.
+Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+it returns an index (greater or equal to zero). That index can be used to other functions to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_list</p></td>
+<td class="parameter_description"><p>contains a certificate list (path) for the specified private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_list_size</p></td>
+<td class="parameter_description"><p>holds the size of the certificate list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>is a <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</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-key.returns"></a><h4>Returns</h4>
+<p> On success this functions returns zero, and otherwise a negative value on error (see above for modifying that behavior).</p>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-trust"></a><h3>gnutls_certificate_set_x509_trust ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_trust (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *ca_list</code></em>,
+ <em class="parameter"><code><span class="type">int</span> ca_list_size</code></em>);</pre>
+<p>This function adds the trusted CAs in order to verify client
+or server certificates. In case of a client this is not required
+to be called if the certificates are not verified using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>.
+This function may be called multiple times.</p>
+<p>In case of a server the CAs set here will be sent to the client if
+a certificate request is sent. This can be disabled using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence" title="gnutls_certificate_send_x509_rdn_sequence ()"><code class="function">gnutls_certificate_send_x509_rdn_sequence()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca_list</p></td>
+<td class="parameter_description"><p>is a list of trusted CAs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca_list_size</p></td>
+<td class="parameter_description"><p>holds the size of the CA list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-trust.returns"></a><h4>Returns</h4>
+<p> the number of certificates processed or a negative error code
+on error.</p>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-x509-crl"></a><h3>gnutls_certificate_set_x509_crl ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_x509_crl (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl_list</code></em>,
+ <em class="parameter"><code><span class="type">int</span> crl_list_size</code></em>);</pre>
+<p>This function adds the trusted CRLs in order to verify client or
+server certificates. In case of a client this is not required to
+be called if the certificates are not verified using
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>. This function may be called
+multiple times.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-crl.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_list</p></td>
+<td class="parameter_description"><p>is a list of trusted CRLs. They should have been verified before.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_list_size</p></td>
+<td class="parameter_description"><p>holds the size of the crl_list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-x509-crl.returns"></a><h4>Returns</h4>
+<p> number of CRLs processed, or a negative error code on error.</p>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-x509-key"></a><h3>gnutls_certificate_get_x509_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_get_x509_key (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> index</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>);</pre>
+<p>Obtains a X.509 private key that has been stored in <em class="parameter"><code>res</code></em>
+ with one of
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()"><code class="function">gnutls_certificate_set_x509_key()</code></a>, <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()"><code class="function">gnutls_certificate_set_key()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file" title="gnutls_certificate_set_x509_key_file ()"><code class="function">gnutls_certificate_set_x509_key_file()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file2" title="gnutls_certificate_set_x509_key_file2 ()"><code class="function">gnutls_certificate_set_x509_key_file2()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem" title="gnutls_certificate_set_x509_key_mem ()"><code class="function">gnutls_certificate_set_x509_key_mem()</code></a>, or
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem2" title="gnutls_certificate_set_x509_key_mem2 ()"><code class="function">gnutls_certificate_set_x509_key_mem2()</code></a>. The returned key must be deallocated
+with <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-deinit" title="gnutls_x509_privkey_deinit ()"><code class="function">gnutls_x509_privkey_deinit()</code></a> when no longer needed.</p>
+<p>The <em class="parameter"><code>index</code></em>
+ matches the return value of <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()"><code class="function">gnutls_certificate_set_x509_key()</code></a> and friends
+functions, when the <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> flag is set.</p>
+<p>If there is no key with the given index,
+<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> is returned. If the key with the
+given index is not a X.509 key, <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> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-x509-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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>index</p></td>
+<td class="parameter_description"><p>The index of the key to obtain.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>Location to store the key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-x509-key.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.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-x509-crt"></a><h3>gnutls_certificate_get_x509_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_get_x509_crt (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> index</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_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned</span> *crt_list_size</code></em>);</pre>
+<p>Obtains a X.509 certificate list that has been stored in <em class="parameter"><code>res</code></em>
+ with one of
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()"><code class="function">gnutls_certificate_set_x509_key()</code></a>, <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()"><code class="function">gnutls_certificate_set_key()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file" title="gnutls_certificate_set_x509_key_file ()"><code class="function">gnutls_certificate_set_x509_key_file()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file2" title="gnutls_certificate_set_x509_key_file2 ()"><code class="function">gnutls_certificate_set_x509_key_file2()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem" title="gnutls_certificate_set_x509_key_mem ()"><code class="function">gnutls_certificate_set_x509_key_mem()</code></a>, or
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem2" title="gnutls_certificate_set_x509_key_mem2 ()"><code class="function">gnutls_certificate_set_x509_key_mem2()</code></a>. Each certificate in the returned
+certificate list must be deallocated with <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a>, and the
+list itself must be freed with <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>The <em class="parameter"><code>index</code></em>
+ matches the return value of <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-x509-key" title="gnutls_certificate_set_x509_key ()"><code class="function">gnutls_certificate_set_x509_key()</code></a> and friends
+functions, when the <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> flag is set.</p>
+<p>If there is no certificate with the given index,
+<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> is returned. If the certificate
+with the given index is not a X.509 certificate, <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>
+is returned. The returned certificates must be deinitialized after
+use, and the <em class="parameter"><code>crt_list</code></em>
+ pointer must be freed 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-certificate-get-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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>index</p></td>
+<td class="parameter_description"><p>The index of the certificate list to obtain.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt_list</p></td>
+<td class="parameter_description"><p>Where to store the certificate list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt_list_size</p></td>
+<td class="parameter_description"><p>Will hold the number of certificates.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-x509-crt.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.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-ocsp-status-request-function"></a><h3>gnutls_certificate_set_ocsp_status_request_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_ocsp_status_request_function
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_status_request_ocsp_func</span> ocsp_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
+<p>This function is to be used by server to register a callback to
+handle OCSP status requests from the client. The callback will be
+invoked if the client supplied a status-request OCSP extension.
+The callback function prototype is:</p>
+<p>typedef int (*gnutls_status_request_ocsp_func)
+ (gnutls_session_t session, void *ptr, gnutls_datum_t *ocsp_response);</p>
+<p>The callback will be invoked if the client requests an OCSP certificate
+status. The callback may return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-STATUS:CAPS" title="GNUTLS_E_NO_CERTIFICATE_STATUS"><code class="literal">GNUTLS_E_NO_CERTIFICATE_STATUS</code></a>, if
+there is no recent OCSP response. If the callback returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a>,
+it is expected to have the <em class="parameter"><code>ocsp_response</code></em>
+ field set with a valid (DER-encoded)
+OCSP response. The response must be a value allocated using <code class="function">gnutls_malloc()</code>,
+and will be deinitialized by the caller.</p>
+<p>It is possible to set a specific callback for each provided certificate
+using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-function2" title="gnutls_certificate_set_ocsp_status_request_function2 ()"><code class="function">gnutls_certificate_set_ocsp_status_request_function2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ocsp_func</p></td>
+<td class="parameter_description"><p>function pointer to OCSP status request callback.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptr</p></td>
+<td class="parameter_description"><p>opaque pointer passed to callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-ocsp-status-request-function2"></a><h3>gnutls_certificate_set_ocsp_status_request_function2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_ocsp_status_request_function2
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_status_request_ocsp_func</span> ocsp_func</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
+<p>This function is to be used by server to register a callback to
+provide OCSP status requests that correspond to the indexed certificate chain
+from the client. The callback will be invoked if the client supplied a
+status-request OCSP extension.</p>
+<p>The callback function prototype is:</p>
+<p>typedef int (*gnutls_status_request_ocsp_func)
+ (gnutls_session_t session, void *ptr, gnutls_datum_t *ocsp_response);</p>
+<p>The callback will be invoked if the client requests an OCSP certificate
+status. The callback may return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-STATUS:CAPS" title="GNUTLS_E_NO_CERTIFICATE_STATUS"><code class="literal">GNUTLS_E_NO_CERTIFICATE_STATUS</code></a>, if
+there is no recent OCSP response. If the callback returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS" title="GNUTLS_E_SUCCESS"><code class="literal">GNUTLS_E_SUCCESS</code></a>,
+it is expected to have the <em class="parameter"><code>ocsp_response</code></em>
+ field set with a valid (DER-encoded)
+OCSP response. The response must be a value allocated using <code class="function">gnutls_malloc()</code>,
+and will be deinitialized by the caller.</p>
+<p>Note: the ability to set multiple OCSP responses per credential
+structure via the index <em class="parameter"><code>idx</code></em>
+ was added in version 3.5.6. To keep
+backwards compatibility, it requires using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+with the <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> flag to make the set certificate
+functions return an index usable by this function.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-function2.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>is a certificate index as returned by <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()"><code class="function">gnutls_certificate_set_key()</code></a> and friends</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ocsp_func</p></td>
+<td class="parameter_description"><p>function pointer to OCSP status request callback.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ptr</p></td>
+<td class="parameter_description"><p>opaque pointer passed to callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-function2.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.5.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-ocsp-status-request-file"></a><h3>gnutls_certificate_set_ocsp_status_request_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_ocsp_status_request_file
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *response_file</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</code></em>);</pre>
+<p>This function loads the provided OCSP response. It will be
+sent to the client if requests an OCSP certificate status for
+the certificate chain specified by <em class="parameter"><code>idx</code></em>
+.</p>
+<p>Note: the ability to set multiple OCSP responses per credential
+structure via the index <em class="parameter"><code>idx</code></em>
+ was added in version 3.5.6. To keep
+backwards compatibility, it requires using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+with the <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> flag to make the set certificate
+functions return an index usable by this function.</p>
+<p>This function can be called multiple times since GnuTLS 3.6.3
+when multiple responses which apply to the chain are available.
+If the response provided does not match any certificates present
+in the chain, the code <a class="link" href="gnutls-gnutls.html#GNUTLS-E-OCSP-MISMATCH-WITH-CERTS:CAPS" title="GNUTLS_E_OCSP_MISMATCH_WITH_CERTS"><code class="literal">GNUTLS_E_OCSP_MISMATCH_WITH_CERTS</code></a> is returned.
+To revert to the previous behavior set the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-SKIP-OCSP-RESPONSE-CHECK:CAPS"><code class="literal">GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK</code></a>
+in the certificate credentials structure. In that case, only the
+end-certificate's OCSP response can be set.
+If the response is already expired at the time of loading the code
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED"><code class="literal">GNUTLS_E_EXPIRED</code></a> is returned.</p>
+<p>To revert to the previous behavior of this function which does not return
+any errors, set the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-SKIP-OCSP-RESPONSE-CHECK:CAPS"><code class="literal">GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK</code></a></p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-file.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>sc</p></td>
+<td class="parameter_description"><p>is a credentials structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>response_file</p></td>
+<td class="parameter_description"><p>a filename of the OCSP response</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>is a certificate index as returned by <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()"><code class="function">gnutls_certificate_set_key()</code></a> and friends</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-file.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-ocsp-status-request-file2"></a><h3>gnutls_certificate_set_ocsp_status_request_file2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_ocsp_status_request_file2
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *response_file</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</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>);</pre>
+<p>This function loads the OCSP responses to be sent to the
+peer for the certificate chain specified by <em class="parameter"><code>idx</code></em>
+. When <em class="parameter"><code>fmt</code></em>
+ is
+set to PEM, multiple responses can be loaded.</p>
+<p>This function must be called after setting any certificates, and
+cannot be used for certificates that are provided via a callback --
+that is when <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" title="gnutls_certificate_set_retrieve_function ()"><code class="function">gnutls_certificate_set_retrieve_function()</code></a> is used. In
+that case consider using <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-retrieve-function3" title="gnutls_certificate_set_retrieve_function3 ()"><code class="function">gnutls_certificate_set_retrieve_function3()</code></a>.</p>
+<p>This function can be called multiple times when multiple responses
+applicable to the certificate chain are available.
+If the response provided does not match any certificates present
+in the chain, the code <a class="link" href="gnutls-gnutls.html#GNUTLS-E-OCSP-MISMATCH-WITH-CERTS:CAPS" title="GNUTLS_E_OCSP_MISMATCH_WITH_CERTS"><code class="literal">GNUTLS_E_OCSP_MISMATCH_WITH_CERTS</code></a> is returned.
+If the response is already expired at the time of loading the code
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED"><code class="literal">GNUTLS_E_EXPIRED</code></a> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-file2.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>sc</p></td>
+<td class="parameter_description"><p>is a credentials structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>response_file</p></td>
+<td class="parameter_description"><p>a filename of the OCSP response</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>is a certificate index as returned by <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()"><code class="function">gnutls_certificate_set_key()</code></a> and friends</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-file2.returns"></a><h4>Returns</h4>
+<p> On success, the number of loaded responses is returned,
+otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-ocsp-status-request-mem"></a><h3>gnutls_certificate_set_ocsp_status_request_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_ocsp_status_request_mem
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *resp</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</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>);</pre>
+<p>This function sets the OCSP responses to be sent to the
+peer for the certificate chain specified by <em class="parameter"><code>idx</code></em>
+. When <em class="parameter"><code>fmt</code></em>
+ is set
+to PEM, multiple responses can be loaded.</p>
+<p>Note: the ability to set multiple OCSP responses per credential
+structure via the index <em class="parameter"><code>idx</code></em>
+ was added in version 3.5.6. To keep
+backwards compatibility, it requires using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a>
+with the <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a> flag to make the set certificate
+functions return an index usable by this function.</p>
+<p>This function must be called after setting any certificates, and
+cannot be used for certificates that are provided via a callback --
+that is when <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" title="gnutls_certificate_set_retrieve_function ()"><code class="function">gnutls_certificate_set_retrieve_function()</code></a> is used.</p>
+<p>This function can be called multiple times when multiple responses which
+apply to the certificate chain are available.
+If the response provided does not match any certificates present
+in the chain, the code <a class="link" href="gnutls-gnutls.html#GNUTLS-E-OCSP-MISMATCH-WITH-CERTS:CAPS" title="GNUTLS_E_OCSP_MISMATCH_WITH_CERTS"><code class="literal">GNUTLS_E_OCSP_MISMATCH_WITH_CERTS</code></a> is returned.
+If the response is already expired at the time of loading the code
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED"><code class="literal">GNUTLS_E_EXPIRED</code></a> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-mem.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>sc</p></td>
+<td class="parameter_description"><p>is a credentials structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>resp_data</p></td>
+<td class="parameter_description"><p>a memory buffer holding an OCSP response</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>is a certificate index as returned by <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()"><code class="function">gnutls_certificate_set_key()</code></a> and friends</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fmt</p></td>
+<td class="parameter_description"><p>is PEM or DER</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-ocsp-status-request-mem.returns"></a><h4>Returns</h4>
+<p> On success, the number of loaded responses is returned,
+otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-ocsp-expiration"></a><h3>gnutls_certificate_get_ocsp_expiration ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_certificate_get_ocsp_expiration
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> sc</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</code></em>,
+ <em class="parameter"><code><span class="type">int</span> oidx</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function returns the validity of the loaded OCSP responses,
+to provide information on when to reload/refresh them.</p>
+<p>Note that the credentials structure should be read-only when in
+use, thus when reloading, either the credentials structure must not
+be in use by any sessions, or a new credentials structure should be
+allocated for new sessions.</p>
+<p>When <em class="parameter"><code>oidx</code></em>
+ is (-1) then the minimum refresh time for all responses
+is returned. Otherwise the index specifies the response corresponding
+to the <em class="parameter"><code>odix</code></em>
+ certificate in the certificate chain.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-ocsp-expiration.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>sc</p></td>
+<td class="parameter_description"><p>is a credentials structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>is a certificate chain index as returned by <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-key" title="gnutls_certificate_set_key ()"><code class="function">gnutls_certificate_set_key()</code></a> and friends</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oidx</p></td>
+<td class="parameter_description"><p>is an OCSP response index</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-certificate-get-ocsp-expiration.returns"></a><h4>Returns</h4>
+<p> On success, the expiration time of the OCSP response. Otherwise
+(time_t)(-1) on error, or (time_t)-2 on out of bounds.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ocsp-status-request-enable-client"></a><h3>gnutls_ocsp_status_request_enable_client ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_ocsp_status_request_enable_client
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *responder_id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> responder_id_size</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> *request_extensions</code></em>);</pre>
+<p>This function is to be used by clients to request OCSP response
+from the server, using the "status_request" TLS extension. Only
+OCSP status type is supported.</p>
+<p>Previous versions of GnuTLS supported setting <em class="parameter"><code>responder_id</code></em>
+ and
+<em class="parameter"><code>extensions</code></em>
+ fields, but due to the difficult semantics of the
+parameter usage, and other issues, this support was removed
+since 3.6.0 and these parameters must be set to <code class="literal">NULL</code>.</p>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-enable-client.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>responder_id</p></td>
+<td class="parameter_description"><p>ignored, must be <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>responder_id_size</p></td>
+<td class="parameter_description"><p>ignored, must be zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extensions</p></td>
+<td class="parameter_description"><p>ignored, must be <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-enable-client.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ocsp-status-request-get"></a><h3>gnutls_ocsp_status_request_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_ocsp_status_request_get (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *response</code></em>);</pre>
+<p>This function returns the OCSP status response received
+from the TLS server. The <em class="parameter"><code>response</code></em>
+ should be treated as
+constant. If no OCSP response is available then
+<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> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-get.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>response</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> with DER encoded OCSP response</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-get.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ocsp-status-request-is-checked"></a><h3>gnutls_ocsp_status_request_is_checked ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_ocsp_status_request_is_checked (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>When flags are zero this function returns non-zero if a valid OCSP status
+response was included in the TLS handshake. That is, an OCSP status response
+which is not too old, superseded or marks the certificate as revoked.
+It returns zero otherwise.</p>
+<p>When the flag <code class="literal">GNUTLS_OCSP_SR_IS_AVAIL</code> is specified, the function
+returns non-zero if an OCSP status response was included in the handshake
+even if it was invalid. Otherwise, if no OCSP status response was included,
+it returns zero. The <code class="literal">GNUTLS_OCSP_SR_IS_AVAIL</code> flag was introduced in GnuTLS 3.4.0.</p>
+<p>This is a helper function when needing to decide whether to perform an
+explicit OCSP validity check on the peer's certificate. Should be called after
+any of gnutls_certificate_verify_peers*() are called.</p>
+<p>This function is always usable on client side, but on server side only
+under TLS 1.3, which is the first version of TLS that allows cliend-side OCSP
+responses.</p>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-is-checked.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</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 or <code class="literal">GNUTLS_OCSP_SR_IS_AVAIL</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-is-checked.returns"></a><h4>Returns</h4>
+<p> Non-zero if the response was valid, or a zero if it wasn't sent,
+or sent and was invalid.</p>
+</div>
+<p class="since">Since: 3.1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ocsp-status-request-get2"></a><h3>gnutls_ocsp_status_request_get2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_ocsp_status_request_get2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</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> *response</code></em>);</pre>
+<p>This function returns the OCSP status response received
+from the TLS server for the certificate index provided.
+The index corresponds to certificates as returned by
+gnutls_certificate_get_peers. When index is zero this
+function operates identically to <a class="link" href="gnutls-gnutls.html#gnutls-ocsp-status-request-get" title="gnutls_ocsp_status_request_get ()"><code class="function">gnutls_ocsp_status_request_get()</code></a>.</p>
+<p>The returned <em class="parameter"><code>response</code></em>
+ should be treated as
+constant. If no OCSP response is available for the
+given index then <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>
+is returned.</p>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-get2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</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 peer's certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>response</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> with DER encoded OCSP response</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ocsp-status-request-get2.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-rawpk-key-mem"></a><h3>gnutls_certificate_set_rawpk_key_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_rawpk_key_mem (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</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>const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_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> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **names</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> names_length</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function sets a public/private keypair in the
+<span class="type">gnutls_certificate_credentials_t</span> type to be used for authentication
+and/or encryption. <em class="parameter"><code>spki</code></em>
+ and <em class="parameter"><code>privkey</code></em>
+ should match otherwise set
+signatures cannot be validated. In case of no match this function
+returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH"><code class="literal">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</code></a>. This function should
+be called once for the client because there is currently no mechanism
+to determine which raw public-key to select for the peer when there
+are multiple present. Multiple raw public keys for the server can be
+distinghuished by setting the <em class="parameter"><code>names</code></em>
+.</p>
+<p>Note here that <em class="parameter"><code>spki</code></em>
+ is a raw public-key as defined
+in RFC7250. It means that there is no surrounding certificate that
+holds the public key and that there is therefore no direct mechanism
+to prove the authenticity of this key. The keypair can be used during
+a TLS handshake but its authenticity should be established via a
+different mechanism (e.g. TOFU or known fingerprint).</p>
+<p>The supported formats are basic unencrypted key, PKCS8, PKCS12,
+and the openssl format and will be autodetected.</p>
+<p>If the raw public-key and the private key are given in PEM encoding
+then the strings that hold their values must be null terminated.</p>
+<p>Key usage (as defined by X.509 extension (2.5.29.15)) can be explicitly
+set because there is no certificate structure around the key to define
+this value. See for more info <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-usage" title="gnutls_x509_crt_get_key_usage ()"><code class="function">gnutls_x509_crt_get_key_usage()</code></a>.</p>
+<p>Note that, this function by default returns zero on success and a
+negative value on error. Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a>
+is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a> it returns an index
+(greater or equal to zero). That index can be used in other functions
+to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-rawpk-key-mem.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>contains a raw public key in
+PKIX.SubjectPublicKeyInfo format.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pkey</p></td>
+<td class="parameter_description"><p>contains a raw private key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>encoding of the keys. DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>an optional password to unlock the private key pkey.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>An ORed sequence of <code class="literal">GNUTLS_KEY_</code>* flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>names</p></td>
+<td class="parameter_description"><p>is an array of DNS names belonging to the public-key (NULL if none).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>names_length</p></td>
+<td class="parameter_description"><p>holds the length of the names list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><span class="type">gnutls_pkcs_encrypt_flags_t</span></a>.
+These apply to the private key pkey.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-rawpk-key-mem.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, in case the
+key pair does not match <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH"><code class="literal">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</code></a> is returned,
+in other erroneous cases a different negative error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-rawpk-key-file"></a><h3>gnutls_certificate_set_rawpk_key_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_rawpk_key_file (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *rawpkfile</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *privkeyfile</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> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_usage</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **names</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> names_length</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> privkey_flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> pkcs11_flags</code></em>);</pre>
+<p>This function sets a public/private keypair read from file in the
+<span class="type">gnutls_certificate_credentials_t</span> type to be used for authentication
+and/or encryption. <em class="parameter"><code>spki</code></em>
+ and <em class="parameter"><code>privkey</code></em>
+ should match otherwise set
+signatures cannot be validated. In case of no match this function
+returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH"><code class="literal">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</code></a>. This function should
+be called once for the client because there is currently no mechanism
+to determine which raw public-key to select for the peer when there
+are multiple present. Multiple raw public keys for the server can be
+distinghuished by setting the <em class="parameter"><code>names</code></em>
+.</p>
+<p>Note here that <em class="parameter"><code>spki</code></em>
+ is a raw public-key as defined
+in RFC7250. It means that there is no surrounding certificate that
+holds the public key and that there is therefore no direct mechanism
+to prove the authenticity of this key. The keypair can be used during
+a TLS handshake but its authenticity should be established via a
+different mechanism (e.g. TOFU or known fingerprint).</p>
+<p>The supported formats are basic unencrypted key, PKCS8, PKCS12,
+and the openssl format and will be autodetected.</p>
+<p>If the raw public-key and the private key are given in PEM encoding
+then the strings that hold their values must be null terminated.</p>
+<p>Key usage (as defined by X.509 extension (2.5.29.15)) can be explicitly
+set because there is no certificate structure around the key to define
+this value. See for more info <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-key-usage" title="gnutls_x509_crt_get_key_usage ()"><code class="function">gnutls_x509_crt_get_key_usage()</code></a>.</p>
+<p>Note that, this function by default returns zero on success and a
+negative value on error. Since 3.5.6, when the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"><code class="literal">GNUTLS_CERTIFICATE_API_V2</code></a>
+is set using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-flags" title="gnutls_certificate_set_flags ()"><code class="function">gnutls_certificate_set_flags()</code></a> it returns an index
+(greater or equal to zero). That index can be used in other functions
+to refer to the added key-pair.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-rawpk-key-file.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>rawpkfile</p></td>
+<td class="parameter_description"><p>contains a raw public key in
+PKIX.SubjectPublicKeyInfo format.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>privkeyfile</p></td>
+<td class="parameter_description"><p>contains a file path to a private key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>encoding of the keys. DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>an optional password to unlock the private key privkeyfile.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>an ORed sequence of <code class="literal">GNUTLS_KEY_</code>* flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>names</p></td>
+<td class="parameter_description"><p>is an array of DNS names belonging to the public-key (NULL if none).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>names_length</p></td>
+<td class="parameter_description"><p>holds the length of the names list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>privkey_flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><span class="type">gnutls_pkcs_encrypt_flags_t</span></a>.
+These apply to the private key pkey.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pkcs11_flags</p></td>
+<td class="parameter_description"><p>one of gnutls_pkcs11_obj_flags. These apply to URLs.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-set-rawpk-key-file.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, in case the
+key pair does not match <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH"><code class="literal">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</code></a> is returned,
+in other erroneous cases a different negative error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-global-init"></a><h3>gnutls_global_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_global_init (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Since GnuTLS 3.3.0 this function is no longer necessary to be explicitly
+called. To disable the implicit call (in a library constructor) of this
+function set the environment variable <code class="literal">GNUTLS_NO_IMPLICIT_INIT</code> to 1.</p>
+<p>This function performs any required precalculations, detects
+the supported CPU capabilities and initializes the underlying
+cryptographic backend. In order to free any resources
+taken by this call you should <a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()"><code class="function">gnutls_global_deinit()</code></a>
+when gnutls usage is no longer needed.</p>
+<p>This function increments a global counter, so that
+<a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()"><code class="function">gnutls_global_deinit()</code></a> only releases resources when it has been
+called as many times as <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()"><code class="function">gnutls_global_init()</code></a>. This is useful when
+GnuTLS is used by more than one library in an application. This
+function can be called many times, but will only do something the
+first time. It is thread safe since GnuTLS 3.3.0.</p>
+<p>A subsequent call of this function if the initial has failed will
+return the same error code.</p>
+<div class="refsect3">
+<a name="gnutls-global-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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-global-deinit"></a><h3>gnutls_global_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_global_deinit (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>This function deinitializes the global data, that were initialized
+using <a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()"><code class="function">gnutls_global_init()</code></a>.</p>
+<p>Since GnuTLS 3.3.0 this function is no longer necessary to be explicitly
+called. GnuTLS will automatically deinitialize on library destructor. See
+<a class="link" href="gnutls-gnutls.html#gnutls-global-init" title="gnutls_global_init ()"><code class="function">gnutls_global_init()</code></a> for disabling the implicit initialization/deinitialization.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-get-library-config"></a><h3>gnutls_get_library_config ()</h3>
+<pre class="programlisting">const <a class="link" href="gnutls-gnutls.html#gnutls-library-config-st" title="gnutls_library_config_st"><span class="returnvalue">gnutls_library_config_st</span></a> *
+gnutls_get_library_config (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Returns the library configuration as key value pairs.
+Currently defined keys are:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>fips-module-name: the name of the FIPS140 module</p></li>
+<li class="listitem"><p>fips-module-version: the version of the FIPS140 module</p></li>
+<li class="listitem"><p>libgnutls-soname: the SONAME of the library itself</p></li>
+<li class="listitem"><p>libnettle-soname: the library SONAME of linked libnettle</p></li>
+<li class="listitem"><p>libhogweed-soname: the library SONAME of linked libhogweed</p></li>
+<li class="listitem"><p>libgmp-soname: the library SONAME of linked libgmp</p></li>
+<li class="listitem"><p>hardware-features: enabled hardware support features</p></li>
+<li class="listitem"><p>tls-features: enabled TLS protocol features</p></li>
+</ul></div>
+<div class="refsect3">
+<a name="gnutls-get-library-config.returns"></a><h4>Returns</h4>
+<p> a NUL-terminated <a class="link" href="gnutls-gnutls.html#gnutls-library-config-st" title="gnutls_library_config_st"><code class="literal">gnutls_library_config_st</code></a> array</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-time-func"></a><h3>gnutls_time_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+<span class="c_punctuation">(</span>*gnutls_time_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">time_t</span> *t</code></em>);</pre>
+<p>Function prototype for <code class="function">time()</code>-like function. Set with
+<a class="link" href="gnutls-gnutls.html#gnutls-global-set-time-function" title="gnutls_global_set_time_function ()"><code class="function">gnutls_global_set_time_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-time-func.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>t</p></td>
+<td class="parameter_description"><p>where to store time.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-time-func.returns"></a><h4>Returns</h4>
+<p> Number of seconds since the epoch, or (time_t)-1 on errors.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mutex-init-func"></a><h3>mutex_init_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*mutex_init_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mutex-lock-func"></a><h3>mutex_lock_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*mutex_lock_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mutex-unlock-func"></a><h3>mutex_unlock_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*mutex_unlock_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="mutex-deinit-func"></a><h3>mutex_deinit_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*mutex_deinit_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> **mutex</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-global-set-mutex"></a><h3>gnutls_global_set_mutex ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_global_set_mutex (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-init-func" title="mutex_init_func ()"><span class="type">mutex_init_func</span></a> init</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-deinit-func" title="mutex_deinit_func ()"><span class="type">mutex_deinit_func</span></a> deinit</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-lock-func" title="mutex_lock_func ()"><span class="type">mutex_lock_func</span></a> lock</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#mutex-unlock-func" title="mutex_unlock_func ()"><span class="type">mutex_unlock_func</span></a> unlock</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_global_set_mutex</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is discouraged on GnuTLS 3.7.3 or later.</p>
+</div>
+<p>With this function you are allowed to override the default mutex
+locks used in some parts of gnutls and dependent libraries. This function
+should be used if you have complete control of your program and libraries.
+Do not call this function from a library, or preferably from any application
+unless really needed to. GnuTLS will use the appropriate locks for the running
+system.</p>
+<p>This function must be called prior to any other GnuTLS function; otherwise
+the behavior is undefined.</p>
+<div class="refsect3">
+<a name="gnutls-global-set-mutex.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>init</p></td>
+<td class="parameter_description"><p>mutex initialization function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit</p></td>
+<td class="parameter_description"><p>mutex deinitialization function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>lock</p></td>
+<td class="parameter_description"><p>mutex locking function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>unlock</p></td>
+<td class="parameter_description"><p>mutex unlocking function</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-alloc-function"></a><h3>gnutls_alloc_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+<span class="c_punctuation">(</span>*gnutls_alloc_function<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">size_t</span> Param1</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-calloc-function"></a><h3>gnutls_calloc_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+<span class="c_punctuation">(</span>*gnutls_calloc_function<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">size_t</span> Param1</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> Param2</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-is-secure-function"></a><h3>gnutls_is_secure_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_is_secure_function<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">void</span> *Param1</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-free-function"></a><h3>gnutls_free_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_free_function<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-realloc-function"></a><h3>gnutls_realloc_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+<span class="c_punctuation">(</span>*gnutls_realloc_function<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> Param2</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-global-set-time-function"></a><h3>gnutls_global_set_time_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_global_set_time_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-time-func" title="gnutls_time_func ()"><span class="type">gnutls_time_func</span></a> time_func</code></em>);</pre>
+<p>This is the function where you can override the default system time
+function. The application provided function should behave the same
+as the standard function.</p>
+<div class="refsect3">
+<a name="gnutls-global-set-time-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>time_func</p></td>
+<td class="parameter_description"><p>it's the system time function, a <a class="link" href="gnutls-gnutls.html#gnutls-time-func" title="gnutls_time_func ()"><code class="function">gnutls_time_func()</code></a> 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-free"></a><h3>gnutls_free()</h3>
+<pre class="programlisting">#define gnutls_free(a) gnutls_free((void *) (a)), a=NULL
+</pre>
+<p>This function will free data pointed by ptr.</p>
+<p>The deallocation function used is the one set by
+<code class="function">gnutls_global_set_mem_functions()</code>.</p>
+<div class="refsect3">
+<a name="gnutls-free.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>ptr</p></td>
+<td class="parameter_description"><p>pointer to memory</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-memset"></a><h3>gnutls_memset ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_memset (<em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">int</span> c</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> size</code></em>);</pre>
+<p>This function will operate similarly to <code class="function">memset()</code>, but will
+not be optimized out by the compiler.</p>
+<div class="refsect3">
+<a name="gnutls-memset.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>data</p></td>
+<td class="parameter_description"><p>the memory to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>c</p></td>
+<td class="parameter_description"><p>the constant byte to fill the memory with</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>the size of memory</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-memcmp"></a><h3>gnutls_memcmp ()</h3>
+<pre class="programlisting"><span class="returnvalue">if</span>
+gnutls_memcmp ();</pre>
+<p>This function will operate similarly to <code class="function">memcmp()</code>, but will operate
+on time that depends only on the size of the string. That is will
+not return early if the strings don't match on the first byte.</p>
+<div class="refsect3">
+<a name="gnutls-memcmp.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>s1</p></td>
+<td class="parameter_description"><p>the first address to compare</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>s2</p></td>
+<td class="parameter_description"><p>the second address to compare</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>n</p></td>
+<td class="parameter_description"><p>the size of memory to compare</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-memcmp.returns"></a><h4>Returns</h4>
+<p> non zero on difference and zero if the buffers are identical.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-log-func"></a><h3>gnutls_log_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_log_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">int</span> Param1</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *Param2</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-audit-log-func"></a><h3>gnutls_audit_log_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_audit_log_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *Param2</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-global-set-log-function"></a><h3>gnutls_global_set_log_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_global_set_log_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-log-func" title="gnutls_log_func ()"><span class="type">gnutls_log_func</span></a> log_func</code></em>);</pre>
+<p>This is the function where you set the logging function gnutls is
+going to use. This function only accepts a character array.
+Normally you may not use this function since it is only used for
+debugging purposes.</p>
+<p><em class="parameter"><code>gnutls_log_func</code></em>
+ is of the form,
+void (*gnutls_log_func)( int level, const char*);</p>
+<div class="refsect3">
+<a name="gnutls-global-set-log-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>log_func</p></td>
+<td class="parameter_description"><p>it's a log function</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-global-set-audit-log-function"></a><h3>gnutls_global_set_audit_log_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_global_set_audit_log_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-audit-log-func" title="gnutls_audit_log_func ()"><span class="type">gnutls_audit_log_func</span></a> log_func</code></em>);</pre>
+<p>This is the function to set the audit logging function. This
+is a function to report important issues, such as possible
+attacks in the protocol. This is different from <a class="link" href="gnutls-gnutls.html#gnutls-global-set-log-function" title="gnutls_global_set_log_function ()"><code class="function">gnutls_global_set_log_function()</code></a>
+because it will report also session-specific events. The session
+parameter will be null if there is no corresponding TLS session.</p>
+<p><em class="parameter"><code>gnutls_audit_log_func</code></em>
+ is of the form,
+void (*gnutls_audit_log_func)( gnutls_session_t, const char*);</p>
+<div class="refsect3">
+<a name="gnutls-global-set-audit-log-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>log_func</p></td>
+<td class="parameter_description"><p>it is the audit log function</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-global-set-log-level"></a><h3>gnutls_global_set_log_level ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_global_set_log_level (<em class="parameter"><code><span class="type">int</span> level</code></em>);</pre>
+<p>This is the function that allows you to set the log level. The
+level is an integer between 0 and 9. Higher values mean more
+verbosity. The default value is 0. Larger values should only be
+used with care, since they may reveal sensitive information.</p>
+<p>Use a log level over 10 to enable all debugging options.</p>
+<div class="refsect3">
+<a name="gnutls-global-set-log-level.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>level</p></td>
+<td class="parameter_description"><p>it's an integer from 0 to 99.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-keylog-func"></a><h3>gnutls_keylog_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_keylog_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *secret</code></em>);</pre>
+<p>Function prototype for keylog hooks. It is set using
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-keylog-function" title="gnutls_session_set_keylog_function ()"><code class="function">gnutls_session_set_keylog_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-keylog-func.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>session</p></td>
+<td class="parameter_description"><p>the current session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>label</p></td>
+<td class="parameter_description"><p>the keylog label</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secret</p></td>
+<td class="parameter_description"><p>the (const) data of the derived secret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-keylog-func.returns"></a><h4>Returns</h4>
+<p> Non zero on error.</p>
+</div>
+<p class="since">Since: 3.6.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-keylog-function"></a><h3>gnutls_session_get_keylog_function ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-keylog-func" title="gnutls_keylog_func ()"><span class="returnvalue">gnutls_keylog_func</span></a>
+gnutls_session_get_keylog_function (<em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the callback function set using
+<a class="link" href="gnutls-gnutls.html#gnutls-session-set-keylog-function" title="gnutls_session_set_keylog_function ()"><code class="function">gnutls_session_set_keylog_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-session-get-keylog-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>session</p></td>
+<td class="parameter_description"><p>is <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-keylog-function.returns"></a><h4>Returns</h4>
+<p> The function set or <code class="literal">NULL</code> otherwise.</p>
+</div>
+<p class="since">Since: 3.6.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-keylog-function"></a><h3>gnutls_session_set_keylog_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_set_keylog_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-keylog-func" title="gnutls_keylog_func ()"><span class="type">gnutls_keylog_func</span></a> func</code></em>);</pre>
+<p>This function will set a callback to be called when a new secret is
+derived and installed during handshake.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-keylog-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>session</p></td>
+<td class="parameter_description"><p>is <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-init"></a><h3>gnutls_dh_params_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> *dh_params</code></em>);</pre>
+<p>This function will initialize the DH parameters type.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-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>dh_params</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-deinit"></a><h3>gnutls_dh_params_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_dh_params_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
+<p>This function will deinitialize the DH parameters type.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-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>dh_params</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-import-raw"></a><h3>gnutls_dh_params_import_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_import_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</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> *prime</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> *generator</code></em>);</pre>
+<p>This function will replace the pair of prime and generator for use
+in the Diffie-Hellman key exchange. The new parameters should be
+stored in the appropriate gnutls_datum.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-raw.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>dh_params</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prime</p></td>
+<td class="parameter_description"><p>holds the new prime</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>holds the new generator</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-raw.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-import-dsa"></a><h3>gnutls_dh_params_import_dsa ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_import_dsa (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</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>);</pre>
+<p>This function will import the prime and generator of the DSA key for use
+in the Diffie-Hellman key exchange.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-dsa.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>dh_params</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>holds a DSA private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-dsa.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-import-raw2"></a><h3>gnutls_dh_params_import_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_import_raw2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</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> *prime</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> *generator</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> key_bits</code></em>);</pre>
+<p>This function will replace the pair of prime and generator for use
+in the Diffie-Hellman key exchange. The new parameters should be
+stored in the appropriate gnutls_datum.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-raw2.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>dh_params</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prime</p></td>
+<td class="parameter_description"><p>holds the new prime</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>holds the new generator</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_bits</p></td>
+<td class="parameter_description"><p>the private key bits (set to zero when unknown)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-raw2.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-import-raw3"></a><h3>gnutls_dh_params_import_raw3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_import_raw3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</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> *prime</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> *q</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> *generator</code></em>);</pre>
+<p>This function will replace the pair of prime and generator for use
+in the Diffie-Hellman key exchange. The new parameters should be
+stored in the appropriate gnutls_datum.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-raw3.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>dh_params</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prime</p></td>
+<td class="parameter_description"><p>holds the new prime</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>holds the subgroup if available, otherwise NULL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>holds the new generator</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-raw3.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-import-pkcs3"></a><h3>gnutls_dh_params_import_pkcs3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_import_pkcs3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</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> *pkcs3_params</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> format</code></em>);</pre>
+<p>This function will extract the DHParams found in a PKCS3 formatted
+structure. This is the format generated by "openssl dhparam" tool.</p>
+<p>If the structure is PEM encoded, it should have a header
+of "BEGIN DH PARAMETERS".</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-pkcs3.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>params</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pkcs3_params</p></td>
+<td class="parameter_description"><p>should contain a PKCS3 DHParams structure PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of params. PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-import-pkcs3.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-generate2"></a><h3>gnutls_dh_params_generate2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_generate2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
+<p>This function will generate a new pair of prime and generator for use in
+the Diffie-Hellman key exchange. This may take long time.</p>
+<p>It is recommended not to set the number of bits directly, but
+use <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a> instead.</p>
+<p>Also note that the DH parameters are only useful to servers.
+Since clients use the parameters sent by the server, it's of
+no use to call this in client side.</p>
+<p>The parameters generated are of the DSA form. It also is possible
+to generate provable parameters (following the Shawe-Taylor
+algorithm), using <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-generate2" title="gnutls_x509_privkey_generate2 ()"><code class="function">gnutls_x509_privkey_generate2()</code></a> with DSA option
+and the <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-PROVABLE:CAPS"><code class="literal">GNUTLS_PRIVKEY_FLAG_PROVABLE</code></a> flag set. These can the
+be imported with <a class="link" href="gnutls-gnutls.html#gnutls-dh-params-import-dsa" title="gnutls_dh_params_import_dsa ()"><code class="function">gnutls_dh_params_import_dsa()</code></a>.</p>
+<p>It is no longer recommended for applications to generate parameters.
+See the "Parameter generation" section in the manual.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-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>dparams</p></td>
+<td class="parameter_description"><p>The parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>is the prime's number of bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-export-pkcs3"></a><h3>gnutls_dh_params_export_pkcs3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_export_pkcs3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *params_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *params_data_size</code></em>);</pre>
+<p>This function will export the given dh parameters to a PKCS3
+DHParams structure. This is the format generated by "openssl dhparam" tool.
+If the buffer provided is not long enough to hold the output, then
+GNUTLS_E_SHORT_MEMORY_BUFFER will be returned.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN DH PARAMETERS".</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-export-pkcs3.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>params</p></td>
+<td class="parameter_description"><p>Holds the DH parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>params_data</p></td>
+<td class="parameter_description"><p>will contain a PKCS3 DHParams structure PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>params_data_size</p></td>
+<td class="parameter_description"><p>holds the size of params_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-dh-params-export-pkcs3.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-export2-pkcs3"></a><h3>gnutls_dh_params_export2_pkcs3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_export2_pkcs3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</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> format</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 given dh parameters to a PKCS3
+DHParams structure. This is the format generated by "openssl dhparam" tool.
+The data in <em class="parameter"><code>out</code></em>
+ will be allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN DH PARAMETERS".</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-export2-pkcs3.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>params</p></td>
+<td class="parameter_description"><p>Holds the DH parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a PKCS3 DHParams structure PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-export2-pkcs3.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 code is returned.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-export-raw"></a><h3>gnutls_dh_params_export_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_export_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> params</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> *prime</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> *generator</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<p>This function will export the pair of prime and generator for use
+in the Diffie-Hellman key exchange. The new parameters will be
+allocated using <code class="function">gnutls_malloc()</code> and will be stored in the
+appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-export-raw.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>params</p></td>
+<td class="parameter_description"><p>Holds the DH parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prime</p></td>
+<td class="parameter_description"><p>will hold the new prime</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>will hold the new generator</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>if non null will hold the secret key's number of bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-export-raw.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-cpy"></a><h3>gnutls_dh_params_cpy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_params_cpy (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dst</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> src</code></em>);</pre>
+<p>This function will copy the DH parameters structure from source
+to destination. The destination should be already initialized.</p>
+<div class="refsect3">
+<a name="gnutls-dh-params-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>Is the destination parameters, 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>Is the source parameters</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-params-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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pull-func"></a><h3>gnutls_pull_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+<span class="c_punctuation">(</span>*gnutls_pull_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *Param2</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> Param3</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-push-func"></a><h3>gnutls_push_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+<span class="c_punctuation">(</span>*gnutls_push_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *Param2</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> Param3</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-system-recv-timeout"></a><h3>gnutls_system_recv_timeout ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_system_recv_timeout (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> ptr</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> ms</code></em>);</pre>
+<p>Wait for data to be received from the provided socket (<em class="parameter"><code>ptr</code></em>
+) within a
+timeout period in milliseconds, using <code class="function">select()</code> on the provided <em class="parameter"><code>ptr</code></em>
+.</p>
+<p>This function is provided as a helper for constructing custom
+callbacks for <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-timeout-function" title="gnutls_transport_set_pull_timeout_function ()"><code class="function">gnutls_transport_set_pull_timeout_function()</code></a>,
+which can be used if you rely on socket file descriptors.</p>
+<p>Returns -1 on error, 0 on timeout, positive value if data are available for reading.</p>
+<div class="refsect3">
+<a name="gnutls-system-recv-timeout.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>ptr</p></td>
+<td class="parameter_description"><p>A file descriptor (wrapped in a gnutls_transport_ptr_t pointer)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ms</p></td>
+<td class="parameter_description"><p>The number of milliseconds to wait.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pull-timeout-func"></a><h3>gnutls_pull_timeout_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_pull_timeout_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> ms</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-vec-push-func"></a><h3>gnutls_vec_push_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">ssize_t</span>
+<span class="c_punctuation">(</span>*gnutls_vec_push_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#giovec-t" title="giovec_t"><span class="type">giovec_t</span></a> *iov</code></em>,
+ <em class="parameter"><code><span class="type">int</span> iovcnt</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-errno-func"></a><h3>gnutls_errno_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_errno_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> Param1</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-int"></a><h3>gnutls_transport_set_int ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_int (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> r</code></em>);</pre>
+<p>This function sets the first argument of the transport function, such
+as <code class="function">send()</code> and <code class="function">recv()</code> for the default callbacks using the
+system's socket API.</p>
+<p>This function is equivalent to calling <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr" title="gnutls_transport_set_ptr ()"><code class="function">gnutls_transport_set_ptr()</code></a>
+with the descriptor, but requires no casts.</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-int.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fd</p></td>
+<td class="parameter_description"><p>is the socket descriptor for the connection.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-int2"></a><h3>gnutls_transport_set_int2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_int2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> r</code></em>,
+ <em class="parameter"><code><span class="type">int</span> s</code></em>);</pre>
+<p>This function sets the first argument of the transport functions,
+such as <code class="function">send()</code> and <code class="function">recv()</code> for the default callbacks using the
+system's socket API. With this function you can set two different
+descriptors for receiving and sending.</p>
+<p>This function is equivalent to calling <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()"><code class="function">gnutls_transport_set_ptr2()</code></a>
+with the descriptors, but requires no casts.</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-int2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_fd</p></td>
+<td class="parameter_description"><p>is socket descriptor for the pull function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_fd</p></td>
+<td class="parameter_description"><p>is socket descriptor for the push function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-get-int2"></a><h3>gnutls_transport_get_int2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_get_int2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *r</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *s</code></em>);</pre>
+<p>Used to get the arguments of the transport functions (like PUSH
+and PULL). These should have been set using
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-int2" title="gnutls_transport_set_int2 ()"><code class="function">gnutls_transport_set_int2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-transport-get-int2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_int</p></td>
+<td class="parameter_description"><p>will hold the value for the pull function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_int</p></td>
+<td class="parameter_description"><p>will hold the value for the push function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-get-int"></a><h3>gnutls_transport_get_int ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_transport_get_int (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Used to get the first argument of the transport function (like
+PUSH and PULL). This must have been set using
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-int" title="gnutls_transport_set_int ()"><code class="function">gnutls_transport_set_int()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-transport-get-int.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-transport-get-int.returns"></a><h4>Returns</h4>
+<p> The first argument of the transport function.</p>
+</div>
+<p class="since">Since: 3.1.9</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-ptr"></a><h3>gnutls_transport_set_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_ptr (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> ptr</code></em>);</pre>
+<p>Used to set the first argument of the transport function (for push
+and pull callbacks). In berkeley style sockets this function will set the
+connection descriptor.</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_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>is the value.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-ptr2"></a><h3>gnutls_transport_set_ptr2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_ptr2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> recv_ptr</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> send_ptr</code></em>);</pre>
+<p>Used to set the first argument of the transport function (for push
+and pull callbacks). In berkeley style sockets this function will set the
+connection descriptor. With this function you can use two different
+pointers for receiving and sending.</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-ptr2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_ptr</p></td>
+<td class="parameter_description"><p>is the value for the pull function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_ptr</p></td>
+<td class="parameter_description"><p>is the value for the push function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-get-ptr"></a><h3>gnutls_transport_get_ptr ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="returnvalue">gnutls_transport_ptr_t</span></a>
+gnutls_transport_get_ptr (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Used to get the first argument of the transport function (like
+PUSH and PULL). This must have been set using
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr" title="gnutls_transport_set_ptr ()"><code class="function">gnutls_transport_set_ptr()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-transport-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-transport-get-ptr.returns"></a><h4>Returns</h4>
+<p> The first argument of the transport function.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-get-ptr2"></a><h3>gnutls_transport_get_ptr2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_get_ptr2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> *recv_ptr</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-transport-ptr-t" title="gnutls_transport_ptr_t"><span class="type">gnutls_transport_ptr_t</span></a> *send_ptr</code></em>);</pre>
+<p>Used to get the arguments of the transport functions (like PUSH
+and PULL). These should have been set using
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-ptr2" title="gnutls_transport_set_ptr2 ()"><code class="function">gnutls_transport_set_ptr2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-transport-get-ptr2.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_ptr</p></td>
+<td class="parameter_description"><p>will hold the value for the pull function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_ptr</p></td>
+<td class="parameter_description"><p>will hold the value for the push function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-vec-push-function"></a><h3>gnutls_transport_set_vec_push_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_vec_push_function
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-vec-push-func" title="gnutls_vec_push_func ()"><span class="type">gnutls_vec_push_func</span></a> vec_func</code></em>);</pre>
+<p>Using this function you can override the default writev(2)
+function for gnutls to send data. Setting this callback
+instead of <a class="link" href="gnutls-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()"><code class="function">gnutls_transport_set_push_function()</code></a> is recommended
+since it introduces less overhead in the TLS handshake process.</p>
+<p><em class="parameter"><code>vec_func</code></em>
+ is of the form,
+ssize_t (*gnutls_vec_push_func) (gnutls_transport_ptr_t, const giovec_t * iov, int iovcnt);</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-vec-push-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>vec_func</p></td>
+<td class="parameter_description"><p>a callback function similar to <code class="function">writev()</code></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-transport-set-push-function"></a><h3>gnutls_transport_set_push_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_push_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-push-func" title="gnutls_push_func ()"><span class="type">gnutls_push_func</span></a> push_func</code></em>);</pre>
+<p>This is the function where you set a push function for gnutls to
+use in order to send data. If you are going to use berkeley style
+sockets, you do not need to use this function since the default
+send(2) will probably be ok. Otherwise you should specify this
+function for gnutls to be able to send data.
+The callback should return a positive number indicating the
+bytes sent, and -1 on error.</p>
+<p><em class="parameter"><code>push_func</code></em>
+ is of the form,
+ssize_t (*gnutls_push_func)(gnutls_transport_ptr_t, const void*, size_t);</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-push-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>push_func</p></td>
+<td class="parameter_description"><p>a callback function similar to <code class="function">write()</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-pull-function"></a><h3>gnutls_transport_set_pull_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_pull_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pull-func" title="gnutls_pull_func ()"><span class="type">gnutls_pull_func</span></a> pull_func</code></em>);</pre>
+<p>This is the function where you set a function for gnutls to receive
+data. Normally, if you use berkeley style sockets, do not need to
+use this function since the default recv(2) will probably be ok.
+The callback should return 0 on connection termination, a positive
+number indicating the number of bytes received, and -1 on error.</p>
+<p><em class="parameter"><code>gnutls_pull_func</code></em>
+ is of the form,
+ssize_t (*gnutls_pull_func)(gnutls_transport_ptr_t, void*, size_t);</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-pull-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pull_func</p></td>
+<td class="parameter_description"><p>a callback function similar to <code class="function">read()</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-pull-timeout-function"></a><h3>gnutls_transport_set_pull_timeout_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_pull_timeout_function
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-pull-timeout-func" title="gnutls_pull_timeout_func ()"><span class="type">gnutls_pull_timeout_func</span></a> func</code></em>);</pre>
+<p>This is the function where you set a function for gnutls to know
+whether data are ready to be received. It should wait for data a
+given time frame in milliseconds. The callback should return 0 on
+timeout, a positive number if data can be received, and -1 on error.
+You'll need to override this function if <code class="function">select()</code> is not suitable
+for the provided transport calls.</p>
+<p>As with <code class="function">select()</code>, if the timeout value is zero the callback should return
+zero if no data are immediately available. The special value
+<a class="link" href="gnutls-gnutls.html#GNUTLS-INDEFINITE-TIMEOUT:CAPS" title="GNUTLS_INDEFINITE_TIMEOUT"><code class="literal">GNUTLS_INDEFINITE_TIMEOUT</code></a> indicates that the callback should wait indefinitely
+for data.</p>
+<p><em class="parameter"><code>gnutls_pull_timeout_func</code></em>
+ is of the form,
+int (*gnutls_pull_timeout_func)(gnutls_transport_ptr_t, unsigned int ms);</p>
+<p>This callback is necessary when <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-timeout" title="gnutls_handshake_set_timeout ()"><code class="function">gnutls_handshake_set_timeout()</code></a> or
+<a class="link" href="gnutls-gnutls.html#gnutls-record-set-timeout" title="gnutls_record_set_timeout ()"><code class="function">gnutls_record_set_timeout()</code></a> are set, under TLS1.3 and for enforcing the DTLS
+mode timeouts when in blocking mode.</p>
+<p>For compatibility with future GnuTLS versions this callback must be set when
+a custom pull function is registered. The callback will not be used when the
+session is in TLS mode with non-blocking sockets. That is, when <a class="link" href="gnutls-gnutls.html#GNUTLS-NONBLOCK:CAPS"><code class="literal">GNUTLS_NONBLOCK</code></a>
+is specified for a TLS session in <a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()"><code class="function">gnutls_init()</code></a>.</p>
+<p>The helper function <a class="link" href="gnutls-gnutls.html#gnutls-system-recv-timeout" title="gnutls_system_recv_timeout ()"><code class="function">gnutls_system_recv_timeout()</code></a> is provided to
+simplify writing callbacks.</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-pull-timeout-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>a callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-set-errno-function"></a><h3>gnutls_transport_set_errno_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_errno_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-errno-func" title="gnutls_errno_func ()"><span class="type">gnutls_errno_func</span></a> errno_func</code></em>);</pre>
+<p>This is the function where you set a function to retrieve errno
+after a failed push or pull operation.</p>
+<p><em class="parameter"><code>errno_func</code></em>
+ is of the form,
+int (*gnutls_errno_func)(gnutls_transport_ptr_t);
+and should return the errno.</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-errno-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>errno_func</p></td>
+<td class="parameter_description"><p>a callback function similar to <code class="function">write()</code></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-transport-set-errno"></a><h3>gnutls_transport_set_errno ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_transport_set_errno (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">int</span> err</code></em>);</pre>
+<p>Store <em class="parameter"><code>err</code></em>
+ in the session-specific errno variable. Useful values
+for <em class="parameter"><code>err</code></em>
+ are EINTR, EAGAIN and EMSGSIZE, other values are treated will be
+treated as real errors in the push/pull function.</p>
+<p>This function is useful in replacement push and pull functions set by
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-push-function" title="gnutls_transport_set_push_function ()"><code class="function">gnutls_transport_set_push_function()</code></a> and
+<a class="link" href="gnutls-gnutls.html#gnutls-transport-set-pull-function" title="gnutls_transport_set_pull_function ()"><code class="function">gnutls_transport_set_pull_function()</code></a> under Windows, where the
+replacements may not have access to the same <em class="parameter"><code>errno</code></em>
+
+variable that is used by GnuTLS (e.g., the application is linked to
+msvcr71.dll and gnutls is linked to msvcrt.dll).</p>
+<p>This function is unreliable if you are using the same
+<em class="parameter"><code>session</code></em>
+ in different threads for sending and receiving.</p>
+<div class="refsect3">
+<a name="gnutls-transport-set-errno.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err</p></td>
+<td class="parameter_description"><p>error value to store in session-specific errno variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-ptr"></a><h3>gnutls_session_set_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_set_ptr (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
+<p>This function will set (associate) the user given pointer <em class="parameter"><code>ptr</code></em>
+ to
+the session structure. This pointer can be accessed with
+<a class="link" href="gnutls-gnutls.html#gnutls-session-get-ptr" title="gnutls_session_get_ptr ()"><code class="function">gnutls_session_get_ptr()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_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>is the user pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-get-ptr"></a><h3>gnutls_session_get_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+gnutls_session_get_ptr (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get user pointer for session. Useful in callbacks. This is the
+ pointer set with <a class="link" href="gnutls-gnutls.html#gnutls-session-set-ptr" title="gnutls_session_set_ptr ()"><code class="function">gnutls_session_set_ptr()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-session-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-get-ptr.returns"></a><h4>Returns</h4>
+<p> the user given pointer from the session structure, or
+<code class="literal">NULL</code> if it was never set.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-send-cert"></a><h3>gnutls_openpgp_send_cert ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_openpgp_send_cert (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-status-t" title="enum gnutls_openpgp_crt_status_t"><span class="type">gnutls_openpgp_crt_status_t</span></a> status</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fingerprint"></a><h3>gnutls_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_fingerprint (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</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> *data</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will calculate a fingerprint (actually a hash), of
+the given data. The result is not printable data. You should
+convert it to hex, or to something else printable.</p>
+<p>This is the usual way to calculate a fingerprint of an X.509 DER
+encoded certificate. Note however that the fingerprint of an
+OpenPGP certificate is not just a hash and cannot be calculated with this
+function.</p>
+<div class="refsect3">
+<a name="gnutls-fingerprint.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>algo</p></td>
+<td class="parameter_description"><p>is a digest algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>is the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>is the place where the result will be copied (may be null).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>should hold the size of the result. The actual size
+of the returned result will also be copied there.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-fingerprint.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-random-art"></a><h3>gnutls_random_art ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_random_art (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-random-art-t" title="enum gnutls_random_art_t"><span class="type">gnutls_random_art_t</span></a> type</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *key_type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> key_size</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> fpr_size</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> *art</code></em>);</pre>
+<p>This function will convert a given fingerprint to an "artistic"
+image. The returned image is allocated using <code class="function">gnutls_malloc()</code>, is
+null-terminated but art-&gt;size will not account the terminating null.</p>
+<div class="refsect3">
+<a name="gnutls-random-art.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>The type of the random art (for now only <a class="link" href="gnutls-gnutls.html#GNUTLS-RANDOM-ART-OPENSSH:CAPS"><code class="literal">GNUTLS_RANDOM_ART_OPENSSH</code></a> is supported)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_type</p></td>
+<td class="parameter_description"><p>The type of the key (RSA, DSA etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_size</p></td>
+<td class="parameter_description"><p>The size of the key in bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fpr</p></td>
+<td class="parameter_description"><p>The fingerprint of the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fpr_size</p></td>
+<td class="parameter_description"><p>The size of the fingerprint</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>art</p></td>
+<td class="parameter_description"><p>The returned random art</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-random-art.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-idna-map"></a><h3>gnutls_idna_map ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_idna_map (<em class="parameter"><code>const <span class="type">char</span> *input</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> ilen</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>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will convert the provided UTF-8 domain name, to
+its IDNA mapping in an allocated variable. Note that depending on the flags the used gnutls
+library was compiled with, the output of this function may vary (i.e.,
+may be IDNA2008, or IDNA2003).</p>
+<p>To force IDNA2008 specify the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-IDNA-FORCE-2008:CAPS" title="GNUTLS_IDNA_FORCE_2008"><code class="literal">GNUTLS_IDNA_FORCE_2008</code></a>. In
+the case GnuTLS is not compiled with the necessary dependencies,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a> will be returned to indicate that
+gnutls is unable to perform the requested conversion.</p>
+<p>Note also, that this function will return an empty string if an
+empty string is provided as input.</p>
+<div class="refsect3">
+<a name="gnutls-idna-map.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>input</p></td>
+<td class="parameter_description"><p>contain the UTF-8 formatted domain name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ilen</p></td>
+<td class="parameter_description"><p>the length of the provided string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>the result in an null-terminated allocated string</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-idna-map.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-STRING:CAPS" title="GNUTLS_E_INVALID_UTF8_STRING"><code class="literal">GNUTLS_E_INVALID_UTF8_STRING</code></a> on invalid UTF-8 data, or 0 on success.</p>
+</div>
+<p class="since">Since: 3.5.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-idna-reverse-map"></a><h3>gnutls_idna_reverse_map ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_idna_reverse_map (<em class="parameter"><code>const <span class="type">char</span> *input</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> ilen</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>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will convert an ACE (ASCII-encoded) domain name to a UTF-8 domain name.</p>
+<p>If GnuTLS is compiled without IDNA support, then this function
+will return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+<p>Note also, that this function will return an empty string if an
+empty string is provided as input.</p>
+<div class="refsect3">
+<a name="gnutls-idna-reverse-map.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>input</p></td>
+<td class="parameter_description"><p>contain the ACE (IDNA) formatted domain name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ilen</p></td>
+<td class="parameter_description"><p>the length of the provided string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>the result in an null-terminated allocated UTF-8 string</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-idna-reverse-map.returns"></a><h4>Returns</h4>
+<p> A negative error code on error, or 0 on success.</p>
+</div>
+<p class="since">Since: 3.5.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-free-client-credentials"></a><h3>gnutls_srp_free_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_srp_free_client_credentials (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> sc</code></em>);</pre>
+<p>Free a gnutls_srp_client_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-srp-free-client-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_srp_client_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-allocate-client-credentials"></a><h3>gnutls_srp_allocate_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_allocate_client_credentials
+ (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> *sc</code></em>);</pre>
+<p>Allocate a gnutls_srp_client_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-srp-allocate-client-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_srp_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-allocate-client-credentials.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, or an
+error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-set-client-credentials"></a><h3>gnutls_srp_set_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_set_client_credentials (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>);</pre>
+<p>This function sets the username and password, in a
+<span class="type">gnutls_srp_client_credentials_t</span> type. Those will be used in
+SRP authentication. <em class="parameter"><code>username</code></em>
+ should be an ASCII string or UTF-8
+string. In case of a UTF-8 string it is recommended to be following
+the PRECIS framework for usernames (rfc8265). The password can
+be in ASCII format, or normalized using <a class="link" href="gnutls-gnutls.html#gnutls-utf8-password-normalize" title="gnutls_utf8_password_normalize ()"><code class="function">gnutls_utf8_password_normalize()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-srp-set-client-credentials.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_srp_client_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p>is the user's userid</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>is the user's password</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-set-client-credentials.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, or an
+error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-free-server-credentials"></a><h3>gnutls_srp_free_server_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_srp_free_server_credentials (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> sc</code></em>);</pre>
+<p>Free a gnutls_srp_server_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-srp-free-server-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_srp_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-allocate-server-credentials"></a><h3>gnutls_srp_allocate_server_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_allocate_server_credentials
+ (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> *sc</code></em>);</pre>
+<p>Allocate a gnutls_srp_server_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-srp-allocate-server-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_srp_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-allocate-server-credentials.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, or an
+error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-set-server-credentials-file"></a><h3>gnutls_srp_set_server_credentials_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_set_server_credentials_file
+ (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password_file</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password_conf_file</code></em>);</pre>
+<p>This function sets the password files, in a
+<span class="type">gnutls_srp_server_credentials_t</span> type. Those password files
+hold usernames and verifiers and will be used for SRP
+authentication.</p>
+<div class="refsect3">
+<a name="gnutls-srp-set-server-credentials-file.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_srp_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password_file</p></td>
+<td class="parameter_description"><p>is the SRP password file (tpasswd)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password_conf_file</p></td>
+<td class="parameter_description"><p>is the SRP password conf file (tpasswd.conf)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-set-server-credentials-file.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, or an
+error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-server-get-username"></a><h3>gnutls_srp_server_get_username ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_srp_server_get_username (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the username of the peer. This should
+only be called in case of SRP authentication and in case of a
+server. Returns NULL in case of an error.</p>
+<div class="refsect3">
+<a name="gnutls-srp-server-get-username.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-server-get-username.returns"></a><h4>Returns</h4>
+<p> SRP username of the peer, or NULL in case of error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-set-prime-bits"></a><h3>gnutls_srp_set_prime_bits ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_srp_set_prime_bits (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
+<p>This function sets the minimum accepted number of bits, for use in
+an SRP key exchange. If zero, the default 2048 bits will be used.</p>
+<p>In the client side it sets the minimum accepted number of bits. If
+a server sends a prime with less bits than that
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS" title="GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER"><code class="literal">GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER</code></a> will be returned by the
+handshake.</p>
+<p>This function has no effect in server side.</p>
+<div class="refsect3">
+<a name="gnutls-srp-set-prime-bits.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_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>is the number of bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-verifier"></a><h3>gnutls_srp_verifier ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_verifier (<em class="parameter"><code>const <span class="type">char</span> *username</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</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> *salt</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> *generator</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> *prime</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> *res</code></em>);</pre>
+<p>This function will create an SRP verifier, as specified in
+RFC2945. The <em class="parameter"><code>prime</code></em>
+ and <em class="parameter"><code>generator</code></em>
+ should be one of the static
+parameters defined in gnutls/gnutls.h or may be generated.</p>
+<p>The verifier will be allocated with <em class="parameter"><code><code class="function">gnutls_malloc()</code></code></em>
+ and will be stored in
+<em class="parameter"><code>res</code></em>
+ using binary format.</p>
+<div class="refsect3">
+<a name="gnutls-srp-verifier.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>username</p></td>
+<td class="parameter_description"><p>is the user's name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>is the user's password</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt</p></td>
+<td class="parameter_description"><p>should be some randomly generated bytes</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>generator</p></td>
+<td class="parameter_description"><p>is the generator of the group</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>prime</p></td>
+<td class="parameter_description"><p>is the group's prime</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>res</p></td>
+<td class="parameter_description"><p>where the verifier will be stored.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-verifier.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, or an
+error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-set-server-credentials-function"></a><h3>gnutls_srp_set_server_credentials_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_srp_set_server_credentials_function
+ (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_srp_server_credentials_function</span> *func</code></em>);</pre>
+<p>This function can be used to set a callback to retrieve the user's
+SRP credentials. The callback's function form is:</p>
+<p>int (*callback)(gnutls_session_t, const char* username,
+ gnutls_datum_t *salt, gnutls_datum_t *verifier, gnutls_datum_t *generator,
+ gnutls_datum_t *prime);</p>
+<p><em class="parameter"><code>username</code></em>
+ contains the actual username.
+The <em class="parameter"><code>salt</code></em>
+, <em class="parameter"><code>verifier</code></em>
+, <em class="parameter"><code>generator</code></em>
+ and <em class="parameter"><code>prime</code></em>
+ must be filled
+in using the <code class="function">gnutls_malloc()</code>. For convenience <em class="parameter"><code>prime</code></em>
+ and <em class="parameter"><code>generator</code></em>
+
+may also be one of the static parameters defined in gnutls.h.</p>
+<p>Initially, the data field is NULL in every <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a>
+structure that the callback has to fill in. When the
+callback is done GnuTLS deallocates all of those buffers
+which are non-NULL, regardless of the return value.</p>
+<p>In order to prevent attackers from guessing valid usernames,
+if a user does not exist, g and n values should be filled in
+using a random user's parameters. In that case the callback must
+return the special value (1).
+See <a class="link" href="gnutls-gnutls.html#gnutls-srp-set-server-fake-salt-seed" title="gnutls_srp_set_server_fake_salt_seed ()"><span class="type">gnutls_srp_set_server_fake_salt_seed</span></a> too.
+If this is not required for your application, return a negative
+number from the callback to abort the handshake.</p>
+<p>The callback function will only be called once per handshake.
+The callback function should return 0 on success, while
+-1 indicates an error.</p>
+<div class="refsect3">
+<a name="gnutls-srp-set-server-credentials-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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_srp_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-set-client-credentials-function"></a><h3>gnutls_srp_set_client_credentials_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_srp_set_client_credentials_function
+ (<em class="parameter"><code><span class="type">gnutls_srp_client_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_srp_client_credentials_function</span> *func</code></em>);</pre>
+<p>This function can be used to set a callback to retrieve the
+username and password for client SRP authentication. The
+callback's function form is:</p>
+<p>int (*callback)(gnutls_session_t, char** username, char**password);</p>
+<p>The <em class="parameter"><code>username</code></em>
+ and <em class="parameter"><code>password</code></em>
+ must be allocated using
+<code class="function">gnutls_malloc()</code>.</p>
+<p>The <em class="parameter"><code>username</code></em>
+ should be an ASCII string or UTF-8
+string. In case of a UTF-8 string it is recommended to be following
+the PRECIS framework for usernames (rfc8265). The password can
+be in ASCII format, or normalized using <a class="link" href="gnutls-gnutls.html#gnutls-utf8-password-normalize" title="gnutls_utf8_password_normalize ()"><code class="function">gnutls_utf8_password_normalize()</code></a>.</p>
+<p>The callback function will be called once per handshake before the
+initial hello message is sent.</p>
+<p>The callback should not return a negative error code the second
+time called, since the handshake procedure will be aborted.</p>
+<p>The callback function should return 0 on success.
+-1 indicates an error.</p>
+<div class="refsect3">
+<a name="gnutls-srp-set-client-credentials-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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_srp_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-base64-encode"></a><h3>gnutls_srp_base64_encode ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_base64_encode (<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> *data</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will convert the given data to printable data, using
+the base64 encoding, as used in the libsrp. This is the encoding
+used in SRP password files. If the provided buffer is not long
+enough GNUTLS_E_SHORT_MEMORY_BUFFER is returned.</p>
+<p>Warning! This base64 encoding is not the "standard" encoding, so
+do not use it for non-SRP purposes.</p>
+<div class="refsect3">
+<a name="gnutls-srp-base64-encode.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>data</p></td>
+<td class="parameter_description"><p>contain the raw data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the place where base64 data will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>holds the size of the result</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-base64-encode.returns"></a><h4>Returns</h4>
+<p> <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> if the buffer given is not
+long enough, or 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-base64-encode2"></a><h3>gnutls_srp_base64_encode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_base64_encode2 (<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> *data</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> *result</code></em>);</pre>
+<p>This function will convert the given data to printable data, using
+the base64 encoding. This is the encoding used in SRP password
+files. This function will allocate the required memory to hold
+the encoded data.</p>
+<p>You should use <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a> to free the returned data.</p>
+<p>Warning! This base64 encoding is not the "standard" encoding, so
+do not use it for non-SRP purposes.</p>
+<div class="refsect3">
+<a name="gnutls-srp-base64-encode2.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>data</p></td>
+<td class="parameter_description"><p>contains the raw data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>will hold the newly allocated encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-base64-encode2.returns"></a><h4>Returns</h4>
+<p> 0 on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-base64-decode"></a><h3>gnutls_srp_base64_decode ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_base64_decode (<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> *b64_data</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will decode the given encoded data, using the base64
+encoding found in libsrp.</p>
+<p>Note that <em class="parameter"><code>b64_data</code></em>
+ should be null terminated.</p>
+<p>Warning! This base64 encoding is not the "standard" encoding, so
+do not use it for non-SRP purposes.</p>
+<div class="refsect3">
+<a name="gnutls-srp-base64-decode.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>b64_data</p></td>
+<td class="parameter_description"><p>contain the encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the place where decoded data will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>holds the size of the result</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-base64-decode.returns"></a><h4>Returns</h4>
+<p> <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> if the buffer given is not
+long enough, or 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-base64-decode2"></a><h3>gnutls_srp_base64_decode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_srp_base64_decode2 (<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> *b64_data</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> *result</code></em>);</pre>
+<p>This function will decode the given encoded data. The decoded data
+will be allocated, and stored into result. It will decode using
+the base64 algorithm as used in libsrp.</p>
+<p>You should use <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a> to free the returned data.</p>
+<p>Warning! This base64 encoding is not the "standard" encoding, so
+do not use it for non-SRP purposes.</p>
+<div class="refsect3">
+<a name="gnutls-srp-base64-decode2.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>b64_data</p></td>
+<td class="parameter_description"><p>contains the encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the place where decoded data lie</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-srp-base64-decode2.returns"></a><h4>Returns</h4>
+<p> 0 on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-set-server-fake-salt-seed"></a><h3>gnutls_srp_set_server_fake_salt_seed ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_srp_set_server_fake_salt_seed (<em class="parameter"><code><span class="type">gnutls_srp_server_credentials_t</span> sc</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> *seed</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> salt_length</code></em>);</pre>
+<p>This function sets the seed that is used to generate salts for
+invalid (non-existent) usernames.</p>
+<p>In order to prevent attackers from guessing valid usernames,
+when a user does not exist gnutls generates a salt and a verifier
+and proceeds with the protocol as usual.
+The authentication will ultimately fail, but the client cannot tell
+whether the username is valid (exists) or invalid.</p>
+<p>If an attacker learns the seed, given a salt (which is part of the
+handshake) which was generated when the seed was in use, it can tell
+whether or not the authentication failed because of an unknown username.
+This seed cannot be used to reveal application data or passwords.</p>
+<p><em class="parameter"><code>salt_length</code></em>
+ should represent the salt length your application uses.
+Generating fake salts longer than 20 bytes is not supported.</p>
+<p>By default the seed is a random value, different each time a
+<span class="type">gnutls_srp_server_credentials_t</span> is allocated and fake salts are
+16 bytes long.</p>
+<div class="refsect3">
+<a name="gnutls-srp-set-server-fake-salt-seed.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_srp_server_credentials_t</span> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed</p></td>
+<td class="parameter_description"><p>is the seed data, only needs to be valid until the function
+returns; size of the seed must be greater than zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt_length</p></td>
+<td class="parameter_description"><p>is the length of the generated fake salts</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-free-client-credentials"></a><h3>gnutls_psk_free_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_free_client_credentials (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> sc</code></em>);</pre>
+<p>Free a gnutls_psk_client_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-psk-free-client-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_client_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-allocate-client-credentials"></a><h3>gnutls_psk_allocate_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_allocate_client_credentials
+ (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> *sc</code></em>);</pre>
+<p>Allocate a gnutls_psk_client_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-psk-allocate-client-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-allocate-client-credentials.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-client-credentials"></a><h3>gnutls_psk_set_client_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_set_client_credentials (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *username</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> *key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags"><span class="type">gnutls_psk_key_flags</span></a> flags</code></em>);</pre>
+<p>This function sets the username and password, in a
+gnutls_psk_client_credentials_t type. Those will be used in
+PSK authentication. <em class="parameter"><code>username</code></em>
+ should be an ASCII string or UTF-8
+string. In case of a UTF-8 string it is recommended to be following
+the PRECIS framework for usernames (rfc8265). The key can be either
+in raw byte format or in Hex format (without the 0x prefix).</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-client-credentials.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_client_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p>is the user's zero-terminated userid</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>is the user's key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>indicate the format of the key, either
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PSK-KEY-RAW:CAPS"><code class="literal">GNUTLS_PSK_KEY_RAW</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-PSK-KEY-HEX:CAPS"><code class="literal">GNUTLS_PSK_KEY_HEX</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-set-client-credentials.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-client-credentials2"></a><h3>gnutls_psk_set_client_credentials2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_set_client_credentials2 (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> res</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> *username</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> *key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-psk-key-flags" title="enum gnutls_psk_key_flags"><span class="type">gnutls_psk_key_flags</span></a> flags</code></em>);</pre>
+<p>This function is identical to <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials" title="gnutls_psk_set_client_credentials ()"><code class="function">gnutls_psk_set_client_credentials()</code></a>,
+except that it allows a non-null-terminated username to be introduced.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-client-credentials2.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_client_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p>is the userid</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>is the user's key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>indicate the format of the key, either
+<a class="link" href="gnutls-gnutls.html#GNUTLS-PSK-KEY-RAW:CAPS"><code class="literal">GNUTLS_PSK_KEY_RAW</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-PSK-KEY-HEX:CAPS"><code class="literal">GNUTLS_PSK_KEY_HEX</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-set-client-credentials2.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-free-server-credentials"></a><h3>gnutls_psk_free_server_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_free_server_credentials (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> sc</code></em>);</pre>
+<p>Free a gnutls_psk_server_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-psk-free-server-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-allocate-server-credentials"></a><h3>gnutls_psk_allocate_server_credentials ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_allocate_server_credentials
+ (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> *sc</code></em>);</pre>
+<p>Allocate a gnutls_psk_server_credentials_t structure.</p>
+<div class="refsect3">
+<a name="gnutls-psk-allocate-server-credentials.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>sc</p></td>
+<td class="parameter_description"><p>is a pointer to a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-allocate-server-credentials.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-server-credentials-file"></a><h3>gnutls_psk_set_server_credentials_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_set_server_credentials_file
+ (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password_file</code></em>);</pre>
+<p>This function sets the password file, in a
+<span class="type">gnutls_psk_server_credentials_t</span> type. This password file
+holds usernames and keys and will be used for PSK authentication.</p>
+<p>Each entry in the file consists of a username, followed by a colon
+(':') and a hex-encoded key. If the username contains a colon or
+any other special character, it can be hex-encoded preceded by a
+'#'.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-credentials-file.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password_file</p></td>
+<td class="parameter_description"><p>is the PSK password file (passwd.psk)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-credentials-file.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-server-credentials-hint"></a><h3>gnutls_psk_set_server_credentials_hint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_set_server_credentials_hint
+ (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *hint</code></em>);</pre>
+<p>This function sets the identity hint, in a
+<span class="type">gnutls_psk_server_credentials_t</span> type. This hint is sent to
+the client to help it chose a good PSK credential (i.e., username
+and password).</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-credentials-hint.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hint</p></td>
+<td class="parameter_description"><p>is the PSK identity hint string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-credentials-hint.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-server-get-username"></a><h3>gnutls_psk_server_get_username ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_psk_server_get_username (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This should only be called in case of PSK authentication and in
+case of a server.</p>
+<p>The returned pointer should be considered constant (do not free) and valid
+for the lifetime of the session.</p>
+<p>This function will return <code class="literal">NULL</code> if the username has embedded NULL bytes.
+In that case, <a class="link" href="gnutls-gnutls.html#gnutls-psk-server-get-username2" title="gnutls_psk_server_get_username2 ()"><code class="function">gnutls_psk_server_get_username2()</code></a> should be used to retrieve the username.</p>
+<div class="refsect3">
+<a name="gnutls-psk-server-get-username.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-server-get-username.returns"></a><h4>Returns</h4>
+<p> the username of the peer, or <code class="literal">NULL</code> in case of an error,
+or if the username has embedded NULLs.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-server-get-username2"></a><h3>gnutls_psk_server_get_username2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_server_get_username2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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>Return a pointer to the username of the peer in the supplied datum. Does not
+need to be null-terminated.</p>
+<p>This should only be called in case of PSK authentication and in
+case of a server.</p>
+<p>The returned pointer should be considered constant (do not free) and valid
+for the lifetime of the session.</p>
+<div class="refsect3">
+<a name="gnutls-psk-server-get-username2.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>username</p></td>
+<td class="parameter_description"><p>a datum that will be filled in by this function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-server-get-username2.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>, or a negative value in case of an error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-client-get-hint"></a><h3>gnutls_psk_client_get_hint ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_psk_client_get_hint (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>The PSK identity hint may give the client help in deciding which
+username to use. This should only be called in case of PSK
+authentication and in case of a client.</p>
+<p>Note: there is no hint in TLS 1.3, so this function will return <code class="literal">NULL</code>
+if TLS 1.3 has been negotiated.</p>
+<div class="refsect3">
+<a name="gnutls-psk-client-get-hint.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-client-get-hint.returns"></a><h4>Returns</h4>
+<p> the identity hint of the peer, or <code class="literal">NULL</code> in case of an error or if TLS 1.3 is being used.</p>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-server-credentials-function"></a><h3>gnutls_psk_set_server_credentials_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_set_server_credentials_function
+ (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_psk_server_credentials_function</span> *func</code></em>);</pre>
+<p>This function can be used to set a callback to retrieve the user's PSK credentials.
+The callback's function form is:
+int (*callback)(gnutls_session_t, const char* username,
+ gnutls_datum_t* key);</p>
+<p><em class="parameter"><code>username</code></em>
+ contains the actual username.
+The <em class="parameter"><code>key</code></em>
+ must be filled in using the <code class="function">gnutls_malloc()</code>.</p>
+<p>In case the callback returned a negative number then gnutls will
+assume that the username does not exist.</p>
+<p>The callback function will only be called once per handshake. The
+callback function should return 0 on success, while -1 indicates
+an error.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-credentials-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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-server-credentials-function2"></a><h3>gnutls_psk_set_server_credentials_function2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_set_server_credentials_function2
+ (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_psk_server_credentials_function2</span> *func</code></em>);</pre>
+<p>This function can be used to set a callback to retrieve the user's PSK credentials.
+The callback's function form is:
+int (*callback)(gnutls_session_t, const gnutls_datum_t* username,
+ gnutls_datum_t* key);</p>
+<p>This callback function has the same semantics as that of <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function" title="gnutls_psk_set_server_credentials_function ()"><code class="function">gnutls_psk_set_server_credentials_function()</code></a>,
+but it allows non-string usernames to be used.</p>
+<p><em class="parameter"><code>username</code></em>
+ contains the actual username.
+The <em class="parameter"><code>key</code></em>
+ must be filled in using the <code class="function">gnutls_malloc()</code>.</p>
+<p>In case the callback returned a negative number then gnutls will
+assume that the username does not exist.</p>
+<p>The callback function will only be called once per handshake. The
+callback function should return 0 on success, while -1 indicates
+an error.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-credentials-function2.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-client-credentials-function"></a><h3>gnutls_psk_set_client_credentials_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_set_client_credentials_function
+ (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_psk_client_credentials_function</span> *func</code></em>);</pre>
+<p>This function can be used to set a callback to retrieve the username and
+password for client PSK authentication.
+The callback's function form is:
+int (*callback)(gnutls_session_t, char** username,
+ gnutls_datum_t* key);</p>
+<p>The <em class="parameter"><code>username</code></em>
+ and <em class="parameter"><code>key-&gt;data</code></em>
+ must be allocated using <code class="function">gnutls_malloc()</code>.
+The <em class="parameter"><code>username</code></em>
+ should be an ASCII string or UTF-8
+string. In case of a UTF-8 string it is recommended to be following
+the PRECIS framework for usernames (rfc8265).</p>
+<p>The callback function will be called once per handshake.</p>
+<p>The callback function should return 0 on success.
+-1 indicates an error.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-client-credentials-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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-client-credentials-function2"></a><h3>gnutls_psk_set_client_credentials_function2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_set_client_credentials_function2
+ (<em class="parameter"><code><span class="type">gnutls_psk_client_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_psk_client_credentials_function2</span> *func</code></em>);</pre>
+<p>This function can be used to set a callback to retrieve the username and
+password for client PSK authentication.
+The callback's function form is:
+int (*callback)(gnutls_session_t, gnutls_datum_t* username,
+ gnutls_datum_t* key);</p>
+<p>This callback function has the same semantics as that of <a class="link" href="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function" title="gnutls_psk_set_client_credentials_function ()"><code class="function">gnutls_psk_set_client_credentials_function()</code></a>,
+but it allows non-string usernames to be used.</p>
+<p>The <em class="parameter"><code>username</code></em>
+ and <em class="parameter"><code>key-&gt;data</code></em>
+ must be allocated using <code class="function">gnutls_malloc()</code>.
+The <em class="parameter"><code>username</code></em>
+ should be an ASCII string or UTF-8
+string. In case of a UTF-8 string it is recommended to be following
+the PRECIS framework for usernames (rfc8265).</p>
+<p>The callback function will be called once per handshake.</p>
+<p>The callback function should return 0 on success.
+-1 indicates an error.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-client-credentials-function2.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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_psk_server_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hex-encode"></a><h3>gnutls_hex_encode ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hex_encode (<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> *data</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will convert the given data to printable data, using
+the hex encoding, as used in the PSK password files.</p>
+<p>Note that the size of the result includes the null terminator.</p>
+<div class="refsect3">
+<a name="gnutls-hex-encode.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>data</p></td>
+<td class="parameter_description"><p>contain the raw data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the place where hex data will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>holds the size of the result</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hex-encode.returns"></a><h4>Returns</h4>
+<p> <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> if the buffer given is not
+long enough, or 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hex-decode"></a><h3>gnutls_hex_decode ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hex_decode (<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> *hex_data</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will decode the given encoded data, using the hex
+encoding used by PSK password files.</p>
+<p>Initially <em class="parameter"><code>result_size</code></em>
+ must hold the maximum size available in
+<em class="parameter"><code>result</code></em>
+, and on return it will contain the number of bytes written.</p>
+<div class="refsect3">
+<a name="gnutls-hex-decode.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>hex_data</p></td>
+<td class="parameter_description"><p>contain the encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the place where decoded data will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>holds the size of the result</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hex-decode.returns"></a><h4>Returns</h4>
+<p> <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> if the buffer given is not
+long enough, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR"><code class="literal">GNUTLS_E_PARSING_ERROR</code></a> on invalid hex data, or 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hex-encode2"></a><h3>gnutls_hex_encode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hex_encode2 (<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> *data</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> *result</code></em>);</pre>
+<p>This function will convert the given data to printable data, using
+the hex encoding, as used in the PSK password files.</p>
+<p>Note that the size of the result does NOT include the null terminator.</p>
+<div class="refsect3">
+<a name="gnutls-hex-encode2.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>data</p></td>
+<td class="parameter_description"><p>contain the raw data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the result in an allocated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hex-encode2.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> on success, otherwise a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hex-decode2"></a><h3>gnutls_hex_decode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hex_decode2 (<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> *data</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> *result</code></em>);</pre>
+<p>This function will decode the given encoded data, using the hex
+encoding used by PSK password files.</p>
+<div class="refsect3">
+<a name="gnutls-hex-decode2.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>hex_data</p></td>
+<td class="parameter_description"><p>contain the encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the result in an allocated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hex-decode2.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR"><code class="literal">GNUTLS_E_PARSING_ERROR</code></a> on invalid hex data, or 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-server-dh-params"></a><h3>gnutls_psk_set_server_dh_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_set_server_dh_params (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-dh-params-t" title="gnutls_dh_params_t"><span class="type">gnutls_dh_params_t</span></a> dh_params</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_psk_set_server_dh_params</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set the Diffie-Hellman parameters for an
+anonymous server to use. These parameters will be used in
+Diffie-Hellman exchange with PSK cipher suites.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-dh-params.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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_psk_server_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dh_params</p></td>
+<td class="parameter_description"><p>is a structure that holds Diffie-Hellman parameters.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-server-known-dh-params"></a><h3>gnutls_psk_set_server_known_dh_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_psk_set_server_known_dh_params (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="type">gnutls_sec_param_t</span></a> sec_param</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_psk_set_server_known_dh_params</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set the Diffie-Hellman parameters for a
+PSK server to use. These parameters will be used in
+Ephemeral Diffie-Hellman cipher suites and will be selected from
+the FFDHE set of RFC7919 according to the security level provided.</p>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-known-dh-params.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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_psk_server_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sec_param</p></td>
+<td class="parameter_description"><p>is an option of the <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><code class="literal">gnutls_sec_param_t</code></a> enumeration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-psk-set-server-known-dh-params.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.5.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-server-params-function"></a><h3>gnutls_psk_set_server_params_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_set_server_params_function (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_psk_set_server_params_function</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set a callback in order for the server to get
+the Diffie-Hellman parameters for PSK authentication. The callback
+should return <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 class="refsect3">
+<a name="gnutls-psk-set-server-params-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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-set-prime-bits"></a><h3>gnutls_dh_set_prime_bits ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_dh_set_prime_bits (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>);</pre>
+<p>This function sets the number of bits, for use in a Diffie-Hellman
+key exchange. This is used both in DH ephemeral and DH anonymous
+cipher suites. This will set the minimum size of the prime that
+will be used for the handshake.</p>
+<p>In the client side it sets the minimum accepted number of bits. If
+a server sends a prime with less bits than that
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS" title="GNUTLS_E_DH_PRIME_UNACCEPTABLE"><code class="literal">GNUTLS_E_DH_PRIME_UNACCEPTABLE</code></a> will be returned by the handshake.</p>
+<p>Note that this function will warn via the audit log for value that
+are believed to be weak.</p>
+<p>The function has no effect in server side.</p>
+<p>Note that since 3.1.7 this function is deprecated. The minimum
+number of bits is set by the priority string level.
+Also this function must be called after <a class="link" href="gnutls-gnutls.html#gnutls-priority-set-direct" title="gnutls_priority_set_direct ()"><code class="function">gnutls_priority_set_direct()</code></a>
+or the set value may be overridden by the selected priority options.</p>
+<div class="refsect3">
+<a name="gnutls-dh-set-prime-bits.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_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>is the number of bits</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-get-secret-bits"></a><h3>gnutls_dh_get_secret_bits ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_get_secret_bits (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the bits used in the last Diffie-Hellman
+key exchange with the peer. Should be used for both anonymous and
+ephemeral Diffie-Hellman.</p>
+<div class="refsect3">
+<a name="gnutls-dh-get-secret-bits.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-get-secret-bits.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-get-peers-public-bits"></a><h3>gnutls_dh_get_peers_public_bits ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_get_peers_public_bits (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get the Diffie-Hellman public key bit size. Can be used for both
+anonymous and ephemeral Diffie-Hellman.</p>
+<div class="refsect3">
+<a name="gnutls-dh-get-peers-public-bits.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-get-peers-public-bits.returns"></a><h4>Returns</h4>
+<p> The public key bit size used in the last Diffie-Hellman
+key exchange with the peer, or a negative error code in case of error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-get-prime-bits"></a><h3>gnutls_dh_get_prime_bits ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_get_prime_bits (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function will return the bits of the prime used in the last
+Diffie-Hellman key exchange with the peer. Should be used for both
+anonymous and ephemeral Diffie-Hellman. Note that some ciphers,
+like RSA and DSA without DHE, do not use a Diffie-Hellman key
+exchange, and then this function will return 0.</p>
+<div class="refsect3">
+<a name="gnutls-dh-get-prime-bits.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-get-prime-bits.returns"></a><h4>Returns</h4>
+<p> The Diffie-Hellman bit strength is returned, or 0 if no
+Diffie-Hellman key exchange was done, or a negative error code on
+failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-get-group"></a><h3>gnutls_dh_get_group ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_get_group (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *raw_gen</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> *raw_prime</code></em>);</pre>
+<p>This function will return the group parameters used in the last
+Diffie-Hellman key exchange with the peer. These are the prime and
+the generator used. This function should be used for both
+anonymous and ephemeral Diffie-Hellman. The output parameters must
+be freed with <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>Note, that the prime and generator are exported as non-negative
+integers and may include a leading zero byte.</p>
+<div class="refsect3">
+<a name="gnutls-dh-get-group.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_gen</p></td>
+<td class="parameter_description"><p>will hold the generator.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_prime</p></td>
+<td class="parameter_description"><p>will hold the prime.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-get-group.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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-get-pubkey"></a><h3>gnutls_dh_get_pubkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_dh_get_pubkey (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *raw_key</code></em>);</pre>
+<p>This function will return the peer's public key used in the last
+Diffie-Hellman key exchange. This function should be used for both
+anonymous and ephemeral Diffie-Hellman. The output parameters must
+be freed with <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>Note, that public key is exported as non-negative
+integer and may include a leading zero byte.</p>
+<div class="refsect3">
+<a name="gnutls-dh-get-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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_key</p></td>
+<td class="parameter_description"><p>will hold the public key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-dh-get-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
+an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-retrieve-function"></a><h3>gnutls_certificate_set_retrieve_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_retrieve_function
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_certificate_retrieve_function</span> *func</code></em>);</pre>
+<p>This function sets a callback to be called in order to retrieve the
+certificate to be used in the handshake. The callback will take control
+only if a certificate is requested by the peer. You are advised
+to use <a class="link" href="gnutls-abstract.html#gnutls-certificate-set-retrieve-function2" title="gnutls_certificate_set_retrieve_function2 ()"><code class="function">gnutls_certificate_set_retrieve_function2()</code></a> because it
+is much more efficient in the processing it requires from gnutls.</p>
+<p>The callback's function prototype is:
+int (*callback)(gnutls_session_t, const gnutls_datum_t* req_ca_dn, int nreqs,
+const gnutls_pk_algorithm_t* pk_algos, int pk_algos_length, gnutls_retr2_st* st);</p>
+<p><em class="parameter"><code>req_ca_dn</code></em>
+ is only used in X.509 certificates.
+Contains a list with the CA names that the server considers trusted.
+This is a hint and typically the client should send a certificate that is signed
+by one of these CAs. These names, when available, are DER encoded. To get a more
+meaningful value use the function <a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get" title="gnutls_x509_rdn_get ()"><code class="function">gnutls_x509_rdn_get()</code></a>.</p>
+<p><em class="parameter"><code>pk_algos</code></em>
+ contains a list with server's acceptable public key algorithms.
+The certificate returned should support the server's given algorithms.</p>
+<p><em class="parameter"><code>st</code></em>
+ should contain the certificates and private keys.</p>
+<p>If the callback function is provided then gnutls will call it, in the
+handshake, after the certificate request message has been received.</p>
+<p>In server side pk_algos and req_ca_dn are NULL.</p>
+<p>The callback function should set the certificate list to be sent,
+and return 0 on success. If no certificate was selected then the
+number of certificates should be set to zero. The value (-1)
+indicates error and the handshake will be terminated. If both certificates
+are set in the credentials and a callback is available, the callback
+takes predence.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-retrieve-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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-verify-function"></a><h3>gnutls_certificate_set_verify_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_verify_function
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> cred</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_certificate_verify_function</span> *func</code></em>);</pre>
+<p>This function sets a callback to be called when peer's certificate
+has been received in order to verify it on receipt rather than
+doing after the handshake is completed.</p>
+<p>The callback's function prototype is:
+int (*callback)(gnutls_session_t);</p>
+<p>If the callback function is provided then gnutls will call it, in the
+handshake, just after the certificate message has been received.
+To verify or obtain the certificate the <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a>,
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-get" title="gnutls_certificate_type_get ()"><code class="function">gnutls_certificate_type_get()</code></a>, <a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()"><code class="function">gnutls_certificate_get_peers()</code></a> functions
+can be used.</p>
+<p>The callback function should return 0 for the handshake to continue
+or non-zero to terminate.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-verify-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>cred</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-server-set-request"></a><h3>gnutls_certificate_server_set_request ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_server_set_request (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-request-t" title="enum gnutls_certificate_request_t"><span class="type">gnutls_certificate_request_t</span></a> req</code></em>);</pre>
+<p>This function specifies if we (in case of a server) are going to
+send a certificate request message to the client. If <em class="parameter"><code>req</code></em>
+ is
+GNUTLS_CERT_REQUIRE then the server will return the <a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS" title="GNUTLS_E_NO_CERTIFICATE_FOUND"><code class="literal">GNUTLS_E_NO_CERTIFICATE_FOUND</code></a>
+error if the peer does not provide a certificate. If you do not call this
+function then the client will not be asked to send a certificate. Invoking
+the function with <em class="parameter"><code>req</code></em>
+ GNUTLS_CERT_IGNORE has the same effect.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-server-set-request.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>req</p></td>
+<td class="parameter_description"><p>is one of GNUTLS_CERT_REQUEST, GNUTLS_CERT_REQUIRE, GNUTLS_CERT_IGNORE</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-peers"></a><h3>gnutls_certificate_get_peers ()</h3>
+<pre class="programlisting">const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="returnvalue">gnutls_datum_t</span></a> *
+gnutls_certificate_get_peers (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *list_size</code></em>);</pre>
+<p>Get the peer's raw certificate (chain) as sent by the peer. These
+certificates are in raw format (DER encoded for X.509). In case of
+a X.509 then a certificate list may be present. The list
+is provided as sent by the server; the server must send as first
+certificate in the list its own certificate, following the
+issuer's certificate, then the issuer's issuer etc. However, there
+are servers which violate this principle and thus on certain
+occasions this may be an unsorted list.</p>
+<p>In resumed sessions, this function will return the peer's certificate
+list as used in the first/original session.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-peers.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>list_size</p></td>
+<td class="parameter_description"><p>is the length of the certificate list (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-peers.returns"></a><h4>Returns</h4>
+<p> a pointer to a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> containing the peer's
+certificates, or <code class="literal">NULL</code> in case of an error or if no certificate
+was used.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-ours"></a><h3>gnutls_certificate_get_ours ()</h3>
+<pre class="programlisting">const <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="returnvalue">gnutls_datum_t</span></a> *
+gnutls_certificate_get_ours (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Gets the certificate as sent to the peer in the last handshake.
+The certificate is in raw (DER) format. No certificate
+list is being returned. Only the first certificate.</p>
+<p>This function returns the certificate that was sent in the current
+handshake. In subsequent resumed sessions this function will return
+<code class="literal">NULL</code>. That differs from <a class="link" href="gnutls-gnutls.html#gnutls-certificate-get-peers" title="gnutls_certificate_get_peers ()"><code class="function">gnutls_certificate_get_peers()</code></a> which always
+returns the peer's certificate used in the original session.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-ours.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-ours.returns"></a><h4>Returns</h4>
+<p> a pointer to a <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> containing our
+certificate, or <code class="literal">NULL</code> in case of an error or if no certificate
+was used.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-peers-subkey-id"></a><h3>gnutls_certificate_get_peers_subkey_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_get_peers_subkey_id
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <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> *id</code></em>);</pre>
+<p>This function is no-op.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-peers-subkey-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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>will contain the ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-get-peers-subkey-id.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-activation-time-peers"></a><h3>gnutls_certificate_activation_time_peers ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_certificate_activation_time_peers
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_certificate_activation_time_peers</code> is deprecated and should not be used in newly-written code.</p>
+<p>gnutls_certificate_verify_peers2() now verifies activation times.</p>
+</div>
+<p>This function will return the peer's certificate activation time.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-activation-time-peers.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-activation-time-peers.returns"></a><h4>Returns</h4>
+<p> (time_t)-1 on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-expiration-time-peers"></a><h3>gnutls_certificate_expiration_time_peers ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_certificate_expiration_time_peers
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_certificate_expiration_time_peers</code> is deprecated and should not be used in newly-written code.</p>
+<p>gnutls_certificate_verify_peers2() now verifies expiration times.</p>
+</div>
+<p>This function will return the peer's certificate expiration time.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-expiration-time-peers.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-expiration-time-peers.returns"></a><h4>Returns</h4>
+<p> (time_t)-1 on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-client-get-request-status"></a><h3>gnutls_certificate_client_get_request_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_certificate_client_get_request_status
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>Get whether client certificate was requested on the last
+handshake or not.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-client-get-request-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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-client-get-request-status.returns"></a><h4>Returns</h4>
+<p> 0 if the peer (server) did not request client
+authentication or 1 otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verify-peers2"></a><h3>gnutls_certificate_verify_peers2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_verify_peers2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *status</code></em>);</pre>
+<p>This function will verify the peer's certificate and store
+the status in the <em class="parameter"><code>status</code></em>
+ variable as a bitwise OR of gnutls_certificate_status_t
+values or zero if the certificate is trusted. Note that value in <em class="parameter"><code>status</code></em>
+
+is set only when the return value of this function is success (i.e, failure
+to trust a certificate does not imply a negative return value).
+The default verification flags used by this function can be overridden
+using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()"><code class="function">gnutls_certificate_set_verify_flags()</code></a>.</p>
+<p>This function will take into account the stapled OCSP responses sent by the server,
+as well as the following X.509 certificate extensions: Name Constraints,
+Key Usage, and Basic Constraints (pathlen).</p>
+<p>Note that you must also check the peer's name in order to check if
+the verified certificate belongs to the actual peer, see <a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-hostname" title="gnutls_x509_crt_check_hostname ()"><code class="function">gnutls_x509_crt_check_hostname()</code></a>,
+or use <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers3" title="gnutls_certificate_verify_peers3 ()"><code class="function">gnutls_certificate_verify_peers3()</code></a>.</p>
+<p>To avoid denial of service attacks some
+default upper limits regarding the certificate key size and chain
+size are set. To override them use <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()"><code class="function">gnutls_certificate_set_verify_limits()</code></a>.</p>
+<p>Note that when using raw public-keys verification will not work because there is
+no corresponding certificate body belonging to the raw key that can be verified. In that
+case this function will return <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>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-verify-peers2.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>status</p></td>
+<td class="parameter_description"><p>is the output of the verification</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-verify-peers2.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) when the validation is performed, or a negative error code otherwise.
+A successful error code means that the <em class="parameter"><code>status</code></em>
+parameter must be checked to obtain the validation status.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verify-peers3"></a><h3>gnutls_certificate_verify_peers3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_verify_peers3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *status</code></em>);</pre>
+<p>This function will verify the peer's certificate and store the
+the status in the <em class="parameter"><code>status</code></em>
+ variable as a bitwise OR of gnutls_certificate_status_t
+values or zero if the certificate is trusted. Note that value in <em class="parameter"><code>status</code></em>
+
+is set only when the return value of this function is success (i.e, failure
+to trust a certificate does not imply a negative return value).
+The default verification flags used by this function can be overridden
+using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()"><code class="function">gnutls_certificate_set_verify_flags()</code></a>. See the documentation
+of <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a> for details in the verification process.</p>
+<p>This function will take into account the stapled OCSP responses sent by the server,
+as well as the following X.509 certificate extensions: Name Constraints,
+Key Usage, and Basic Constraints (pathlen).</p>
+<p>If the <em class="parameter"><code>hostname</code></em>
+ provided is non-NULL then this function will compare
+the hostname in the certificate against it. The comparison will follow
+the RFC6125 recommendations. If names do not match the
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-UNEXPECTED-OWNER:CAPS"><code class="literal">GNUTLS_CERT_UNEXPECTED_OWNER</code></a> status flag will be set.</p>
+<p>In order to verify the purpose of the end-certificate (by checking the extended
+key usage), use <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers" title="gnutls_certificate_verify_peers ()"><code class="function">gnutls_certificate_verify_peers()</code></a>.</p>
+<p>To avoid denial of service attacks some
+default upper limits regarding the certificate key size and chain
+size are set. To override them use <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()"><code class="function">gnutls_certificate_set_verify_limits()</code></a>.</p>
+<p>Note that when using raw public-keys verification will not work because there is
+no corresponding certificate body belonging to the raw key that can be verified. In that
+case this function will return <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>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-verify-peers3.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hostname</p></td>
+<td class="parameter_description"><p>is the expected name of the peer; may be <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>status</p></td>
+<td class="parameter_description"><p>is the output of the verification</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-verify-peers3.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) when the validation is performed, or a negative error code otherwise.
+A successful error code means that the <em class="parameter"><code>status</code></em>
+parameter must be checked to obtain the validation status.</p>
+</div>
+<p class="since">Since: 3.1.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verify-peers"></a><h3>gnutls_certificate_verify_peers ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_verify_peers (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-typed-vdata-st" title="gnutls_typed_vdata_st"><span class="type">gnutls_typed_vdata_st</span></a> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> elements</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *status</code></em>);</pre>
+<p>This function will verify the peer's certificate and store the
+the status in the <em class="parameter"><code>status</code></em>
+ variable as a bitwise OR of gnutls_certificate_status_t
+values or zero if the certificate is trusted. Note that value in <em class="parameter"><code>status</code></em>
+
+is set only when the return value of this function is success (i.e, failure
+to trust a certificate does not imply a negative return value).
+The default verification flags used by this function can be overridden
+using <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-flags" title="gnutls_certificate_set_verify_flags ()"><code class="function">gnutls_certificate_set_verify_flags()</code></a>. See the documentation
+of <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers2" title="gnutls_certificate_verify_peers2 ()"><code class="function">gnutls_certificate_verify_peers2()</code></a> for details in the verification process.</p>
+<p>This function will take into account the stapled OCSP responses sent by the server,
+as well as the following X.509 certificate extensions: Name Constraints,
+Key Usage, and Basic Constraints (pathlen).</p>
+<p>The acceptable <em class="parameter"><code>data</code></em>
+ types are <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-DNS-HOSTNAME:CAPS"><code class="literal">GNUTLS_DT_DNS_HOSTNAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-RFC822NAME:CAPS"><code class="literal">GNUTLS_DT_RFC822NAME</code></a> and <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-KEY-PURPOSE-OID:CAPS"><code class="literal">GNUTLS_DT_KEY_PURPOSE_OID</code></a>.
+The former two accept as data a null-terminated hostname or email address, and the latter a null-terminated
+object identifier (e.g., <a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS" title="GNUTLS_KP_TLS_WWW_SERVER"><code class="literal">GNUTLS_KP_TLS_WWW_SERVER</code></a>).</p>
+<p>If a DNS hostname is provided then this function will compare
+the hostname in the certificate against the given. If names do not match the
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-UNEXPECTED-OWNER:CAPS"><code class="literal">GNUTLS_CERT_UNEXPECTED_OWNER</code></a> status flag will be set.
+If a key purpose OID is provided and the end-certificate contains the extended key
+usage PKIX extension, it will be required to be have the provided key purpose
+or be marked for any purpose, otherwise verification status will have the
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-SIGNER-CONSTRAINTS-FAILURE:CAPS"><code class="literal">GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE</code></a> flag set.</p>
+<p>To avoid denial of service attacks some
+default upper limits regarding the certificate key size and chain
+size are set. To override them use <a class="link" href="gnutls-gnutls.html#gnutls-certificate-set-verify-limits" title="gnutls_certificate_set_verify_limits ()"><code class="function">gnutls_certificate_set_verify_limits()</code></a>.</p>
+<p>Note that when using raw public-keys verification will not work because there is
+no corresponding certificate body belonging to the raw key that can be verified. In that
+case this function will return <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>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-verify-peers.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>session</p></td>
+<td class="parameter_description"><p>is a gnutls session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>an array of typed data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>elements</p></td>
+<td class="parameter_description"><p>the number of data elements</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>status</p></td>
+<td class="parameter_description"><p>is the output of the verification</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-verify-peers.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) when the validation is performed, or a negative error code otherwise.
+A successful error code means that the <em class="parameter"><code>status</code></em>
+parameter must be checked to obtain the validation status.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verification-status-print"></a><h3>gnutls_certificate_verification_status_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_verification_status_print
+ (<em class="parameter"><code>unsigned <span class="type">int</span> status</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> type</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>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will pretty print the status of a verification
+process -- eg. the one obtained by <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers3" title="gnutls_certificate_verify_peers3 ()"><code class="function">gnutls_certificate_verify_peers3()</code></a>.</p>
+<p>The output <em class="parameter"><code>out</code></em>
+ 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-certificate-verification-status-print.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>status</p></td>
+<td class="parameter_description"><p>The status flags to be printed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The certificate type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>Newly allocated datum with (0) terminated string.</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-certificate-verification-status-print.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.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pem-base64-encode"></a><h3>gnutls_pem_base64_encode ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pem_base64_encode (<em class="parameter"><code>const <span class="type">char</span> *msg</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> *data</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will convert the given data to printable data, using
+the base64 encoding. This is the encoding used in PEM messages.</p>
+<p>The output string will be null terminated, although the output size will
+not include the terminating null.</p>
+<div class="refsect3">
+<a name="gnutls-pem-base64-encode.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>msg</p></td>
+<td class="parameter_description"><p>is a message to be put in the header (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>contain the raw data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the place where base64 data will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>holds the size of the result</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pem-base64-encode.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-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> is returned if the buffer given is
+not long enough, or 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pem-base64-decode"></a><h3>gnutls_pem_base64_decode ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pem_base64_decode (<em class="parameter"><code>const <span class="type">char</span> *header</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> *b64_data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will decode the given encoded data. If the header
+given is non <code class="literal">NULL</code> this function will search for "-----BEGIN header"
+and decode only this part. Otherwise it will decode the first PEM
+packet found.</p>
+<div class="refsect3">
+<a name="gnutls-pem-base64-decode.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>header</p></td>
+<td class="parameter_description"><p>A null terminated string with the PEM header (eg. CERTIFICATE)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>b64_data</p></td>
+<td class="parameter_description"><p>contain the encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the place where decoded data will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>holds the size of the result</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pem-base64-decode.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-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> is returned if the buffer given is
+not long enough, or 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pem-base64-encode2"></a><h3>gnutls_pem_base64_encode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pem_base64_encode2 (<em class="parameter"><code>const <span class="type">char</span> *msg</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> *data</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> *result</code></em>);</pre>
+<p>This function will convert the given data to printable data, using
+the base64 encoding. This is the encoding used in PEM messages.
+This function will allocate the required memory to hold the encoded
+data.</p>
+<p>You should use <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a> to free the returned data.</p>
+<p>Note, that prior to GnuTLS 3.4.0 this function was available
+under the name <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc" title="gnutls_pem_base64_encode_alloc"><code class="function">gnutls_pem_base64_encode_alloc()</code></a>. There is
+compatibility macro pointing to this function.</p>
+<div class="refsect3">
+<a name="gnutls-pem-base64-encode2.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>header</p></td>
+<td class="parameter_description"><p>is a message to be put in the encoded header (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>contains the raw data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>will hold the newly allocated encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pem-base64-encode2.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pem-base64-decode2"></a><h3>gnutls_pem_base64_decode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pem_base64_decode2 (<em class="parameter"><code>const <span class="type">char</span> *header</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> *b64_data</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> *result</code></em>);</pre>
+<p>This function will decode the given encoded data. The decoded data
+will be allocated, and stored into result. If the header given is
+non null this function will search for "-----BEGIN header" and
+decode only this part. Otherwise it will decode the first PEM
+packet found.</p>
+<p>You should use <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a> to free the returned data.</p>
+<p>Note, that prior to GnuTLS 3.4.0 this function was available
+under the name <a class="link" href="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc" title="gnutls_pem_base64_decode_alloc"><code class="function">gnutls_pem_base64_decode_alloc()</code></a>. There is
+compatibility macro pointing to this function.</p>
+<div class="refsect3">
+<a name="gnutls-pem-base64-decode2.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>header</p></td>
+<td class="parameter_description"><p>The PEM header (eg. CERTIFICATE)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>b64_data</p></td>
+<td class="parameter_description"><p>contains the encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the location of decoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pem-base64-decode2.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-base64-encode2"></a><h3>gnutls_base64_encode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_base64_encode2 (<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> *data</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> *result</code></em>);</pre>
+<p>This function will convert the given data to printable data, using
+the base64 encoding. This function will allocate the required
+memory to hold the encoded data.</p>
+<p>You should use <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a> to free the returned data.</p>
+<div class="refsect3">
+<a name="gnutls-base64-encode2.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>data</p></td>
+<td class="parameter_description"><p>contains the raw data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>will hold the newly allocated encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-base64-encode2.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-base64-decode2"></a><h3>gnutls_base64_decode2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_base64_decode2 (<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> *b64_data</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> *result</code></em>);</pre>
+<p>This function will decode the given base64 encoded data. The decoded data
+will be allocated, and stored into result.</p>
+<p>You should use <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a> to free the returned data.</p>
+<div class="refsect3">
+<a name="gnutls-base64-decode2.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>base64</p></td>
+<td class="parameter_description"><p>contains the encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>the location of decoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-base64-decode2.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
+an error code is returned.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-params-function"></a><h3>gnutls_certificate_set_params_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_params_function
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_certificate_set_params_function</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set a callback in order for the server to get
+the Diffie-Hellman or RSA parameters for certificate
+authentication. The callback should return <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 class="refsect3">
+<a name="gnutls-certificate-set-params-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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_certificate_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anon-set-params-function"></a><h3>gnutls_anon_set_params_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anon_set_params_function (<em class="parameter"><code><span class="type">gnutls_anon_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_anon_set_params_function</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set a callback in order for the server to get
+the Diffie-Hellman or RSA parameters for anonymous authentication.
+The callback should return <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 class="refsect3">
+<a name="gnutls-anon-set-params-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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_anon_server_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-set-params-function"></a><h3>gnutls_psk_set_params_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_psk_set_params_function (<em class="parameter"><code><span class="type">gnutls_psk_server_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_params_function</span> *func</code></em>);</pre>
+<div class="warning">
+<p><code class="literal">gnutls_psk_set_params_function</code> is deprecated and should not be used in newly-written code.</p>
+<p>This function is unnecessary and discouraged on GnuTLS 3.6.0
+or later. Since 3.6.0, DH parameters are negotiated
+following RFC7919.</p>
+</div>
+<p>This function will set a callback in order for the server to get
+the Diffie-Hellman or RSA parameters for PSK authentication. The
+callback should return <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 class="refsect3">
+<a name="gnutls-psk-set-params-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>res</p></td>
+<td class="parameter_description"><p>is a gnutls_psk_server_credentials_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-hex2bin"></a><h3>gnutls_hex2bin ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_hex2bin (<em class="parameter"><code>const <span class="type">char</span> *hex_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> hex_size</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *bin_data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *bin_size</code></em>);</pre>
+<p>Convert a buffer with hex data to binary data. This function
+unlike <a class="link" href="gnutls-gnutls.html#gnutls-hex-decode" title="gnutls_hex_decode ()"><code class="function">gnutls_hex_decode()</code></a> can parse hex data with separators
+between numbers. That is, it ignores any non-hex characters.</p>
+<div class="refsect3">
+<a name="gnutls-hex2bin.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>hex_data</p></td>
+<td class="parameter_description"><p>string with data in hex format</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hex_size</p></td>
+<td class="parameter_description"><p>size of hex data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bin_data</p></td>
+<td class="parameter_description"><p>output array with binary data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bin_size</p></td>
+<td class="parameter_description"><p>when calling should hold maximum size of <em class="parameter"><code>bin_data</code></em>
+,
+on return will hold actual length of <em class="parameter"><code>bin_data</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-hex2bin.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-store-func"></a><h3>gnutls_tdb_store_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_tdb_store_func<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">char</span> *db_name</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *host</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *service</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> expiration</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> *pubkey</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-store-commitment-func"></a><h3>gnutls_tdb_store_commitment_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_tdb_store_commitment_func<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">char</span> *db_name</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *host</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *service</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> expiration</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash_algo</code></em>,
+ <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> *hash</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-verify-func"></a><h3>gnutls_tdb_verify_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_tdb_verify_func<span class="c_punctuation">)</span> (<em class="parameter"><code>const <span class="type">char</span> *db_name</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *host</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *service</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> *pubkey</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-init"></a><h3>gnutls_tdb_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_tdb_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> *tdb</code></em>);</pre>
+<p>This function will initialize a public key trust storage structure.</p>
+<div class="refsect3">
+<a name="gnutls-tdb-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>tdb</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-tdb-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-tdb-set-store-func"></a><h3>gnutls_tdb_set_store_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_tdb_set_store_func (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> tdb</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-store-func" title="gnutls_tdb_store_func ()"><span class="type">gnutls_tdb_store_func</span></a> store</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-set-store-commitment-func"></a><h3>gnutls_tdb_set_store_commitment_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_tdb_set_store_commitment_func (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> tdb</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-store-commitment-func" title="gnutls_tdb_store_commitment_func ()"><span class="type">gnutls_tdb_store_commitment_func</span></a> cstore</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-set-verify-func"></a><h3>gnutls_tdb_set_verify_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_tdb_set_verify_func (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> tdb</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-verify-func" title="gnutls_tdb_verify_func ()"><span class="type">gnutls_tdb_verify_func</span></a> verify</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-deinit"></a><h3>gnutls_tdb_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_tdb_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> tdb</code></em>);</pre>
+<p>This function will deinitialize a public key trust storage structure.</p>
+<div class="refsect3">
+<a name="gnutls-tdb-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>tdb</p></td>
+<td class="parameter_description"><p>The structure to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-verify-stored-pubkey"></a><h3>gnutls_verify_stored_pubkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_verify_stored_pubkey (<em class="parameter"><code>const <span class="type">char</span> *db_name</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> tdb</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *host</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *service</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> cert_type</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> *cert</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will try to verify a raw public-key or a public-key provided via
+a raw (DER-encoded) certificate using a list of stored public keys.
+The <em class="parameter"><code>service</code></em>
+ field if non-NULL should be a port number.</p>
+<p>The <em class="parameter"><code>db_name</code></em>
+ variable if non-null specifies a custom backend for
+the retrieval of entries. If it is NULL then the
+default file backend will be used. In POSIX-like systems the
+file backend uses the $HOME/.gnutls/known_hosts file.</p>
+<p>Note that if the custom storage backend is provided the
+retrieval function should return <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH"><code class="literal">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</code></a>
+if the host/service pair is found but key doesn't match,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS" title="GNUTLS_E_NO_CERTIFICATE_FOUND"><code class="literal">GNUTLS_E_NO_CERTIFICATE_FOUND</code></a> if no such host/service with
+the given key is found, and 0 if it was found. The storage
+function should return 0 on success.</p>
+<p>As of GnuTLS 3.6.6 this function also verifies raw public keys.</p>
+<div class="refsect3">
+<a name="gnutls-verify-stored-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>db_name</p></td>
+<td class="parameter_description"><p>A file specifying the stored keys (use NULL for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tdb</p></td>
+<td class="parameter_description"><p>A storage structure or NULL to use the default</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>host</p></td>
+<td class="parameter_description"><p>The peer's name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>non-NULL if this key is specific to a service (e.g. http)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_type</p></td>
+<td class="parameter_description"><p>The type of the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>The raw (der) data of the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be 0.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-verify-stored-pubkey.returns"></a><h4>Returns</h4>
+<p> If no associated public key is found
+then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS" title="GNUTLS_E_NO_CERTIFICATE_FOUND"><code class="literal">GNUTLS_E_NO_CERTIFICATE_FOUND</code></a> will be returned. If a key
+is found but does not match <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS" title="GNUTLS_E_CERTIFICATE_KEY_MISMATCH"><code class="literal">GNUTLS_E_CERTIFICATE_KEY_MISMATCH</code></a>
+is returned. 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,
+or a negative error value on other errors.</p>
+</div>
+<p class="since">Since: 3.0.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-store-commitment"></a><h3>gnutls_store_commitment ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_store_commitment (<em class="parameter"><code>const <span class="type">char</span> *db_name</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> tdb</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *host</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *service</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> hash_algo</code></em>,
+ <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> *hash</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> expiration</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will store the provided hash commitment to
+the list of stored public keys. The key with the given
+hash will be considered valid until the provided expiration time.</p>
+<p>The <em class="parameter"><code>tdb</code></em>
+ variable if non-null specifies a custom backend for
+the storage of entries. If it is NULL then the
+default file backend will be used.</p>
+<p>Note that this function is not thread safe with the default backend.</p>
+<div class="refsect3">
+<a name="gnutls-store-commitment.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>db_name</p></td>
+<td class="parameter_description"><p>A file specifying the stored keys (use NULL for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tdb</p></td>
+<td class="parameter_description"><p>A storage structure or NULL to use the default</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>host</p></td>
+<td class="parameter_description"><p>The peer's name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>non-NULL if this key is specific to a service (e.g. http)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash_algo</p></td>
+<td class="parameter_description"><p>The hash algorithm type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hash</p></td>
+<td class="parameter_description"><p>The raw hash</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>expiration</p></td>
+<td class="parameter_description"><p>The expiration time (use 0 to disable expiration)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be 0 or <a class="link" href="gnutls-gnutls.html#GNUTLS-SCOMMIT-FLAG-ALLOW-BROKEN:CAPS" title="GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN"><code class="literal">GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-store-commitment.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-store-pubkey"></a><h3>gnutls_store_pubkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_store_pubkey (<em class="parameter"><code>const <span class="type">char</span> *db_name</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-tdb-t" title="gnutls_tdb_t"><span class="type">gnutls_tdb_t</span></a> tdb</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *host</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *service</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-type-t" title="enum gnutls_certificate_type_t"><span class="type">gnutls_certificate_type_t</span></a> cert_type</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> *cert</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> expiration</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will store a raw public-key or a public-key provided via
+a raw (DER-encoded) certificate to the list of stored public keys. The key
+will be considered valid until the provided expiration time.</p>
+<p>The <em class="parameter"><code>tdb</code></em>
+ variable if non-null specifies a custom backend for
+the storage of entries. If it is NULL then the
+default file backend will be used.</p>
+<p>Unless an alternative <em class="parameter"><code>tdb</code></em>
+ is provided, the storage format is a textual format
+consisting of a line for each host with fields separated by '|'. The contents of
+the fields are a format-identifier which is set to 'g0', the hostname that the
+rest of the data applies to, the numeric port or host name, the expiration
+time in seconds since the epoch (0 for no expiration), and a base64
+encoding of the raw (DER) public key information (SPKI) of the peer.</p>
+<p>As of GnuTLS 3.6.6 this function also accepts raw public keys.</p>
+<div class="refsect3">
+<a name="gnutls-store-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>db_name</p></td>
+<td class="parameter_description"><p>A file specifying the stored keys (use NULL for the default)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tdb</p></td>
+<td class="parameter_description"><p>A storage structure or NULL to use the default</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>host</p></td>
+<td class="parameter_description"><p>The peer's name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>service</p></td>
+<td class="parameter_description"><p>non-NULL if this key is specific to a service (e.g. http)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_type</p></td>
+<td class="parameter_description"><p>The type of the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>The data of the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>expiration</p></td>
+<td class="parameter_description"><p>The expiration time (use 0 to disable expiration)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be 0.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-store-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.0.13</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-load-file"></a><h3>gnutls_load_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_load_file (<em class="parameter"><code>const <span class="type">char</span> *filename</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>);</pre>
+<p>This function will load a file into a datum. The data are
+zero terminated but the terminating null is not included in length.
+The returned data are allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>Note that this function is not designed for reading sensitive materials,
+such as private keys, on practical applications. When the reading fails
+in the middle, the partially loaded content might remain on memory.</p>
+<div class="refsect3">
+<a name="gnutls-load-file.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>filename</p></td>
+<td class="parameter_description"><p>the name of the file to load</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>Where the file will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-load-file.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
+an error code is returned.</p>
+<p>Since 3.1.0</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-url-is-supported"></a><h3>gnutls_url_is_supported ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_url_is_supported (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>);</pre>
+<p>Check whether the provided <em class="parameter"><code>url</code></em>
+ is supported. Depending on the system libraries
+GnuTLS may support pkcs11, tpmkey or other URLs.</p>
+<div class="refsect3">
+<a name="gnutls-url-is-supported.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 URI to be tested</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-url-is-supported.returns"></a><h4>Returns</h4>
+<p> return non-zero if the given URL is supported, and zero if
+it is not known.</p>
+</div>
+<p class="since">Since: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pin-callback-t"></a><h3>gnutls_pin_callback_t ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_pin_callback_t<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *userdata</code></em>,
+ <em class="parameter"><code><span class="type">int</span> attempt</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *token_url</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *token_label</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *pin</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> pin_max</code></em>);</pre>
+<p>Callback function type for PKCS<span class="type">11</span> or TPM PIN entry. It is set by
+functions like <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>
+<p>The callback should provides the PIN code to unlock the token with
+label <em class="parameter"><code>token_label</code></em>
+, specified by the URL <em class="parameter"><code>token_url</code></em>
+.</p>
+<p>The PIN code, as a NUL-terminated ASCII string, should be copied
+into the <em class="parameter"><code>pin</code></em>
+ buffer (of maximum size <em class="parameter"><code>pin_max</code></em>
+), and return 0 to
+indicate success. Alternatively, the callback may return a
+negative gnutls error code to indicate failure and cancel PIN entry
+(in which case, the contents of the <em class="parameter"><code>pin</code></em>
+ parameter are ignored).</p>
+<p>When a PIN is required, the callback will be invoked repeatedly
+(and indefinitely) until either the returned PIN code is correct,
+the callback returns failure, or the token refuses login (e.g. when
+the token is locked due to too many incorrect PINs!). For the
+first such invocation, the <em class="parameter"><code>attempt</code></em>
+ counter will have value zero;
+it will increase by one for each subsequent attempt.</p>
+<div class="refsect3">
+<a name="gnutls-pin-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-pin-function" title="gnutls_pkcs11_set_pin_function ()"><code class="function">gnutls_pkcs11_set_pin_function()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>attempt</p></td>
+<td class="parameter_description"><p>pin-attempt counter, initially 0.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>token_url</p></td>
+<td class="parameter_description"><p>URL of token.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>token_label</p></td>
+<td class="parameter_description"><p>label of token.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>a <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> flag.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pin</p></td>
+<td class="parameter_description"><p>buffer to hold PIN, of size <em class="parameter"><code>pin_max</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pin_max</p></td>
+<td class="parameter_description"><p>size of <em class="parameter"><code>pin</code></em>
+buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pin-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-certificate-set-pin-function"></a><h3>gnutls_certificate_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_pin_function (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> Param1</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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-buffer-append-data"></a><h3>gnutls_buffer_append_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_buffer_append_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-buffer-t" title="gnutls_buffer_t"><span class="type">gnutls_buffer_t</span></a> Param1</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>);</pre>
+<p>Appends the provided <em class="parameter"><code>data</code></em>
+ to the destination buffer.</p>
+<div class="refsect3">
+<a name="gnutls-buffer-append-data.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>dest</p></td>
+<td class="parameter_description"><p>the buffer to append to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the data</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 <em class="parameter"><code>data</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-buffer-append-data.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-utf8-password-normalize"></a><h3>gnutls_utf8_password_normalize ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_utf8_password_normalize (<em class="parameter"><code>const <span class="type">uint8_t</span> *password</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> password_len</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>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will convert the provided UTF-8 password according
+to the normalization rules in RFC7613.</p>
+<p>If the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-UTF8-IGNORE-ERRS:CAPS" title="GNUTLS_UTF8_IGNORE_ERRS"><code class="literal">GNUTLS_UTF8_IGNORE_ERRS</code></a> is specified, any UTF-8 encoding
+errors will be ignored, and in that case the output will be a copy of the input.</p>
+<div class="refsect3">
+<a name="gnutls-utf8-password-normalize.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>password</p></td>
+<td class="parameter_description"><p>contain the UTF-8 formatted password</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>plen</p></td>
+<td class="parameter_description"><p>the length of the provided password</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>the result in an null-terminated allocated string</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-utf8-password-normalize.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-STRING:CAPS" title="GNUTLS_E_INVALID_UTF8_STRING"><code class="literal">GNUTLS_E_INVALID_UTF8_STRING</code></a> on invalid UTF-8 data, or 0 on success.</p>
+</div>
+<p class="since">Since: 3.5.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-set-data"></a><h3>gnutls_ext_set_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_ext_set_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> type</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-priv-data-t" title="gnutls_ext_priv_data_t"><span class="type">gnutls_ext_priv_data_t</span></a> Param3</code></em>);</pre>
+<p>This function allows an extension handler to store data in the current session
+and retrieve them later on. The set data will be deallocated using
+the gnutls_ext_deinit_data_func.</p>
+<div class="refsect3">
+<a name="gnutls-ext-set-data.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>session</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> opaque pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tls_id</p></td>
+<td class="parameter_description"><p>the numeric id of the extension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the private data to set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-get-data"></a><h3>gnutls_ext_get_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_ext_get_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> type</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-priv-data-t" title="gnutls_ext_priv_data_t"><span class="type">gnutls_ext_priv_data_t</span></a> *Param3</code></em>);</pre>
+<p>This function retrieves any data previously stored with <a class="link" href="gnutls-gnutls.html#gnutls-ext-set-data" title="gnutls_ext_set_data ()"><code class="function">gnutls_ext_set_data()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-ext-get-data.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>session</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> opaque pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tls_id</p></td>
+<td class="parameter_description"><p>the numeric id of the extension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a pointer to the private data to retrieve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ext-get-data.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-get-current-msg"></a><h3>gnutls_ext_get_current_msg ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_ext_get_current_msg (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>);</pre>
+<p>This function allows an extension handler to obtain the message
+this extension is being called from. The returned value is a single
+entry of the <a class="link" href="gnutls-gnutls.html#gnutls-ext-flags-t" title="enum gnutls_ext_flags_t"><code class="literal">gnutls_ext_flags_t</code></a> enumeration. That is, if an
+extension was registered with the <a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-FLAG-HRR:CAPS"><code class="literal">GNUTLS_EXT_FLAG_HRR</code></a> and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-FLAG-EE:CAPS"><code class="literal">GNUTLS_EXT_FLAG_EE</code></a> flags, the value when called during parsing of the
+encrypted extensions message will be <a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-FLAG-EE:CAPS"><code class="literal">GNUTLS_EXT_FLAG_EE</code></a>.</p>
+<p>If not called under an extension handler, its value is undefined.</p>
+<div class="refsect3">
+<a name="gnutls-ext-get-current-msg.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>session</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> opaque pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-recv-func"></a><h3>gnutls_ext_recv_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_ext_recv_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> len</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-send-func"></a><h3>gnutls_ext_send_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_ext_send_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-buffer-t" title="gnutls_buffer_t"><span class="type">gnutls_buffer_t</span></a> extdata</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-deinit-data-func"></a><h3>gnutls_ext_deinit_data_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+<span class="c_punctuation">(</span>*gnutls_ext_deinit_data_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-priv-data-t" title="gnutls_ext_priv_data_t"><span class="type">gnutls_ext_priv_data_t</span></a> data</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-pack-func"></a><h3>gnutls_ext_pack_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_ext_pack_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-priv-data-t" title="gnutls_ext_priv_data_t"><span class="type">gnutls_ext_priv_data_t</span></a> data</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-buffer-t" title="gnutls_buffer_t"><span class="type">gnutls_buffer_t</span></a> packed_data</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-unpack-func"></a><h3>gnutls_ext_unpack_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_ext_unpack_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-buffer-t" title="gnutls_buffer_t"><span class="type">gnutls_buffer_t</span></a> packed_data</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-priv-data-t" title="gnutls_ext_priv_data_t"><span class="type">gnutls_ext_priv_data_t</span></a> *data</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-raw-process-func"></a><h3>gnutls_ext_raw_process_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_ext_raw_process_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> tls_id</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> data_size</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-raw-parse"></a><h3>gnutls_ext_raw_parse ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_ext_raw_parse (<em class="parameter"><code><span class="type">void</span> *ctx</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-raw-process-func" title="gnutls_ext_raw_process_func ()"><span class="type">gnutls_ext_raw_process_func</span></a> cb</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> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function iterates through the TLS extensions as passed in
+<em class="parameter"><code>data</code></em>
+, passing the individual extension data to callback. The
+<em class="parameter"><code>data</code></em>
+ must conform to Extension extensions&lt;0..2^16-1&gt; format.</p>
+<p>If flags is <code class="literal">GNUTLS_EXT_RAW_TLS_FLAG_CLIENT_HELLO</code> then this function
+will parse the extension data from the position, as if the packet in
+<em class="parameter"><code>data</code></em>
+ is a client hello (without record or handshake headers) -
+as provided by <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-hook-function" title="gnutls_handshake_set_hook_function ()"><code class="function">gnutls_handshake_set_hook_function()</code></a>.</p>
+<p>The return value of the callback will be propagated.</p>
+<div class="refsect3">
+<a name="gnutls-ext-raw-parse.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>ctx</p></td>
+<td class="parameter_description"><p>a pointer to pass to callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cb</p></td>
+<td class="parameter_description"><p>callback function to process each extension found</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>TLS extension data</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 or <a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-TLS-CLIENT-HELLO:CAPS" title="GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO"><code class="literal">GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-DTLS-CLIENT-HELLO:CAPS" title="GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO"><code class="literal">GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ext-raw-parse.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> on success, or an error code. On unknown
+flags it returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS" title="GNUTLS_E_INVALID_REQUEST"><code class="literal">GNUTLS_E_INVALID_REQUEST</code></a>.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-register"></a><h3>gnutls_ext_register ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_ext_register (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+ <em class="parameter"><code><span class="type">int</span> type</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-parse-type-t" title="enum gnutls_ext_parse_type_t"><span class="type">gnutls_ext_parse_type_t</span></a> parse_point</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-recv-func" title="gnutls_ext_recv_func ()"><span class="type">gnutls_ext_recv_func</span></a> recv_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-send-func" title="gnutls_ext_send_func ()"><span class="type">gnutls_ext_send_func</span></a> send_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-deinit-data-func" title="gnutls_ext_deinit_data_func ()"><span class="type">gnutls_ext_deinit_data_func</span></a> deinit_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-pack-func" title="gnutls_ext_pack_func ()"><span class="type">gnutls_ext_pack_func</span></a> pack_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-unpack-func" title="gnutls_ext_unpack_func ()"><span class="type">gnutls_ext_unpack_func</span></a> unpack_func</code></em>);</pre>
+<p>This function will register a new extension type. The extension will remain
+registered until <a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()"><code class="function">gnutls_global_deinit()</code></a> is called. If the extension type
+is already registered then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_ALREADY_REGISTERED"><code class="literal">GNUTLS_E_ALREADY_REGISTERED</code></a> will be returned.</p>
+<p>Each registered extension can store temporary data into the gnutls_session_t
+structure using <a class="link" href="gnutls-gnutls.html#gnutls-ext-set-data" title="gnutls_ext_set_data ()"><code class="function">gnutls_ext_set_data()</code></a>, and they can be retrieved using
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-get-data" title="gnutls_ext_get_data ()"><code class="function">gnutls_ext_get_data()</code></a>.</p>
+<p>Any extensions registered with this function are valid for the client
+and TLS1.2 server hello (or encrypted extensions for TLS1.3).</p>
+<p>This function is not thread safe.</p>
+<div class="refsect3">
+<a name="gnutls-ext-register.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 name of the extension to register</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the numeric TLS id of the extension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>parse_point</p></td>
+<td class="parameter_description"><p>the parse type of the extension (see gnutls_ext_parse_type_t)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_func</p></td>
+<td class="parameter_description"><p>a function to receive the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_func</p></td>
+<td class="parameter_description"><p>a function to send the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit_func</p></td>
+<td class="parameter_description"><p>a function deinitialize any private data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pack_func</p></td>
+<td class="parameter_description"><p>a function which serializes the extension's private data (used on session packing for resumption)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>unpack_func</p></td>
+<td class="parameter_description"><p>a function which will deserialize the extension's private data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ext-register.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-ext-register"></a><h3>gnutls_session_ext_register ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_ext_register (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> Param1</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+ <em class="parameter"><code><span class="type">int</span> type</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-parse-type-t" title="enum gnutls_ext_parse_type_t"><span class="type">gnutls_ext_parse_type_t</span></a> parse_point</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-recv-func" title="gnutls_ext_recv_func ()"><span class="type">gnutls_ext_recv_func</span></a> recv_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-send-func" title="gnutls_ext_send_func ()"><span class="type">gnutls_ext_send_func</span></a> send_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-deinit-data-func" title="gnutls_ext_deinit_data_func ()"><span class="type">gnutls_ext_deinit_data_func</span></a> deinit_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-pack-func" title="gnutls_ext_pack_func ()"><span class="type">gnutls_ext_pack_func</span></a> pack_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-unpack-func" title="gnutls_ext_unpack_func ()"><span class="type">gnutls_ext_unpack_func</span></a> unpack_func</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will register a new extension type. The extension will be
+only usable within the registered session. If the extension type
+is already registered then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_ALREADY_REGISTERED"><code class="literal">GNUTLS_E_ALREADY_REGISTERED</code></a> will be returned,
+unless the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-EXT-FLAG-OVERRIDE-INTERNAL:CAPS"><code class="literal">GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL</code></a> is specified. The latter
+flag when specified can be used to override certain extensions introduced
+after 3.6.0. It is expected to be used by applications which handle
+custom extensions that are not currently supported in GnuTLS, but direct
+support for them may be added in the future.</p>
+<p>Each registered extension can store temporary data into the gnutls_session_t
+structure using <a class="link" href="gnutls-gnutls.html#gnutls-ext-set-data" title="gnutls_ext_set_data ()"><code class="function">gnutls_ext_set_data()</code></a>, and they can be retrieved using
+<a class="link" href="gnutls-gnutls.html#gnutls-ext-get-data" title="gnutls_ext_get_data ()"><code class="function">gnutls_ext_get_data()</code></a>.</p>
+<p>The validity of the extension registered can be given by the appropriate flags
+of <a class="link" href="gnutls-gnutls.html#gnutls-ext-flags-t" title="enum gnutls_ext_flags_t"><code class="literal">gnutls_ext_flags_t</code></a>. If no validity is given, then the registered extension
+will be valid for client and TLS1.2 server hello (or encrypted extensions for TLS1.3).</p>
+<div class="refsect3">
+<a name="gnutls-session-ext-register.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>session</p></td>
+<td class="parameter_description"><p>the session for which this extension will be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>the name of the extension to register</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the numeric id of the extension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>parse_point</p></td>
+<td class="parameter_description"><p>the parse type of the extension (see gnutls_ext_parse_type_t)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_func</p></td>
+<td class="parameter_description"><p>a function to receive the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_func</p></td>
+<td class="parameter_description"><p>a function to send the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>deinit_func</p></td>
+<td class="parameter_description"><p>a function deinitialize any private data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pack_func</p></td>
+<td class="parameter_description"><p>a function which serializes the extension's private data (used on session packing for resumption)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>unpack_func</p></td>
+<td class="parameter_description"><p>a function which will deserialize the extension's private data</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 or flags from <a class="link" href="gnutls-gnutls.html#gnutls-ext-flags-t" title="enum gnutls_ext_flags_t"><code class="literal">gnutls_ext_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-session-ext-register.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.5.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-get-name"></a><h3>gnutls_ext_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_ext_get_name (<em class="parameter"><code>unsigned <span class="type">int</span> ext</code></em>);</pre>
+<p>Convert a TLS extension numeric ID to a printable string.</p>
+<div class="refsect3">
+<a name="gnutls-ext-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>ext</p></td>
+<td class="parameter_description"><p>is a TLS extension numeric ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ext-get-name.returns"></a><h4>Returns</h4>
+<p> a pointer to a string that contains the name of the
+specified cipher, or <code class="literal">NULL</code>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-get-name2"></a><h3>gnutls_ext_get_name2 ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_ext_get_name2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tls_id</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-ext-parse-type-t" title="enum gnutls_ext_parse_type_t"><span class="type">gnutls_ext_parse_type_t</span></a> parse_point</code></em>);</pre>
+<p>Convert a TLS extension numeric ID to a printable string.</p>
+<div class="refsect3">
+<a name="gnutls-ext-get-name2.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>session</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> opaque pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tls_id</p></td>
+<td class="parameter_description"><p>is a TLS extension numeric ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>parse_point</p></td>
+<td class="parameter_description"><p>the parse type of the extension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-ext-get-name2.returns"></a><h4>Returns</h4>
+<p> a pointer to a string that contains the name of the
+specified cipher, or <code class="literal">NULL</code>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-supp-recv-func"></a><h3>gnutls_supp_recv_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_supp_recv_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> data_size</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-supp-send-func"></a><h3>gnutls_supp_send_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_supp_send_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-buffer-t" title="gnutls_buffer_t"><span class="type">gnutls_buffer_t</span></a> buf</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-supplemental-register"></a><h3>gnutls_supplemental_register ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_supplemental_register (<em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t"><span class="type">gnutls_supplemental_data_format_type_t</span></a> type</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-supp-recv-func" title="gnutls_supp_recv_func ()"><span class="type">gnutls_supp_recv_func</span></a> supp_recv_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-supp-send-func" title="gnutls_supp_send_func ()"><span class="type">gnutls_supp_send_func</span></a> supp_send_func</code></em>);</pre>
+<p>This function will register a new supplemental data type (rfc4680).
+The registered data will remain until <a class="link" href="gnutls-gnutls.html#gnutls-global-deinit" title="gnutls_global_deinit ()"><code class="function">gnutls_global_deinit()</code></a>
+is called. The provided <em class="parameter"><code>type</code></em>
+ must be an unassigned type in
+<a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t"><code class="literal">gnutls_supplemental_data_format_type_t</code></a>. If the type is already
+registered or handled by GnuTLS internally <a class="link" href="gnutls-gnutls.html#GNUTLS-E-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_ALREADY_REGISTERED"><code class="literal">GNUTLS_E_ALREADY_REGISTERED</code></a>
+will be returned.</p>
+<p>This function is not thread safe. As supplemental data are not defined under
+TLS 1.3, this function will disable TLS 1.3 support globally.</p>
+<div class="refsect3">
+<a name="gnutls-supplemental-register.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 name of the supplemental data to register</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type of the supplemental data format</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_func</p></td>
+<td class="parameter_description"><p>the function to receive the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_func</p></td>
+<td class="parameter_description"><p>the function to send the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-supplemental-register.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-supplemental-register"></a><h3>gnutls_session_supplemental_register ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_session_supplemental_register (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t"><span class="type">gnutls_supplemental_data_format_type_t</span></a> type</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-supp-recv-func" title="gnutls_supp_recv_func ()"><span class="type">gnutls_supp_recv_func</span></a> supp_recv_func</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-supp-send-func" title="gnutls_supp_send_func ()"><span class="type">gnutls_supp_send_func</span></a> supp_send_func</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will register a new supplemental data type (rfc4680).
+The registered supplemental functions will be used for that specific
+session. The provided <em class="parameter"><code>type</code></em>
+ must be an unassigned type in
+<a class="link" href="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t" title="enum gnutls_supplemental_data_format_type_t"><code class="literal">gnutls_supplemental_data_format_type_t</code></a>.</p>
+<p>If the type is already registered or handled by GnuTLS internally
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ALREADY-REGISTERED:CAPS" title="GNUTLS_E_ALREADY_REGISTERED"><code class="literal">GNUTLS_E_ALREADY_REGISTERED</code></a> will be returned.</p>
+<p>As supplemental data are not defined under TLS 1.3, this function will
+disable TLS 1.3 support for the given session.</p>
+<div class="refsect3">
+<a name="gnutls-session-supplemental-register.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>session</p></td>
+<td class="parameter_description"><p>the session for which this will be registered</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>the name of the supplemental data to register</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type of the supplemental data format</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>recv_func</p></td>
+<td class="parameter_description"><p>the function to receive the data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>send_func</p></td>
+<td class="parameter_description"><p>the function to send the data</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-session-supplemental-register.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.5.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-supplemental-recv"></a><h3>gnutls_supplemental_recv ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_supplemental_recv (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> do_recv_supplemental</code></em>);</pre>
+<p>This function is to be called by an extension handler to
+instruct gnutls to attempt to receive supplemental data
+during the handshake process.</p>
+<div class="refsect3">
+<a name="gnutls-supplemental-recv.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>do_recv_supplemental</p></td>
+<td class="parameter_description"><p>non-zero in order to expect supplemental data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-supplemental-send"></a><h3>gnutls_supplemental_send ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_supplemental_send (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> do_send_supplemental</code></em>);</pre>
+<p>This function is to be called by an extension handler to
+instruct gnutls to send supplemental data during the handshake process.</p>
+<div class="refsect3">
+<a name="gnutls-supplemental-send.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>do_send_supplemental</p></td>
+<td class="parameter_description"><p>non-zero in order to send supplemental data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anti-replay-init"></a><h3>gnutls_anti_replay_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_anti_replay_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> *anti_replay</code></em>);</pre>
+<p>This function will allocate and initialize the <em class="parameter"><code>anti_replay</code></em>
+ context
+to be usable for detect replay attacks. The context can then be
+attached to a <em class="parameter"><code>gnutls_session_t</code></em>
+ with
+<a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-enable" title="gnutls_anti_replay_enable ()"><code class="function">gnutls_anti_replay_enable()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-anti-replay-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>anti_replay</p></td>
+<td class="parameter_description"><p>is a pointer to <a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-anti-replay-init.returns"></a><h4>Returns</h4>
+<p> Zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anti-replay-deinit"></a><h3>gnutls_anti_replay_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anti_replay_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> anti_replay</code></em>);</pre>
+<p>This function will deinitialize all resources occupied by the given
+anti-replay context.</p>
+<div class="refsect3">
+<a name="gnutls-anti-replay-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>anti_replay</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_anti_replay</span> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anti-replay-set-window"></a><h3>gnutls_anti_replay_set_window ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anti_replay_set_window (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> anti_replay</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> window</code></em>);</pre>
+<p>Sets the time window used for ClientHello recording. In order to
+protect against replay attacks, the server records ClientHello
+messages within this time period from the last update, and
+considers it a replay when a ClientHello outside of the period; if
+a ClientHello arrives within this period, the server checks the
+database and detects duplicates.</p>
+<p>For the details of the algorithm, see RFC 8446, section 8.2.</p>
+<div class="refsect3">
+<a name="gnutls-anti-replay-set-window.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>anti_replay</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>window</p></td>
+<td class="parameter_description"><p>is the time window recording ClientHello, in milliseconds</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anti-replay-enable"></a><h3>gnutls_anti_replay_enable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anti_replay_enable (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> anti_replay</code></em>);</pre>
+<p>Request that the server should use anti-replay mechanism.</p>
+<div class="refsect3">
+<a name="gnutls-anti-replay-enable.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>anti_replay</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-db-add-func"></a><h3>gnutls_db_add_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_db_add_func<span class="c_punctuation">)</span> (<em class="parameter"><code><span class="type">void</span> *Param1</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> exp_time</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> *key</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> *data</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anti-replay-set-add-function"></a><h3>gnutls_anti_replay_set_add_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anti_replay_set_add_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> Param1</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-db-add-func" title="gnutls_db_add_func ()"><span class="type">gnutls_db_add_func</span></a> add_func</code></em>);</pre>
+<p>Sets the function that will be used to store an entry if it is not
+already present in the resumed sessions database. This function returns 0
+if the entry is successfully stored, and a negative error code
+otherwise. In particular, if the entry is found in the database,
+it returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-DB-ENTRY-EXISTS:CAPS" title="GNUTLS_E_DB_ENTRY_EXISTS"><code class="literal">GNUTLS_E_DB_ENTRY_EXISTS</code></a>.</p>
+<p>The arguments to the <em class="parameter"><code>add_func</code></em>
+ are:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p><code class="literal">ptr</code>: the pointer set with <a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-set-ptr" title="gnutls_anti_replay_set_ptr ()"><code class="function">gnutls_anti_replay_set_ptr()</code></a></p></li>
+<li class="listitem"><p><code class="literal">exp_time</code>: the expiration time of the entry</p></li>
+<li class="listitem"><p><code class="literal">key</code>: a pointer to the key</p></li>
+<li class="listitem"><p><code class="literal">data</code>: a pointer to data to store</p></li>
+</ul></div>
+<p>The data set by this function can be examined using
+<a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry-expire-time" title="gnutls_db_check_entry_expire_time ()"><code class="function">gnutls_db_check_entry_expire_time()</code></a> and <a class="link" href="gnutls-gnutls.html#gnutls-db-check-entry-time" title="gnutls_db_check_entry_time ()"><code class="function">gnutls_db_check_entry_time()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-anti-replay-set-add-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>anti_replay</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>add_func</p></td>
+<td class="parameter_description"><p>is the function.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anti-replay-set-ptr"></a><h3>gnutls_anti_replay_set_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_anti_replay_set_ptr (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_t</span></a> Param1</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
+<p>Sets the pointer that will be provided to db add function
+as the first argument.</p>
+<div class="refsect3">
+<a name="gnutls-anti-replay-set-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>anti_replay</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-anti-replay-t" title="gnutls_anti_replay_t"><span class="type">gnutls_anti_replay_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>is the pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-read-func"></a><h3>gnutls_handshake_read_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_handshake_read_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t"><span class="type">gnutls_record_encryption_level_t</span></a> level</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="type">gnutls_handshake_description_t</span></a> htype</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>);</pre>
+<p>Function prototype for handshake intercepting hooks. It is set using
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-read-function" title="gnutls_handshake_set_read_function ()"><code class="function">gnutls_handshake_set_read_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-read-func.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>session</p></td>
+<td class="parameter_description"><p>the current session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>htype</p></td>
+<td class="parameter_description"><p>the type of the handshake message (<a class="link" href="gnutls-gnutls.html#gnutls-handshake-description-t" title="enum gnutls_handshake_description_t"><span class="type">gnutls_handshake_description_t</span></a>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>level</p></td>
+<td class="parameter_description"><p><a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t"><span class="type">gnutls_record_encryption_level_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the (const) data that was being sent</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>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-handshake-read-func.returns"></a><h4>Returns</h4>
+<p> Non zero on error.</p>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-set-read-function"></a><h3>gnutls_handshake_set_read_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_handshake_set_read_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-handshake-read-func" title="gnutls_handshake_read_func ()"><span class="type">gnutls_handshake_read_func</span></a> func</code></em>);</pre>
+<p>This function will set a callback to be called when a handshake
+message is being sent.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-set-read-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>session</p></td>
+<td class="parameter_description"><p>is <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-write"></a><h3>gnutls_handshake_write ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_handshake_write (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t"><span class="type">gnutls_record_encryption_level_t</span></a> level</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>);</pre>
+<p>This function processes a handshake message in the encryption level
+specified with <em class="parameter"><code>level</code></em>
+. Prior to calling this function, a handshake
+read callback must be set on <em class="parameter"><code>session</code></em>
+. Use
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-read-function" title="gnutls_handshake_set_read_function ()"><code class="function">gnutls_handshake_set_read_function()</code></a> to do this.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-write.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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>level</p></td>
+<td class="parameter_description"><p>the current encryption level for reading a handshake message</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>the (const) handshake data to be processed</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>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-secret-func"></a><h3>gnutls_handshake_secret_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_handshake_secret_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t"><span class="type">gnutls_record_encryption_level_t</span></a> level</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *secret_read</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *secret_write</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> secret_size</code></em>);</pre>
+<p>Function prototype for secret hooks. It is set using
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-secret-function" title="gnutls_handshake_set_secret_function ()"><code class="function">gnutls_handshake_set_secret_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-secret-func.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>session</p></td>
+<td class="parameter_description"><p>the current session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>level</p></td>
+<td class="parameter_description"><p>the encryption level</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secret_read</p></td>
+<td class="parameter_description"><p>the secret used for reading, can be <code class="literal">NULL</code> if not set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secret_write</p></td>
+<td class="parameter_description"><p>the secret used for writing, can be <code class="literal">NULL</code> if not set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>secret_size</p></td>
+<td class="parameter_description"><p>the size of the secrets</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-handshake-secret-func.returns"></a><h4>Returns</h4>
+<p> Non zero on error.</p>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-set-secret-function"></a><h3>gnutls_handshake_set_secret_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_handshake_set_secret_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-handshake-secret-func" title="gnutls_handshake_secret_func ()"><span class="type">gnutls_handshake_secret_func</span></a> func</code></em>);</pre>
+<p>This function will set a callback to be called when a new traffic
+secret is installed.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-set-secret-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>the secret func</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-read-func"></a><h3>gnutls_alert_read_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_alert_read_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t"><span class="type">gnutls_record_encryption_level_t</span></a> level</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-level-t" title="enum gnutls_alert_level_t"><span class="type">gnutls_alert_level_t</span></a> alert_level</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-description-t" title="enum gnutls_alert_description_t"><span class="type">gnutls_alert_description_t</span></a> alert_desc</code></em>);</pre>
+<p>Function prototype for alert intercepting hooks. It is set using
+<a class="link" href="gnutls-gnutls.html#gnutls-alert-set-read-function" title="gnutls_alert_set_read_function ()"><code class="function">gnutls_alert_set_read_function()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-alert-read-func.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>session</p></td>
+<td class="parameter_description"><p>the current session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>level</p></td>
+<td class="parameter_description"><p><a class="link" href="gnutls-gnutls.html#gnutls-record-encryption-level-t" title="enum gnutls_record_encryption_level_t"><span class="type">gnutls_record_encryption_level_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alert_level</p></td>
+<td class="parameter_description"><p>the level of the alert</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alert_desc</p></td>
+<td class="parameter_description"><p>the alert description</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-alert-read-func.returns"></a><h4>Returns</h4>
+<p> Non zero on error.</p>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-set-read-function"></a><h3>gnutls_alert_set_read_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_alert_set_read_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-alert-read-func" title="gnutls_alert_read_func ()"><span class="type">gnutls_alert_read_func</span></a> func</code></em>);</pre>
+<p>This function will set a callback to be called when an alert
+message is being sent.</p>
+<div class="refsect3">
+<a name="gnutls-alert-set-read-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>session</p></td>
+<td class="parameter_description"><p>is <a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the function to be called</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-mode-enabled"></a><h3>gnutls_fips140_mode_enabled ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_fips140_mode_enabled (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Checks whether this library is in FIPS140 mode. The returned
+value corresponds to the library mode as set with
+<a class="link" href="gnutls-gnutls.html#gnutls-fips140-set-mode" title="gnutls_fips140_set_mode ()"><code class="function">gnutls_fips140_set_mode()</code></a>.</p>
+<p>If <a class="link" href="gnutls-gnutls.html#gnutls-fips140-set-mode" title="gnutls_fips140_set_mode ()"><code class="function">gnutls_fips140_set_mode()</code></a> was called with <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-MODE-THREAD:CAPS" title="GNUTLS_FIPS140_SET_MODE_THREAD"><code class="literal">GNUTLS_FIPS140_SET_MODE_THREAD</code></a>
+then this function will return the current thread's FIPS140 mode, otherwise
+the global value is returned.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-mode-enabled.returns"></a><h4>Returns</h4>
+<p> return non-zero if true or zero if false.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-set-mode"></a><h3>gnutls_fips140_set_mode ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_fips140_set_mode (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-fips-mode-t" title="enum gnutls_fips_mode_t"><span class="type">gnutls_fips_mode_t</span></a> mode</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>That function is not thread-safe when changing the mode with no flags
+(globally), and should be called prior to creating any threads. Its
+behavior with no flags after threads are created is undefined.</p>
+<p>When the flag <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-MODE-THREAD:CAPS" title="GNUTLS_FIPS140_SET_MODE_THREAD"><code class="literal">GNUTLS_FIPS140_SET_MODE_THREAD</code></a> is specified
+then this call will change the FIPS140-2 mode for this particular
+thread and not for the whole process. That way an application
+can utilize this function to set and reset mode for specific
+operations.</p>
+<p>This function never fails but will be a no-op if used when
+the library is not in FIPS140-2 mode. When asked to switch to unknown
+values for <em class="parameter"><code>mode</code></em>
+ or to <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SELFTESTS:CAPS"><code class="literal">GNUTLS_FIPS140_SELFTESTS</code></a> mode, the library
+switches to <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-STRICT:CAPS"><code class="literal">GNUTLS_FIPS140_STRICT</code></a> mode.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-set-mode.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>mode</p></td>
+<td class="parameter_description"><p>the FIPS140-2 mode to switch to</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 or <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-SET-MODE-THREAD:CAPS" title="GNUTLS_FIPS140_SET_MODE_THREAD"><code class="literal">GNUTLS_FIPS140_SET_MODE_THREAD</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FIPS140-SET-LAX-MODE:CAPS"></a><h3>GNUTLS_FIPS140_SET_LAX_MODE</h3>
+<pre class="programlisting">#define GNUTLS_FIPS140_SET_LAX_MODE()</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FIPS140-SET-STRICT-MODE:CAPS"></a><h3>GNUTLS_FIPS140_SET_STRICT_MODE</h3>
+<pre class="programlisting">#define GNUTLS_FIPS140_SET_STRICT_MODE()</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-context-init"></a><h3>gnutls_fips140_context_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_fips140_context_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t"><span class="type">gnutls_fips140_context_t</span></a> *context</code></em>);</pre>
+<p>Create and initialize the FIPS context object.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-context-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>context</p></td>
+<td class="parameter_description"><p>location to store <em class="parameter"><code>gnutls_fips140_context_t</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-fips140-context-init.returns"></a><h4>Returns</h4>
+<p> 0 upon success, a negative error code otherwise</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-context-deinit"></a><h3>gnutls_fips140_context_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_fips140_context_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t"><span class="type">gnutls_fips140_context_t</span></a> context</code></em>);</pre>
+<p>Uninitialize and release the FIPS context <em class="parameter"><code>context</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-context-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>context</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t"><span class="type">gnutls_fips140_context_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-get-operation-state"></a><h3>gnutls_fips140_get_operation_state ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-fips140-operation-state-t" title="enum gnutls_fips140_operation_state_t"><span class="returnvalue">gnutls_fips140_operation_state_t</span></a>
+gnutls_fips140_get_operation_state (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t"><span class="type">gnutls_fips140_context_t</span></a> context</code></em>);</pre>
+<p>Get the previous operation state of <em class="parameter"><code>context</code></em>
+ in terms of FIPS.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-get-operation-state.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>context</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t"><span class="type">gnutls_fips140_context_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-fips140-get-operation-state.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gnutls-gnutls.html#gnutls-fips140-operation-state-t" title="enum gnutls_fips140_operation_state_t"><span class="type">gnutls_fips140_operation_state_t</span></a></p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-push-context"></a><h3>gnutls_fips140_push_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_fips140_push_context (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t"><span class="type">gnutls_fips140_context_t</span></a> context</code></em>);</pre>
+<p>Associate the FIPS <em class="parameter"><code>context</code></em>
+ to the current thread, diverting the
+currently active context. If a cryptographic operation is ongoing
+in the current thread, e.g., <code class="function">gnutls_aead_cipher_init()</code> is called
+but <a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-deinit" title="gnutls_aead_cipher_deinit ()"><code class="function">gnutls_aead_cipher_deinit()</code></a> is not yet called, it returns an
+error <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>.</p>
+<p>The operation state of <em class="parameter"><code>context</code></em>
+ will be reset to
+<a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-INITIAL:CAPS"><code class="literal">GNUTLS_FIPS140_OP_INITIAL</code></a>.</p>
+<p>This function is no-op if FIPS140 is not compiled in nor enabled
+at run-time.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-push-context.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>context</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gnutls-gnutls.html#gnutls-fips140-context-t" title="gnutls_fips140_context_t"><span class="type">gnutls_fips140_context_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-fips140-push-context.returns"></a><h4>Returns</h4>
+<p> 0 upon success, a negative error code otherwise</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-pop-context"></a><h3>gnutls_fips140_pop_context ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_fips140_pop_context (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Dissociate the FIPS context currently
+active on the current thread, reverting to the previously active
+context. If a cryptographic operation is ongoing in the current
+thread, e.g., <code class="function">gnutls_aead_cipher_init()</code> is called but
+<a class="link" href="gnutls-crypto.html#gnutls-aead-cipher-deinit" title="gnutls_aead_cipher_deinit ()"><code class="function">gnutls_aead_cipher_deinit()</code></a> is not yet called, it returns an error
+<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>.</p>
+<p>This function is no-op if FIPS140 is not compiled in nor enabled
+at run-time.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-pop-context.returns"></a><h4>Returns</h4>
+<p> 0 upon success, a negative error code otherwise</p>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-run-self-tests"></a><h3>gnutls_fips140_run_self_tests ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_fips140_run_self_tests (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Manually perform the second round of the FIPS140 self-tests,
+including:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>Known answer tests (KAT) for the selected set of symmetric
+cipher, MAC, public key, KDF, and DRBG</p></li>
+<li class="listitem"><p>Library integrity checks</p></li>
+</ul></div>
+<p>Upon failure with FIPS140 mode enabled, it makes the library
+unusable. This function is not thread-safe.</p>
+<div class="refsect3">
+<a name="gnutls-fips140-run-self-tests.returns"></a><h4>Returns</h4>
+<p> 0 upon success, a negative error code otherwise</p>
+</div>
+<p class="since">Since: 3.7.7</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gnutls-gnutls.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GNUTLS-VERSION:CAPS"></a><h3>GNUTLS_VERSION</h3>
+<pre class="programlisting">#define GNUTLS_VERSION "3.7.9"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-VERSION-MAJOR:CAPS"></a><h3>GNUTLS_VERSION_MAJOR</h3>
+<pre class="programlisting">#define GNUTLS_VERSION_MAJOR 3
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-VERSION-MINOR:CAPS"></a><h3>GNUTLS_VERSION_MINOR</h3>
+<pre class="programlisting">#define GNUTLS_VERSION_MINOR 7
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-VERSION-PATCH:CAPS"></a><h3>GNUTLS_VERSION_PATCH</h3>
+<pre class="programlisting">#define GNUTLS_VERSION_PATCH 9
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-VERSION-NUMBER:CAPS"></a><h3>GNUTLS_VERSION_NUMBER</h3>
+<pre class="programlisting">#define GNUTLS_VERSION_NUMBER 0x030709
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS"></a><h3>GNUTLS_CIPHER_RIJNDAEL_128_CBC</h3>
+<pre class="programlisting">#define GNUTLS_CIPHER_RIJNDAEL_128_CBC GNUTLS_CIPHER_AES_128_CBC
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS"></a><h3>GNUTLS_CIPHER_RIJNDAEL_256_CBC</h3>
+<pre class="programlisting">#define GNUTLS_CIPHER_RIJNDAEL_256_CBC GNUTLS_CIPHER_AES_256_CBC
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS"></a><h3>GNUTLS_CIPHER_RIJNDAEL_CBC</h3>
+<pre class="programlisting">#define GNUTLS_CIPHER_RIJNDAEL_CBC GNUTLS_CIPHER_AES_128_CBC
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CIPHER-ARCFOUR:CAPS"></a><h3>GNUTLS_CIPHER_ARCFOUR</h3>
+<pre class="programlisting">#define GNUTLS_CIPHER_ARCFOUR GNUTLS_CIPHER_ARCFOUR_128
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-SKIP-GLOBAL-INIT:CAPS"></a><h3>GNUTLS_SKIP_GLOBAL_INIT</h3>
+<pre class="programlisting">#define GNUTLS_SKIP_GLOBAL_INIT</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cipher-algorithm-t"></a><h3>enum gnutls_cipher_algorithm_t</h3>
+<p>Enumeration of different symmetric encryption algorithms.</p>
+<div class="refsect3">
+<a name="gnutls-cipher-algorithm-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-CIPHER-UNKNOWN:CAPS"></a>GNUTLS_CIPHER_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Value to identify an unknown/unsupported algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-NULL:CAPS"></a>GNUTLS_CIPHER_NULL</p></td>
+<td class="enum_member_description">
+<p>The NULL (identity) encryption algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-ARCFOUR-128:CAPS"></a>GNUTLS_CIPHER_ARCFOUR_128</p></td>
+<td class="enum_member_description">
+<p>ARCFOUR stream cipher with 128-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-3DES-CBC:CAPS"></a>GNUTLS_CIPHER_3DES_CBC</p></td>
+<td class="enum_member_description">
+<p>3DES in CBC mode.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-128-CBC:CAPS"></a>GNUTLS_CIPHER_AES_128_CBC</p></td>
+<td class="enum_member_description">
+<p>AES in CBC mode with 128-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-256-CBC:CAPS"></a>GNUTLS_CIPHER_AES_256_CBC</p></td>
+<td class="enum_member_description">
+<p>AES in CBC mode with 256-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-ARCFOUR-40:CAPS"></a>GNUTLS_CIPHER_ARCFOUR_40</p></td>
+<td class="enum_member_description">
+<p>ARCFOUR stream cipher with 40-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CAMELLIA-128-CBC:CAPS"></a>GNUTLS_CIPHER_CAMELLIA_128_CBC</p></td>
+<td class="enum_member_description">
+<p>Camellia in CBC mode with 128-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CAMELLIA-256-CBC:CAPS"></a>GNUTLS_CIPHER_CAMELLIA_256_CBC</p></td>
+<td class="enum_member_description">
+<p>Camellia in CBC mode with 256-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-192-CBC:CAPS"></a>GNUTLS_CIPHER_AES_192_CBC</p></td>
+<td class="enum_member_description">
+<p>AES in CBC mode with 192-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-128-GCM:CAPS"></a>GNUTLS_CIPHER_AES_128_GCM</p></td>
+<td class="enum_member_description">
+<p>AES in GCM mode with 128-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-256-GCM:CAPS"></a>GNUTLS_CIPHER_AES_256_GCM</p></td>
+<td class="enum_member_description">
+<p>AES in GCM mode with 256-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CAMELLIA-192-CBC:CAPS"></a>GNUTLS_CIPHER_CAMELLIA_192_CBC</p></td>
+<td class="enum_member_description">
+<p>Camellia in CBC mode with 192-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-SALSA20-256:CAPS"></a>GNUTLS_CIPHER_SALSA20_256</p></td>
+<td class="enum_member_description">
+<p>Salsa20 with 256-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-ESTREAM-SALSA20-256:CAPS"></a>GNUTLS_CIPHER_ESTREAM_SALSA20_256</p></td>
+<td class="enum_member_description">
+<p>Estream's Salsa20 variant with 256-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CAMELLIA-128-GCM:CAPS"></a>GNUTLS_CIPHER_CAMELLIA_128_GCM</p></td>
+<td class="enum_member_description">
+<p>CAMELLIA in GCM mode with 128-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CAMELLIA-256-GCM:CAPS"></a>GNUTLS_CIPHER_CAMELLIA_256_GCM</p></td>
+<td class="enum_member_description">
+<p>CAMELLIA in GCM mode with 256-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-RC2-40-CBC:CAPS"></a>GNUTLS_CIPHER_RC2_40_CBC</p></td>
+<td class="enum_member_description">
+<p>RC2 in CBC mode with 40-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-DES-CBC:CAPS"></a>GNUTLS_CIPHER_DES_CBC</p></td>
+<td class="enum_member_description">
+<p>DES in CBC mode (56-bit keys).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-128-CCM:CAPS"></a>GNUTLS_CIPHER_AES_128_CCM</p></td>
+<td class="enum_member_description">
+<p>AES in CCM mode with 128-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-256-CCM:CAPS"></a>GNUTLS_CIPHER_AES_256_CCM</p></td>
+<td class="enum_member_description">
+<p>AES in CCM mode with 256-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-128-CCM-8:CAPS"></a>GNUTLS_CIPHER_AES_128_CCM_8</p></td>
+<td class="enum_member_description">
+<p>AES in CCM mode with 64-bit tag and 128-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-256-CCM-8:CAPS"></a>GNUTLS_CIPHER_AES_256_CCM_8</p></td>
+<td class="enum_member_description">
+<p>AES in CCM mode with 64-bit tag and 256-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CHACHA20-POLY1305:CAPS"></a>GNUTLS_CIPHER_CHACHA20_POLY1305</p></td>
+<td class="enum_member_description">
+<p>The Chacha20 cipher with the Poly1305 authenticator (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-GOST28147-TC26Z-CFB:CAPS"></a>GNUTLS_CIPHER_GOST28147_TC26Z_CFB</p></td>
+<td class="enum_member_description">
+<p>GOST 28147-89 (Magma) cipher in CFB mode with TC26 Z S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-GOST28147-CPA-CFB:CAPS"></a>GNUTLS_CIPHER_GOST28147_CPA_CFB</p></td>
+<td class="enum_member_description">
+<p>GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro A S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-GOST28147-CPB-CFB:CAPS"></a>GNUTLS_CIPHER_GOST28147_CPB_CFB</p></td>
+<td class="enum_member_description">
+<p>GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro B S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-GOST28147-CPC-CFB:CAPS"></a>GNUTLS_CIPHER_GOST28147_CPC_CFB</p></td>
+<td class="enum_member_description">
+<p>GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro C S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-GOST28147-CPD-CFB:CAPS"></a>GNUTLS_CIPHER_GOST28147_CPD_CFB</p></td>
+<td class="enum_member_description">
+<p>GOST 28147-89 (Magma) cipher in CFB mode with CryptoPro D S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-128-CFB8:CAPS"></a>GNUTLS_CIPHER_AES_128_CFB8</p></td>
+<td class="enum_member_description">
+<p>AES in CFB8 mode with 128-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-192-CFB8:CAPS"></a>GNUTLS_CIPHER_AES_192_CFB8</p></td>
+<td class="enum_member_description">
+<p>AES in CFB8 mode with 192-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-256-CFB8:CAPS"></a>GNUTLS_CIPHER_AES_256_CFB8</p></td>
+<td class="enum_member_description">
+<p>AES in CFB8 mode with 256-bit keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-128-XTS:CAPS"></a>GNUTLS_CIPHER_AES_128_XTS</p></td>
+<td class="enum_member_description">
+<p>AES in XTS mode with 128-bit key + 128bit tweak key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-256-XTS:CAPS"></a>GNUTLS_CIPHER_AES_256_XTS</p></td>
+<td class="enum_member_description">
+<p>AES in XTS mode with 256-bit key + 256bit tweak key.
+Note that the XTS ciphers are message oriented.
+The whole message needs to be provided with a single call, because
+cipher-stealing requires to know where the message actually terminates
+in order to be able to compute where the stealing occurs.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-GOST28147-TC26Z-CNT:CAPS"></a>GNUTLS_CIPHER_GOST28147_TC26Z_CNT</p></td>
+<td class="enum_member_description">
+<p>GOST 28147-89 (Magma) cipher in CNT mode with TC26 Z S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CHACHA20-64:CAPS"></a>GNUTLS_CIPHER_CHACHA20_64</p></td>
+<td class="enum_member_description">
+<p>Chacha20 cipher with 64-bit nonces and 64-bit block counters.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CHACHA20-32:CAPS"></a>GNUTLS_CIPHER_CHACHA20_32</p></td>
+<td class="enum_member_description">
+<p>Chacha20 cipher with 96-bit nonces and 32-bit block counters.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-128-SIV:CAPS"></a>GNUTLS_CIPHER_AES_128_SIV</p></td>
+<td class="enum_member_description">
+<p>AES in SIV mode with 128-bit key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-256-SIV:CAPS"></a>GNUTLS_CIPHER_AES_256_SIV</p></td>
+<td class="enum_member_description">
+<p>AES in SIV mode with 256-bit key.
+Note that the SIV ciphers can only be used with
+the AEAD interface, and the IV plays a role as
+the authentication tag while it is prepended to
+the cipher text.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES-192-GCM:CAPS"></a>GNUTLS_CIPHER_AES_192_GCM</p></td>
+<td class="enum_member_description">
+<p>AES in GCM mode with 192-bit keys (AEAD).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-MAGMA-CTR-ACPKM:CAPS"></a>GNUTLS_CIPHER_MAGMA_CTR_ACPKM</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.12-2015 (Magma) cipher in CTR-ACPKM mode.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-KUZNYECHIK-CTR-ACPKM:CAPS"></a>GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.12-2015 (Kuznyechik) cipher in CTR-ACPKM mode.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-IDEA-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_IDEA_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>IDEA in CFB mode (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-3DES-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_3DES_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>3DES in CFB mode (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-CAST5-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_CAST5_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>CAST5 in CFB mode (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-BLOWFISH-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_BLOWFISH_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>Blowfish in CFB mode (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-SAFER-SK128-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_SAFER_SK128_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>Safer-SK in CFB mode with 128-bit keys (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES128-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_AES128_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>AES in CFB mode with 128-bit keys (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES192-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_AES192_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>AES in CFB mode with 192-bit keys (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-AES256-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_AES256_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>AES in CFB mode with 256-bit keys (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CIPHER-TWOFISH-PGP-CFB:CAPS"></a>GNUTLS_CIPHER_TWOFISH_PGP_CFB</p></td>
+<td class="enum_member_description">
+<p>Twofish in CFB mode (placeholder - unsupported).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-kx-algorithm-t"></a><h3>enum gnutls_kx_algorithm_t</h3>
+<p>Enumeration of different key exchange algorithms.</p>
+<div class="refsect3">
+<a name="gnutls-kx-algorithm-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-KX-UNKNOWN:CAPS"></a>GNUTLS_KX_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-RSA:CAPS"></a>GNUTLS_KX_RSA</p></td>
+<td class="enum_member_description">
+<p>RSA key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-DHE-DSS:CAPS"></a>GNUTLS_KX_DHE_DSS</p></td>
+<td class="enum_member_description">
+<p>DHE-DSS key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-DHE-RSA:CAPS"></a>GNUTLS_KX_DHE_RSA</p></td>
+<td class="enum_member_description">
+<p>DHE-RSA key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-ANON-DH:CAPS"></a>GNUTLS_KX_ANON_DH</p></td>
+<td class="enum_member_description">
+<p>Anon-DH key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-SRP:CAPS"></a>GNUTLS_KX_SRP</p></td>
+<td class="enum_member_description">
+<p>SRP key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-RSA-EXPORT:CAPS"></a>GNUTLS_KX_RSA_EXPORT</p></td>
+<td class="enum_member_description">
+<p>RSA-EXPORT key-exchange algorithm (defunc).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-SRP-RSA:CAPS"></a>GNUTLS_KX_SRP_RSA</p></td>
+<td class="enum_member_description">
+<p>SRP-RSA key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-SRP-DSS:CAPS"></a>GNUTLS_KX_SRP_DSS</p></td>
+<td class="enum_member_description">
+<p>SRP-DSS key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-PSK:CAPS"></a>GNUTLS_KX_PSK</p></td>
+<td class="enum_member_description">
+<p>PSK key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-DHE-PSK:CAPS"></a>GNUTLS_KX_DHE_PSK</p></td>
+<td class="enum_member_description">
+<p>DHE-PSK key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-ANON-ECDH:CAPS"></a>GNUTLS_KX_ANON_ECDH</p></td>
+<td class="enum_member_description">
+<p>Anon-ECDH key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-ECDHE-RSA:CAPS"></a>GNUTLS_KX_ECDHE_RSA</p></td>
+<td class="enum_member_description">
+<p>ECDHE-RSA key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-ECDHE-ECDSA:CAPS"></a>GNUTLS_KX_ECDHE_ECDSA</p></td>
+<td class="enum_member_description">
+<p>ECDHE-ECDSA key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-ECDHE-PSK:CAPS"></a>GNUTLS_KX_ECDHE_PSK</p></td>
+<td class="enum_member_description">
+<p>ECDHE-PSK key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-RSA-PSK:CAPS"></a>GNUTLS_KX_RSA_PSK</p></td>
+<td class="enum_member_description">
+<p>RSA-PSK key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KX-VKO-GOST-12:CAPS"></a>GNUTLS_KX_VKO_GOST_12</p></td>
+<td class="enum_member_description">
+<p>VKO GOST R 34.10-2012 key-exchange algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-params-type-t"></a><h3>enum gnutls_params_type_t</h3>
+<p>Enumeration of different TLS session parameter types.</p>
+<div class="refsect3">
+<a name="gnutls-params-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-PARAMS-RSA-EXPORT:CAPS"></a>GNUTLS_PARAMS_RSA_EXPORT</p></td>
+<td class="enum_member_description">
+<p>Session RSA-EXPORT parameters (defunc).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PARAMS-DH:CAPS"></a>GNUTLS_PARAMS_DH</p></td>
+<td class="enum_member_description">
+<p>Session Diffie-Hellman parameters.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PARAMS-ECDH:CAPS"></a>GNUTLS_PARAMS_ECDH</p></td>
+<td class="enum_member_description">
+<p>Session Elliptic-Curve Diffie-Hellman parameters.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-credentials-type-t"></a><h3>enum gnutls_credentials_type_t</h3>
+<p>Enumeration of different credential types.</p>
+<div class="refsect3">
+<a name="gnutls-credentials-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-CRD-CERTIFICATE:CAPS"></a>GNUTLS_CRD_CERTIFICATE</p></td>
+<td class="enum_member_description">
+<p>Certificate credential.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRD-ANON:CAPS"></a>GNUTLS_CRD_ANON</p></td>
+<td class="enum_member_description">
+<p>Anonymous credential.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRD-SRP:CAPS"></a>GNUTLS_CRD_SRP</p></td>
+<td class="enum_member_description">
+<p>SRP credential.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRD-PSK:CAPS"></a>GNUTLS_CRD_PSK</p></td>
+<td class="enum_member_description">
+<p>PSK credential.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRD-IA:CAPS"></a>GNUTLS_CRD_IA</p></td>
+<td class="enum_member_description">
+<p>IA credential.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-MAC-SHA:CAPS"></a><h3>GNUTLS_MAC_SHA</h3>
+<pre class="programlisting">#define GNUTLS_MAC_SHA GNUTLS_MAC_SHA1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-DIG-SHA:CAPS"></a><h3>GNUTLS_DIG_SHA</h3>
+<pre class="programlisting">#define GNUTLS_DIG_SHA GNUTLS_DIG_SHA1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-mac-algorithm-t"></a><h3>enum gnutls_mac_algorithm_t</h3>
+<p>Enumeration of different Message Authentication Code (MAC)
+algorithms.</p>
+<div class="refsect3">
+<a name="gnutls-mac-algorithm-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-MAC-UNKNOWN:CAPS"></a>GNUTLS_MAC_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown MAC algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-NULL:CAPS"></a>GNUTLS_MAC_NULL</p></td>
+<td class="enum_member_description">
+<p>NULL MAC algorithm (empty output).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-MD5:CAPS"></a>GNUTLS_MAC_MD5</p></td>
+<td class="enum_member_description">
+<p>HMAC-MD5 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA1:CAPS"></a>GNUTLS_MAC_SHA1</p></td>
+<td class="enum_member_description">
+<p>HMAC-SHA-1 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-RMD160:CAPS"></a>GNUTLS_MAC_RMD160</p></td>
+<td class="enum_member_description">
+<p>HMAC-RMD160 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-MD2:CAPS"></a>GNUTLS_MAC_MD2</p></td>
+<td class="enum_member_description">
+<p>HMAC-MD2 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA256:CAPS"></a>GNUTLS_MAC_SHA256</p></td>
+<td class="enum_member_description">
+<p>HMAC-SHA-256 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA384:CAPS"></a>GNUTLS_MAC_SHA384</p></td>
+<td class="enum_member_description">
+<p>HMAC-SHA-384 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA512:CAPS"></a>GNUTLS_MAC_SHA512</p></td>
+<td class="enum_member_description">
+<p>HMAC-SHA-512 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA224:CAPS"></a>GNUTLS_MAC_SHA224</p></td>
+<td class="enum_member_description">
+<p>HMAC-SHA-224 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA3-224:CAPS"></a>GNUTLS_MAC_SHA3_224</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA3-256:CAPS"></a>GNUTLS_MAC_SHA3_256</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA3-384:CAPS"></a>GNUTLS_MAC_SHA3_384</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHA3-512:CAPS"></a>GNUTLS_MAC_SHA3_512</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-MD5-SHA1:CAPS"></a>GNUTLS_MAC_MD5_SHA1</p></td>
+<td class="enum_member_description">
+<p>Combined MD5+SHA1 MAC placeholder.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-GOSTR-94:CAPS"></a>GNUTLS_MAC_GOSTR_94</p></td>
+<td class="enum_member_description">
+<p>HMAC GOST R 34.11-94 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-STREEBOG-256:CAPS"></a>GNUTLS_MAC_STREEBOG_256</p></td>
+<td class="enum_member_description">
+<p>HMAC GOST R 34.11-2001 (Streebog) algorithm, 256 bit.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-STREEBOG-512:CAPS"></a>GNUTLS_MAC_STREEBOG_512</p></td>
+<td class="enum_member_description">
+<p>HMAC GOST R 34.11-2001 (Streebog) algorithm, 512 bit.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-AEAD:CAPS"></a>GNUTLS_MAC_AEAD</p></td>
+<td class="enum_member_description">
+<p>MAC implicit through AEAD cipher.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-UMAC-96:CAPS"></a>GNUTLS_MAC_UMAC_96</p></td>
+<td class="enum_member_description">
+<p>The UMAC-96 MAC algorithm (requires nonce).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-UMAC-128:CAPS"></a>GNUTLS_MAC_UMAC_128</p></td>
+<td class="enum_member_description">
+<p>The UMAC-128 MAC algorithm (requires nonce).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-AES-CMAC-128:CAPS"></a>GNUTLS_MAC_AES_CMAC_128</p></td>
+<td class="enum_member_description">
+<p>The AES-CMAC-128 MAC algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-AES-CMAC-256:CAPS"></a>GNUTLS_MAC_AES_CMAC_256</p></td>
+<td class="enum_member_description">
+<p>The AES-CMAC-256 MAC algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-AES-GMAC-128:CAPS"></a>GNUTLS_MAC_AES_GMAC_128</p></td>
+<td class="enum_member_description">
+<p>The AES-GMAC-128 MAC algorithm (requires nonce).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-AES-GMAC-192:CAPS"></a>GNUTLS_MAC_AES_GMAC_192</p></td>
+<td class="enum_member_description">
+<p>The AES-GMAC-192 MAC algorithm (requires nonce).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-AES-GMAC-256:CAPS"></a>GNUTLS_MAC_AES_GMAC_256</p></td>
+<td class="enum_member_description">
+<p>The AES-GMAC-256 MAC algorithm (requires nonce).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-GOST28147-TC26Z-IMIT:CAPS"></a>GNUTLS_MAC_GOST28147_TC26Z_IMIT</p></td>
+<td class="enum_member_description">
+<p>The GOST 28147-89 working in IMIT mode with TC26 Z S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHAKE-128:CAPS"></a>GNUTLS_MAC_SHAKE_128</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-SHAKE-256:CAPS"></a>GNUTLS_MAC_SHAKE_256</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-MAGMA-OMAC:CAPS"></a>GNUTLS_MAC_MAGMA_OMAC</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.12-2015 (Magma) in OMAC (CMAC) mode.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-MAC-KUZNYECHIK-OMAC:CAPS"></a>GNUTLS_MAC_KUZNYECHIK_OMAC</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.12-2015 (Kuznyechik) in OMAC (CMAC) mode.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-digest-algorithm-t"></a><h3>enum gnutls_digest_algorithm_t</h3>
+<p>Enumeration of different digest (hash) algorithms.</p>
+<div class="refsect3">
+<a name="gnutls-digest-algorithm-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-DIG-UNKNOWN:CAPS"></a>GNUTLS_DIG_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown hash algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-NULL:CAPS"></a>GNUTLS_DIG_NULL</p></td>
+<td class="enum_member_description">
+<p>NULL hash algorithm (empty output).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-MD5:CAPS"></a>GNUTLS_DIG_MD5</p></td>
+<td class="enum_member_description">
+<p>MD5 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA1:CAPS"></a>GNUTLS_DIG_SHA1</p></td>
+<td class="enum_member_description">
+<p>SHA-1 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-RMD160:CAPS"></a>GNUTLS_DIG_RMD160</p></td>
+<td class="enum_member_description">
+<p>RMD160 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-MD2:CAPS"></a>GNUTLS_DIG_MD2</p></td>
+<td class="enum_member_description">
+<p>MD2 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA256:CAPS"></a>GNUTLS_DIG_SHA256</p></td>
+<td class="enum_member_description">
+<p>SHA-256 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA384:CAPS"></a>GNUTLS_DIG_SHA384</p></td>
+<td class="enum_member_description">
+<p>SHA-384 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA512:CAPS"></a>GNUTLS_DIG_SHA512</p></td>
+<td class="enum_member_description">
+<p>SHA-512 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA224:CAPS"></a>GNUTLS_DIG_SHA224</p></td>
+<td class="enum_member_description">
+<p>SHA-224 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA3-224:CAPS"></a>GNUTLS_DIG_SHA3_224</p></td>
+<td class="enum_member_description">
+<p>SHA3-224 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA3-256:CAPS"></a>GNUTLS_DIG_SHA3_256</p></td>
+<td class="enum_member_description">
+<p>SHA3-256 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA3-384:CAPS"></a>GNUTLS_DIG_SHA3_384</p></td>
+<td class="enum_member_description">
+<p>SHA3-384 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHA3-512:CAPS"></a>GNUTLS_DIG_SHA3_512</p></td>
+<td class="enum_member_description">
+<p>SHA3-512 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-MD5-SHA1:CAPS"></a>GNUTLS_DIG_MD5_SHA1</p></td>
+<td class="enum_member_description">
+<p>Combined MD5+SHA1 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-GOSTR-94:CAPS"></a>GNUTLS_DIG_GOSTR_94</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.11-94 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-STREEBOG-256:CAPS"></a>GNUTLS_DIG_STREEBOG_256</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.11-2001 (Streebog) algorithm, 256 bit.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-STREEBOG-512:CAPS"></a>GNUTLS_DIG_STREEBOG_512</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.11-2001 (Streebog) algorithm, 512 bit.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHAKE-128:CAPS"></a>GNUTLS_DIG_SHAKE_128</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DIG-SHAKE-256:CAPS"></a>GNUTLS_DIG_SHAKE_256</p></td>
+<td class="enum_member_description">
+<p>Reserved; unimplemented.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-MAX-ALGORITHM-NUM:CAPS"></a><h3>GNUTLS_MAX_ALGORITHM_NUM</h3>
+<pre class="programlisting">#define GNUTLS_MAX_ALGORITHM_NUM 128
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-MAX-SESSION-ID-SIZE:CAPS"></a><h3>GNUTLS_MAX_SESSION_ID_SIZE</h3>
+<pre class="programlisting">#define GNUTLS_MAX_SESSION_ID_SIZE 32
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-compression-method-t"></a><h3>enum gnutls_compression_method_t</h3>
+<p>Enumeration of different TLS compression methods.</p>
+<div class="refsect3">
+<a name="gnutls-compression-method-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-COMP-UNKNOWN:CAPS"></a>GNUTLS_COMP_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown compression method.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-COMP-NULL:CAPS"></a>GNUTLS_COMP_NULL</p></td>
+<td class="enum_member_description">
+<p>The NULL compression method (no compression).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-COMP-DEFLATE:CAPS"></a>GNUTLS_COMP_DEFLATE</p></td>
+<td class="enum_member_description">
+<p>The DEFLATE compression method from zlib.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-COMP-ZLIB:CAPS"></a>GNUTLS_COMP_ZLIB</p></td>
+<td class="enum_member_description">
+<p>Same as <a class="link" href="gnutls-gnutls.html#GNUTLS-COMP-DEFLATE:CAPS"><code class="literal">GNUTLS_COMP_DEFLATE</code></a>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-COMP-BROTLI:CAPS"></a>GNUTLS_COMP_BROTLI</p></td>
+<td class="enum_member_description">
+<p>Brotli compression method.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-COMP-ZSTD:CAPS"></a>GNUTLS_COMP_ZSTD</p></td>
+<td class="enum_member_description">
+<p>Zstandard compression method.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-init-flags-t"></a><h3>enum gnutls_init_flags_t</h3>
+<p><em class="parameter"><code>GNUTLS_SERVER</code></em>
+: Connection end is a server.
+<em class="parameter"><code>GNUTLS_CLIENT</code></em>
+: Connection end is a client.
+<em class="parameter"><code>GNUTLS_DATAGRAM</code></em>
+: Connection is datagram oriented (DTLS). Since 3.0.0.
+<em class="parameter"><code>GNUTLS_NONBLOCK</code></em>
+: Connection should not block. Since 3.0.0.
+<em class="parameter"><code>GNUTLS_NO_SIGNAL</code></em>
+: In systems where SIGPIPE is delivered on send, it will be disabled. That flag has effect in systems which support the MSG_NOSIGNAL sockets flag (since 3.4.2).
+<em class="parameter"><code>GNUTLS_NO_EXTENSIONS</code></em>
+: Do not enable any TLS extensions by default (since 3.1.2). As TLS 1.2 and later require extensions this option is considered obsolete and should not be used.
+<em class="parameter"><code>GNUTLS_NO_REPLAY_PROTECTION</code></em>
+: Disable any replay protection in DTLS. This must only be used if replay protection is achieved using other means. Since 3.2.2.
+<em class="parameter"><code>GNUTLS_ALLOW_ID_CHANGE</code></em>
+: Allow the peer to replace its certificate, or change its ID during a rehandshake. This change is often used in attacks and thus prohibited by default. Since 3.5.0.
+<em class="parameter"><code>GNUTLS_ENABLE_FALSE_START</code></em>
+: Enable the TLS false start on client side if the negotiated ciphersuites allow it. This will enable sending data prior to the handshake being complete, and may introduce a risk of crypto failure when combined with certain key exchanged; for that GnuTLS may not enable that option in ciphersuites that are known to be not safe for false start. Since 3.5.0.
+<em class="parameter"><code>GNUTLS_ENABLE_EARLY_START</code></em>
+: Under TLS1.3 allow the server to return earlier than the full handshake
+ finish; similarly to false start the handshake will be completed once data are received by the
+ client, while the server is able to transmit sooner. This is not enabled by default as it could
+ break certain existing server assumptions and use-cases. Since 3.6.4.
+<em class="parameter"><code>GNUTLS_ENABLE_EARLY_DATA</code></em>
+: Under TLS1.3 allow the server to receive early data sent as part of the initial ClientHello (0-RTT).
+ This can also be used to explicitly indicate that the client will send early data.
+ This is not enabled by default as early data has weaker security properties than other data. Since 3.6.5.
+<em class="parameter"><code>GNUTLS_FORCE_CLIENT_CERT</code></em>
+: When in client side and only a single cert is specified, send that certificate irrespective of the issuers expected by the server. Since 3.5.0.
+<em class="parameter"><code>GNUTLS_NO_TICKETS</code></em>
+: Flag to indicate that the session should not use resumption with session tickets.
+<em class="parameter"><code>GNUTLS_NO_TICKETS_TLS12</code></em>
+: Flag to indicate that the session should not use resumption with session tickets. This flag only has effect if TLS 1.2 is used.
+<em class="parameter"><code>GNUTLS_KEY_SHARE_TOP3</code></em>
+: Generate key shares for the top-3 different groups which are enabled.
+ That is, as each group is associated with a key type (EC, finite field, x25519), generate
+ three keys using <a class="link" href="gnutls-gnutls.html#GNUTLS-PK-DH:CAPS"><code class="literal">GNUTLS_PK_DH</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-PK-EC:CAPS" title="GNUTLS_PK_EC"><code class="literal">GNUTLS_PK_EC</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-PK-ECDH-X25519:CAPS"><code class="literal">GNUTLS_PK_ECDH_X25519</code></a> if all of them are enabled.
+<em class="parameter"><code>GNUTLS_KEY_SHARE_TOP2</code></em>
+: Generate key shares for the top-2 different groups which are enabled.
+ For example (ECDH + x25519). This is the default.
+<em class="parameter"><code>GNUTLS_KEY_SHARE_TOP</code></em>
+: Generate key share for the first group which is enabled.
+ For example x25519. This option is the most performant for client (less CPU spent
+ generating keys), but if the server doesn't support the advertized option it may
+ result to more roundtrips needed to discover the server's choice.
+<em class="parameter"><code>GNUTLS_NO_AUTO_REKEY</code></em>
+: Disable auto-rekeying under TLS1.3. If this option is not specified
+ gnutls will force a rekey after 2^24 records have been sent.
+<em class="parameter"><code>GNUTLS_POST_HANDSHAKE_AUTH</code></em>
+: Enable post handshake authentication for server and client. When set and
+ a server requests authentication after handshake <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REAUTH-REQUEST:CAPS" title="GNUTLS_E_REAUTH_REQUEST"><code class="literal">GNUTLS_E_REAUTH_REQUEST</code></a> will be returned
+ by <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a>. A client should then call <a class="link" href="gnutls-gnutls.html#gnutls-reauth" title="gnutls_reauth ()"><code class="function">gnutls_reauth()</code></a> to re-authenticate.
+<em class="parameter"><code>GNUTLS_SAFE_PADDING_CHECK</code></em>
+: Flag to indicate that the TLS 1.3 padding check will be done in a
+ safe way which doesn't leak the pad size based on GnuTLS processing time. This is of use to
+ applications which hide the length of transferred data via the TLS1.3 padding mechanism and
+ are already taking steps to hide the data processing time. This comes at a performance
+ penalty.
+<em class="parameter"><code>GNUTLS_AUTO_REAUTH</code></em>
+: Enable transparent re-authentication in client side when the server
+ requests to. That is, reauthentication is handled within <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a>, and
+ the <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS" title="GNUTLS_E_REHANDSHAKE"><code class="literal">GNUTLS_E_REHANDSHAKE</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REAUTH-REQUEST:CAPS" title="GNUTLS_E_REAUTH_REQUEST"><code class="literal">GNUTLS_E_REAUTH_REQUEST</code></a> are not returned. This must be
+ enabled with <a class="link" href="gnutls-gnutls.html#GNUTLS-POST-HANDSHAKE-AUTH:CAPS"><code class="literal">GNUTLS_POST_HANDSHAKE_AUTH</code></a> for TLS1.3. Enabling this flag requires to restore
+ interrupted calls to <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a> based on the output of <a class="link" href="gnutls-gnutls.html#gnutls-record-get-direction" title="gnutls_record_get_direction ()"><code class="function">gnutls_record_get_direction()</code></a>,
+ since <a class="link" href="gnutls-gnutls.html#gnutls-record-recv" title="gnutls_record_recv ()"><code class="function">gnutls_record_recv()</code></a> could be interrupted when sending when this flag is enabled.
+ Note this flag may not be used if you are using the same session for sending and receiving
+ in different threads.
+<em class="parameter"><code>GNUTLS_ENABLE_RAWPK</code></em>
+: Allows raw public-keys to be negotiated during the handshake. Since 3.6.6.
+<em class="parameter"><code>GNUTLS_NO_AUTO_SEND_TICKET</code></em>
+: Under TLS1.3 disable auto-sending of
+ session tickets during the handshake.
+<em class="parameter"><code>GNUTLS_NO_END_OF_EARLY_DATA</code></em>
+: Under TLS1.3 suppress sending EndOfEarlyData message. Since 3.7.2.</p>
+<p>Enumeration of different flags for <a class="link" href="gnutls-gnutls.html#gnutls-init" title="gnutls_init ()"><code class="function">gnutls_init()</code></a> function. All the flags
+can be combined except <em class="parameter"><code>GNUTLS_SERVER</code></em>
+ and <em class="parameter"><code>GNUTLS_CLIENT</code></em>
+ which are mutually
+exclusive.</p>
+<p>The key share options relate to the TLS 1.3 key share extension
+which is a speculative key generation expecting that the server
+would support the generated key.</p>
+<div class="refsect3">
+<a name="gnutls-init-flags-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-SERVER:CAPS"></a>GNUTLS_SERVER</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CLIENT:CAPS"></a>GNUTLS_CLIENT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DATAGRAM:CAPS"></a>GNUTLS_DATAGRAM</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NONBLOCK:CAPS"></a>GNUTLS_NONBLOCK</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-EXTENSIONS:CAPS"></a>GNUTLS_NO_EXTENSIONS</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-REPLAY-PROTECTION:CAPS"></a>GNUTLS_NO_REPLAY_PROTECTION</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-SIGNAL:CAPS"></a>GNUTLS_NO_SIGNAL</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ALLOW-ID-CHANGE:CAPS"></a>GNUTLS_ALLOW_ID_CHANGE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ENABLE-FALSE-START:CAPS"></a>GNUTLS_ENABLE_FALSE_START</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FORCE-CLIENT-CERT:CAPS"></a>GNUTLS_FORCE_CLIENT_CERT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-TICKETS:CAPS"></a>GNUTLS_NO_TICKETS</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEY-SHARE-TOP:CAPS"></a>GNUTLS_KEY_SHARE_TOP</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEY-SHARE-TOP2:CAPS"></a>GNUTLS_KEY_SHARE_TOP2</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEY-SHARE-TOP3:CAPS"></a>GNUTLS_KEY_SHARE_TOP3</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-POST-HANDSHAKE-AUTH:CAPS"></a>GNUTLS_POST_HANDSHAKE_AUTH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-AUTO-REKEY:CAPS"></a>GNUTLS_NO_AUTO_REKEY</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAFE-PADDING-CHECK:CAPS"></a>GNUTLS_SAFE_PADDING_CHECK</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ENABLE-EARLY-START:CAPS"></a>GNUTLS_ENABLE_EARLY_START</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ENABLE-RAWPK:CAPS"></a>GNUTLS_ENABLE_RAWPK</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-AUTO-REAUTH:CAPS"></a>GNUTLS_AUTO_REAUTH</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ENABLE-EARLY-DATA:CAPS"></a>GNUTLS_ENABLE_EARLY_DATA</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-AUTO-SEND-TICKET:CAPS"></a>GNUTLS_NO_AUTO_SEND_TICKET</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-END-OF-EARLY-DATA:CAPS"></a>GNUTLS_NO_END_OF_EARLY_DATA</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-NO-TICKETS-TLS12:CAPS"></a>GNUTLS_NO_TICKETS_TLS12</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-SERVER:CAPS"></a><h3>GNUTLS_SERVER</h3>
+<pre class="programlisting">#define GNUTLS_SERVER (1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CLIENT:CAPS"></a><h3>GNUTLS_CLIENT</h3>
+<pre class="programlisting">#define GNUTLS_CLIENT (1&lt;&lt;1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-DATAGRAM:CAPS"></a><h3>GNUTLS_DATAGRAM</h3>
+<pre class="programlisting">#define GNUTLS_DATAGRAM (1&lt;&lt;2)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-NONBLOCK:CAPS"></a><h3>GNUTLS_NONBLOCK</h3>
+<pre class="programlisting">#define GNUTLS_NONBLOCK (1&lt;&lt;3)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-NO-EXTENSIONS:CAPS"></a><h3>GNUTLS_NO_EXTENSIONS</h3>
+<pre class="programlisting">#define GNUTLS_NO_EXTENSIONS (1&lt;&lt;4)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-NO-REPLAY-PROTECTION:CAPS"></a><h3>GNUTLS_NO_REPLAY_PROTECTION</h3>
+<pre class="programlisting">#define GNUTLS_NO_REPLAY_PROTECTION (1&lt;&lt;5)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-NO-SIGNAL:CAPS"></a><h3>GNUTLS_NO_SIGNAL</h3>
+<pre class="programlisting">#define GNUTLS_NO_SIGNAL (1&lt;&lt;6)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-ALLOW-ID-CHANGE:CAPS"></a><h3>GNUTLS_ALLOW_ID_CHANGE</h3>
+<pre class="programlisting">#define GNUTLS_ALLOW_ID_CHANGE (1&lt;&lt;7)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-ENABLE-FALSE-START:CAPS"></a><h3>GNUTLS_ENABLE_FALSE_START</h3>
+<pre class="programlisting">#define GNUTLS_ENABLE_FALSE_START (1&lt;&lt;8)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FORCE-CLIENT-CERT:CAPS"></a><h3>GNUTLS_FORCE_CLIENT_CERT</h3>
+<pre class="programlisting">#define GNUTLS_FORCE_CLIENT_CERT (1&lt;&lt;9)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-NO-TICKETS:CAPS"></a><h3>GNUTLS_NO_TICKETS</h3>
+<pre class="programlisting">#define GNUTLS_NO_TICKETS (1&lt;&lt;10)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-ENABLE-CERT-TYPE-NEG:CAPS"></a><h3>GNUTLS_ENABLE_CERT_TYPE_NEG</h3>
+<pre class="programlisting">#define GNUTLS_ENABLE_CERT_TYPE_NEG 0
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-level-t"></a><h3>enum gnutls_alert_level_t</h3>
+<p>Enumeration of different TLS alert severities.</p>
+<div class="refsect3">
+<a name="gnutls-alert-level-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-AL-WARNING:CAPS"></a>GNUTLS_AL_WARNING</p></td>
+<td class="enum_member_description">
+<p>Alert of warning severity.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-AL-FATAL:CAPS"></a>GNUTLS_AL_FATAL</p></td>
+<td class="enum_member_description">
+<p>Alert of fatal severity.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alert-description-t"></a><h3>enum gnutls_alert_description_t</h3>
+<p>Enumeration of different TLS alerts.</p>
+<div class="refsect3">
+<a name="gnutls-alert-description-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-A-CLOSE-NOTIFY:CAPS"></a>GNUTLS_A_CLOSE_NOTIFY</p></td>
+<td class="enum_member_description">
+<p>Close notify.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-UNEXPECTED-MESSAGE:CAPS"></a>GNUTLS_A_UNEXPECTED_MESSAGE</p></td>
+<td class="enum_member_description">
+<p>Unexpected message.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-BAD-RECORD-MAC:CAPS"></a>GNUTLS_A_BAD_RECORD_MAC</p></td>
+<td class="enum_member_description">
+<p>Bad record MAC.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-DECRYPTION-FAILED:CAPS"></a>GNUTLS_A_DECRYPTION_FAILED</p></td>
+<td class="enum_member_description">
+<p>Decryption failed.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-RECORD-OVERFLOW:CAPS"></a>GNUTLS_A_RECORD_OVERFLOW</p></td>
+<td class="enum_member_description">
+<p>Record overflow.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-DECOMPRESSION-FAILURE:CAPS"></a>GNUTLS_A_DECOMPRESSION_FAILURE</p></td>
+<td class="enum_member_description">
+<p>Decompression failed.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-HANDSHAKE-FAILURE:CAPS"></a>GNUTLS_A_HANDSHAKE_FAILURE</p></td>
+<td class="enum_member_description">
+<p>Handshake failed.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-SSL3-NO-CERTIFICATE:CAPS"></a>GNUTLS_A_SSL3_NO_CERTIFICATE</p></td>
+<td class="enum_member_description">
+<p>No certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-BAD-CERTIFICATE:CAPS"></a>GNUTLS_A_BAD_CERTIFICATE</p></td>
+<td class="enum_member_description">
+<p>Certificate is bad.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-UNSUPPORTED-CERTIFICATE:CAPS"></a>GNUTLS_A_UNSUPPORTED_CERTIFICATE</p></td>
+<td class="enum_member_description">
+<p>Certificate is not supported.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-CERTIFICATE-REVOKED:CAPS"></a>GNUTLS_A_CERTIFICATE_REVOKED</p></td>
+<td class="enum_member_description">
+<p>Certificate was revoked.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-CERTIFICATE-EXPIRED:CAPS"></a>GNUTLS_A_CERTIFICATE_EXPIRED</p></td>
+<td class="enum_member_description">
+<p>Certificate is expired.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-CERTIFICATE-UNKNOWN:CAPS"></a>GNUTLS_A_CERTIFICATE_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-ILLEGAL-PARAMETER:CAPS"></a>GNUTLS_A_ILLEGAL_PARAMETER</p></td>
+<td class="enum_member_description">
+<p>Illegal parameter.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-UNKNOWN-CA:CAPS"></a>GNUTLS_A_UNKNOWN_CA</p></td>
+<td class="enum_member_description">
+<p>CA is unknown.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-ACCESS-DENIED:CAPS"></a>GNUTLS_A_ACCESS_DENIED</p></td>
+<td class="enum_member_description">
+<p>Access was denied.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-DECODE-ERROR:CAPS"></a>GNUTLS_A_DECODE_ERROR</p></td>
+<td class="enum_member_description">
+<p>Decode error.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-DECRYPT-ERROR:CAPS"></a>GNUTLS_A_DECRYPT_ERROR</p></td>
+<td class="enum_member_description">
+<p>Decrypt error.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-EXPORT-RESTRICTION:CAPS"></a>GNUTLS_A_EXPORT_RESTRICTION</p></td>
+<td class="enum_member_description">
+<p>Export restriction.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-PROTOCOL-VERSION:CAPS"></a>GNUTLS_A_PROTOCOL_VERSION</p></td>
+<td class="enum_member_description">
+<p>Error in protocol version.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-INSUFFICIENT-SECURITY:CAPS"></a>GNUTLS_A_INSUFFICIENT_SECURITY</p></td>
+<td class="enum_member_description">
+<p>Insufficient security.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-INTERNAL-ERROR:CAPS"></a>GNUTLS_A_INTERNAL_ERROR</p></td>
+<td class="enum_member_description">
+<p>Internal error.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-INAPPROPRIATE-FALLBACK:CAPS"></a>GNUTLS_A_INAPPROPRIATE_FALLBACK</p></td>
+<td class="enum_member_description">
+<p>Inappropriate fallback,</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-USER-CANCELED:CAPS"></a>GNUTLS_A_USER_CANCELED</p></td>
+<td class="enum_member_description">
+<p>User canceled.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-NO-RENEGOTIATION:CAPS"></a>GNUTLS_A_NO_RENEGOTIATION</p></td>
+<td class="enum_member_description">
+<p>No renegotiation is allowed.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-MISSING-EXTENSION:CAPS"></a>GNUTLS_A_MISSING_EXTENSION</p></td>
+<td class="enum_member_description">
+<p>An extension was expected but was not seen</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-UNSUPPORTED-EXTENSION:CAPS"></a>GNUTLS_A_UNSUPPORTED_EXTENSION</p></td>
+<td class="enum_member_description">
+<p>An unsupported extension was
+sent.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-CERTIFICATE-UNOBTAINABLE:CAPS"></a>GNUTLS_A_CERTIFICATE_UNOBTAINABLE</p></td>
+<td class="enum_member_description">
+<p>Could not retrieve the
+specified certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-UNRECOGNIZED-NAME:CAPS"></a>GNUTLS_A_UNRECOGNIZED_NAME</p></td>
+<td class="enum_member_description">
+<p>The server name sent was not
+recognized.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-UNKNOWN-PSK-IDENTITY:CAPS"></a>GNUTLS_A_UNKNOWN_PSK_IDENTITY</p></td>
+<td class="enum_member_description">
+<p>The SRP/PSK username is missing
+or not known.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-CERTIFICATE-REQUIRED:CAPS"></a>GNUTLS_A_CERTIFICATE_REQUIRED</p></td>
+<td class="enum_member_description">
+<p>Certificate is required.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-NO-APPLICATION-PROTOCOL:CAPS"></a>GNUTLS_A_NO_APPLICATION_PROTOCOL</p></td>
+<td class="enum_member_description">
+<p>The ALPN protocol requested is
+not supported by the peer.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-A-MAX:CAPS"></a>GNUTLS_A_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-description-t"></a><h3>enum gnutls_handshake_description_t</h3>
+<p>Enumeration of different TLS handshake packets.</p>
+<div class="refsect3">
+<a name="gnutls-handshake-description-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-HANDSHAKE-HELLO-REQUEST:CAPS"></a>GNUTLS_HANDSHAKE_HELLO_REQUEST</p></td>
+<td class="enum_member_description">
+<p>Hello request.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CLIENT-HELLO:CAPS"></a>GNUTLS_HANDSHAKE_CLIENT_HELLO</p></td>
+<td class="enum_member_description">
+<p>Client hello.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-SERVER-HELLO:CAPS"></a>GNUTLS_HANDSHAKE_SERVER_HELLO</p></td>
+<td class="enum_member_description">
+<p>Server hello.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-HELLO-VERIFY-REQUEST:CAPS"></a>GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST</p></td>
+<td class="enum_member_description">
+<p>DTLS Hello verify request.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-NEW-SESSION-TICKET:CAPS"></a>GNUTLS_HANDSHAKE_NEW_SESSION_TICKET</p></td>
+<td class="enum_member_description">
+<p>New session ticket.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-END-OF-EARLY-DATA:CAPS"></a>GNUTLS_HANDSHAKE_END_OF_EARLY_DATA</p></td>
+<td class="enum_member_description">
+<p>End of early data.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-ENCRYPTED-EXTENSIONS:CAPS"></a>GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS</p></td>
+<td class="enum_member_description">
+<p>Encrypted extensions message.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CERTIFICATE-PKT:CAPS"></a>GNUTLS_HANDSHAKE_CERTIFICATE_PKT</p></td>
+<td class="enum_member_description">
+<p>Certificate packet.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-SERVER-KEY-EXCHANGE:CAPS"></a>GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE</p></td>
+<td class="enum_member_description">
+<p>Server key exchange.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CERTIFICATE-REQUEST:CAPS"></a>GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST</p></td>
+<td class="enum_member_description">
+<p>Certificate request.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-SERVER-HELLO-DONE:CAPS"></a>GNUTLS_HANDSHAKE_SERVER_HELLO_DONE</p></td>
+<td class="enum_member_description">
+<p>Server hello done.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CERTIFICATE-VERIFY:CAPS"></a>GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY</p></td>
+<td class="enum_member_description">
+<p>Certificate verify.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CLIENT-KEY-EXCHANGE:CAPS"></a>GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE</p></td>
+<td class="enum_member_description">
+<p>Client key exchange.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-FINISHED:CAPS"></a>GNUTLS_HANDSHAKE_FINISHED</p></td>
+<td class="enum_member_description">
+<p>Finished.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CERTIFICATE-STATUS:CAPS"></a>GNUTLS_HANDSHAKE_CERTIFICATE_STATUS</p></td>
+<td class="enum_member_description">
+<p>Certificate status (OCSP).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-SUPPLEMENTAL:CAPS"></a>GNUTLS_HANDSHAKE_SUPPLEMENTAL</p></td>
+<td class="enum_member_description">
+<p>Supplemental.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-KEY-UPDATE:CAPS"></a>GNUTLS_HANDSHAKE_KEY_UPDATE</p></td>
+<td class="enum_member_description">
+<p>TLS1.3 key update message.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-COMPRESSED-CERTIFICATE-PKT:CAPS"></a>GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT</p></td>
+<td class="enum_member_description">
+<p>Compressed certificate packet.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CHANGE-CIPHER-SPEC:CAPS"></a>GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC</p></td>
+<td class="enum_member_description">
+<p>Change Cipher Spec.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-CLIENT-HELLO-V2:CAPS"></a>GNUTLS_HANDSHAKE_CLIENT_HELLO_V2</p></td>
+<td class="enum_member_description">
+<p>SSLv2 Client Hello.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-HANDSHAKE-HELLO-RETRY-REQUEST:CAPS"></a>GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST</p></td>
+<td class="enum_member_description">
+<p>Hello retry request.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HANDSHAKE-ANY:CAPS"></a><h3>GNUTLS_HANDSHAKE_ANY</h3>
+<pre class="programlisting">#define GNUTLS_HANDSHAKE_ANY ((unsigned int)-1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-status-t"></a><h3>enum gnutls_certificate_status_t</h3>
+<p>Enumeration of certificate status codes. Note that the status
+bits may have different meanings in OpenPGP keys and X.509
+certificate verification.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-status-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-CERT-INVALID:CAPS"></a>GNUTLS_CERT_INVALID</p></td>
+<td class="enum_member_description">
+<p>The certificate is not signed by one of the
+known authorities or the signature is invalid (deprecated by the flags
+
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-SIGNATURE-FAILURE:CAPS"><code class="literal">GNUTLS_CERT_SIGNATURE_FAILURE</code></a> and <a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-SIGNER-NOT-FOUND:CAPS"><code class="literal">GNUTLS_CERT_SIGNER_NOT_FOUND</code></a>).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-REVOKED:CAPS"></a>GNUTLS_CERT_REVOKED</p></td>
+<td class="enum_member_description">
+<p>Certificate is revoked by its authority. In X.509 this will be
+set only if CRLs are checked.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-SIGNER-NOT-FOUND:CAPS"></a>GNUTLS_CERT_SIGNER_NOT_FOUND</p></td>
+<td class="enum_member_description">
+<p>The certificate's issuer is not known.
+
+This is the case if the issuer is not included in the trusted certificate list.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-SIGNER-NOT-CA:CAPS"></a>GNUTLS_CERT_SIGNER_NOT_CA</p></td>
+<td class="enum_member_description">
+<p>The certificate's signer was not a CA. This
+may happen if this was a version 1 certificate, which is common with
+some CAs, or a version 3 certificate without the basic constrains extension.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-INSECURE-ALGORITHM:CAPS"></a>GNUTLS_CERT_INSECURE_ALGORITHM</p></td>
+<td class="enum_member_description">
+<p>The certificate was signed using an insecure
+algorithm such as MD2 or MD5. These algorithms have been broken and
+should not be trusted.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-NOT-ACTIVATED:CAPS"></a>GNUTLS_CERT_NOT_ACTIVATED</p></td>
+<td class="enum_member_description">
+<p>The certificate is not yet activated.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-EXPIRED:CAPS"></a>GNUTLS_CERT_EXPIRED</p></td>
+<td class="enum_member_description">
+<p>The certificate has expired.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-SIGNATURE-FAILURE:CAPS"></a>GNUTLS_CERT_SIGNATURE_FAILURE</p></td>
+<td class="enum_member_description">
+<p>The signature verification failed.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-REVOCATION-DATA-SUPERSEDED:CAPS"></a>GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED</p></td>
+<td class="enum_member_description">
+<p>The revocation data are old and have been superseded.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-UNEXPECTED-OWNER:CAPS"></a>GNUTLS_CERT_UNEXPECTED_OWNER</p></td>
+<td class="enum_member_description">
+<p>The owner is not the expected one.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-REVOCATION-DATA-ISSUED-IN-FUTURE:CAPS"></a>GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE</p></td>
+<td class="enum_member_description">
+<p>The revocation data have a future issue date.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-SIGNER-CONSTRAINTS-FAILURE:CAPS"></a>GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE</p></td>
+<td class="enum_member_description">
+<p>The certificate's signer constraints were
+violated.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-MISMATCH:CAPS"></a>GNUTLS_CERT_MISMATCH</p></td>
+<td class="enum_member_description">
+<p>The certificate presented isn't the expected one (TOFU)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-PURPOSE-MISMATCH:CAPS"></a>GNUTLS_CERT_PURPOSE_MISMATCH</p></td>
+<td class="enum_member_description">
+<p>The certificate or an intermediate does not match the intended purpose (extended key usage).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-MISSING-OCSP-STATUS:CAPS"></a>GNUTLS_CERT_MISSING_OCSP_STATUS</p></td>
+<td class="enum_member_description">
+<p>The certificate requires the server to send the certificate status, but no status was received.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-INVALID-OCSP-STATUS:CAPS"></a>GNUTLS_CERT_INVALID_OCSP_STATUS</p></td>
+<td class="enum_member_description">
+<p>The received OCSP status response is invalid.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-UNKNOWN-CRIT-EXTENSIONS:CAPS"></a>GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS</p></td>
+<td class="enum_member_description">
+<p>The certificate has extensions marked as critical which are not supported.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-request-t"></a><h3>enum gnutls_certificate_request_t</h3>
+<p>Enumeration of certificate request types.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-request-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-CERT-IGNORE:CAPS"></a>GNUTLS_CERT_IGNORE</p></td>
+<td class="enum_member_description">
+<p>Ignore certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-REQUEST:CAPS"></a>GNUTLS_CERT_REQUEST</p></td>
+<td class="enum_member_description">
+<p>Request certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERT-REQUIRE:CAPS"></a>GNUTLS_CERT_REQUIRE</p></td>
+<td class="enum_member_description">
+<p>Require certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-status-t"></a><h3>enum gnutls_openpgp_crt_status_t</h3>
+<p>Enumeration of ways to send OpenPGP certificate.</p>
+<div class="refsect3">
+<a name="gnutls-openpgp-crt-status-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-OPENPGP-CERT:CAPS"></a>GNUTLS_OPENPGP_CERT</p></td>
+<td class="enum_member_description">
+<p>Send entire certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-OPENPGP-CERT-FINGERPRINT:CAPS"></a>GNUTLS_OPENPGP_CERT_FINGERPRINT</p></td>
+<td class="enum_member_description">
+<p>Send only certificate fingerprint.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-close-request-t"></a><h3>enum gnutls_close_request_t</h3>
+<p>Enumeration of how TLS session should be terminated. See <a class="link" href="gnutls-gnutls.html#gnutls-bye" title="gnutls_bye ()"><code class="function">gnutls_bye()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-close-request-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-SHUT-RDWR:CAPS"></a>GNUTLS_SHUT_RDWR</p></td>
+<td class="enum_member_description">
+<p>Disallow further receives/sends.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SHUT-WR:CAPS"></a>GNUTLS_SHUT_WR</p></td>
+<td class="enum_member_description">
+<p>Disallow further sends.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-protocol-t"></a><h3>enum gnutls_protocol_t</h3>
+<p>Enumeration of different SSL/TLS protocol versions.</p>
+<div class="refsect3">
+<a name="gnutls-protocol-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-SSL3:CAPS"></a>GNUTLS_SSL3</p></td>
+<td class="enum_member_description">
+<p>SSL version 3.0.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TLS1-0:CAPS"></a>GNUTLS_TLS1_0</p></td>
+<td class="enum_member_description">
+<p>TLS version 1.0.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TLS1:CAPS"></a>GNUTLS_TLS1</p></td>
+<td class="enum_member_description">
+<p>Same as <a class="link" href="gnutls-gnutls.html#GNUTLS-TLS1-0:CAPS"><code class="literal">GNUTLS_TLS1_0</code></a>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TLS1-1:CAPS"></a>GNUTLS_TLS1_1</p></td>
+<td class="enum_member_description">
+<p>TLS version 1.1.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TLS1-2:CAPS"></a>GNUTLS_TLS1_2</p></td>
+<td class="enum_member_description">
+<p>TLS version 1.2.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TLS1-3:CAPS"></a>GNUTLS_TLS1_3</p></td>
+<td class="enum_member_description">
+<p>TLS version 1.3.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DTLS0-9:CAPS"></a>GNUTLS_DTLS0_9</p></td>
+<td class="enum_member_description">
+<p>DTLS version 0.9 (Cisco AnyConnect / OpenSSL 0.9.8e).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DTLS1-0:CAPS"></a>GNUTLS_DTLS1_0</p></td>
+<td class="enum_member_description">
+<p>DTLS version 1.0.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DTLS1-2:CAPS"></a>GNUTLS_DTLS1_2</p></td>
+<td class="enum_member_description">
+<p>DTLS version 1.2.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DTLS-VERSION-MIN:CAPS"></a>GNUTLS_DTLS_VERSION_MIN</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DTLS-VERSION-MAX:CAPS"></a>GNUTLS_DTLS_VERSION_MAX</p></td>
+<td class="enum_member_description">
+<p>Maps to the highest supported DTLS version.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TLS-VERSION-MAX:CAPS"></a>GNUTLS_TLS_VERSION_MAX</p></td>
+<td class="enum_member_description">
+<p>Maps to the highest supported TLS version.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERSION-UNKNOWN:CAPS"></a>GNUTLS_VERSION_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown SSL/TLS version.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRT-RAW:CAPS"></a><h3>GNUTLS_CRT_RAW</h3>
+<pre class="programlisting">#define GNUTLS_CRT_RAW GNUTLS_CRT_RAWPK
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-type-t"></a><h3>enum gnutls_certificate_type_t</h3>
+<p>Enumeration of different certificate types.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-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-CRT-UNKNOWN:CAPS"></a>GNUTLS_CRT_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown certificate type.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRT-X509:CAPS"></a>GNUTLS_CRT_X509</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-CRT-OPENPGP:CAPS"></a>GNUTLS_CRT_OPENPGP</p></td>
+<td class="enum_member_description">
+<p>OpenPGP certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRT-RAWPK:CAPS"></a>GNUTLS_CRT_RAWPK</p></td>
+<td class="enum_member_description">
+<p>Raw public-key (SubjectPublicKeyInfo)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRT-MAX:CAPS"></a>GNUTLS_CRT_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-fmt-t"></a><h3>enum gnutls_x509_crt_fmt_t</h3>
+<p>Enumeration of different certificate encoding formats.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-fmt-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-X509-FMT-DER:CAPS"></a>GNUTLS_X509_FMT_DER</p></td>
+<td class="enum_member_description">
+<p>X.509 certificate in DER format (binary).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-X509-FMT-PEM:CAPS"></a>GNUTLS_X509_FMT_PEM</p></td>
+<td class="enum_member_description">
+<p>X.509 certificate in PEM format (text).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-print-formats-t"></a><h3>enum gnutls_certificate_print_formats_t</h3>
+<p>Enumeration of different certificate printing variants.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-print-formats-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-CRT-PRINT-FULL:CAPS"></a>GNUTLS_CRT_PRINT_FULL</p></td>
+<td class="enum_member_description">
+<p>Full information about certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRT-PRINT-ONELINE:CAPS"></a>GNUTLS_CRT_PRINT_ONELINE</p></td>
+<td class="enum_member_description">
+<p>Information about certificate in one line.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRT-PRINT-UNSIGNED-FULL:CAPS"></a>GNUTLS_CRT_PRINT_UNSIGNED_FULL</p></td>
+<td class="enum_member_description">
+<p>All info for an unsigned certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRT-PRINT-COMPACT:CAPS"></a>GNUTLS_CRT_PRINT_COMPACT</p></td>
+<td class="enum_member_description">
+<p>Information about certificate name in one line, plus identification of the public key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRT-PRINT-FULL-NUMBERS:CAPS"></a>GNUTLS_CRT_PRINT_FULL_NUMBERS</p></td>
+<td class="enum_member_description">
+<p>Full information about certificate and include easy to parse public key parameters.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PK-ECC:CAPS"></a><h3>GNUTLS_PK_ECC</h3>
+<pre class="programlisting">#define GNUTLS_PK_ECC GNUTLS_PK_ECDSA
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PK-EC:CAPS"></a><h3>GNUTLS_PK_EC</h3>
+<pre class="programlisting">#define GNUTLS_PK_EC GNUTLS_PK_ECDSA
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PK-ECDHX:CAPS"></a><h3>GNUTLS_PK_ECDHX</h3>
+<pre class="programlisting">#define GNUTLS_PK_ECDHX GNUTLS_PK_ECDH_X25519
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pk-algorithm-t"></a><h3>enum gnutls_pk_algorithm_t</h3>
+<p>Enumeration of different public-key algorithms.</p>
+<div class="refsect3">
+<a name="gnutls-pk-algorithm-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-PK-UNKNOWN:CAPS"></a>GNUTLS_PK_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown public-key algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-RSA:CAPS"></a>GNUTLS_PK_RSA</p></td>
+<td class="enum_member_description">
+<p>RSA public-key algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-DSA:CAPS"></a>GNUTLS_PK_DSA</p></td>
+<td class="enum_member_description">
+<p>DSA public-key algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-DH:CAPS"></a>GNUTLS_PK_DH</p></td>
+<td class="enum_member_description">
+<p>Diffie-Hellman algorithm. Used to generate parameters.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-ECDSA:CAPS"></a>GNUTLS_PK_ECDSA</p></td>
+<td class="enum_member_description">
+<p>Elliptic curve algorithm. These parameters are compatible with the ECDSA and ECDH algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-ECDH-X25519:CAPS"></a>GNUTLS_PK_ECDH_X25519</p></td>
+<td class="enum_member_description">
+<p>Elliptic curve algorithm, restricted to ECDH as per rfc7748.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-RSA-PSS:CAPS"></a>GNUTLS_PK_RSA_PSS</p></td>
+<td class="enum_member_description">
+<p>RSA public-key algorithm, with PSS padding.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-EDDSA-ED25519:CAPS"></a>GNUTLS_PK_EDDSA_ED25519</p></td>
+<td class="enum_member_description">
+<p>Edwards curve Digital signature algorithm. Used with SHA512 on signatures.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-GOST-01:CAPS"></a>GNUTLS_PK_GOST_01</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10-2001 algorithm per rfc5832.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-GOST-12-256:CAPS"></a>GNUTLS_PK_GOST_12_256</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10-2012 algorithm, 256-bit key per rfc7091.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-GOST-12-512:CAPS"></a>GNUTLS_PK_GOST_12_512</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10-2012 algorithm, 512-bit key per rfc7091.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-ECDH-X448:CAPS"></a>GNUTLS_PK_ECDH_X448</p></td>
+<td class="enum_member_description">
+<p>Elliptic curve algorithm, restricted to ECDH as per rfc7748.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-EDDSA-ED448:CAPS"></a>GNUTLS_PK_EDDSA_ED448</p></td>
+<td class="enum_member_description">
+<p>Edwards curve Digital signature algorithm. Used with SHAKE256 on signatures.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PK-MAX:CAPS"></a>GNUTLS_PK_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sign-algorithm-t"></a><h3>enum gnutls_sign_algorithm_t</h3>
+<p>Enumeration of different digital signature algorithms.</p>
+<div class="refsect3">
+<a name="gnutls-sign-algorithm-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-SIGN-UNKNOWN:CAPS"></a>GNUTLS_SIGN_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown signature algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA1:CAPS"></a>GNUTLS_SIGN_RSA_SHA1</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-1</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA:CAPS"></a>GNUTLS_SIGN_RSA_SHA</p></td>
+<td class="enum_member_description">
+<p>Same as <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA1:CAPS"><code class="literal">GNUTLS_SIGN_RSA_SHA1</code></a>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA1:CAPS"></a>GNUTLS_SIGN_DSA_SHA1</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA-1</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA:CAPS"></a>GNUTLS_SIGN_DSA_SHA</p></td>
+<td class="enum_member_description">
+<p>Same as <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA1:CAPS"><code class="literal">GNUTLS_SIGN_DSA_SHA1</code></a>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-MD5:CAPS"></a>GNUTLS_SIGN_RSA_MD5</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with MD5.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-MD2:CAPS"></a>GNUTLS_SIGN_RSA_MD2</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with MD2.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-RMD160:CAPS"></a>GNUTLS_SIGN_RSA_RMD160</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with RMD-160.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA256:CAPS"></a>GNUTLS_SIGN_RSA_SHA256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-256.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA384:CAPS"></a>GNUTLS_SIGN_RSA_SHA384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-384.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA512:CAPS"></a>GNUTLS_SIGN_RSA_SHA512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-512.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA224:CAPS"></a>GNUTLS_SIGN_RSA_SHA224</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-224.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA224:CAPS"></a>GNUTLS_SIGN_DSA_SHA224</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA-224</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA256:CAPS"></a>GNUTLS_SIGN_DSA_SHA256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA-256</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA1:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA1</p></td>
+<td class="enum_member_description">
+<p>ECDSA with SHA1.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA224:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA224</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA-224.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA256:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA-256.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA384:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA-384.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA512:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA-512.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA384:CAPS"></a>GNUTLS_SIGN_DSA_SHA384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA-384</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA512:CAPS"></a>GNUTLS_SIGN_DSA_SHA512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA-512</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA3-224:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA3_224</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA3-224.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA3-256:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA3_256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA3-256.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA3-384:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA3_384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA3-384.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SHA3-512:CAPS"></a>GNUTLS_SIGN_ECDSA_SHA3_512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA with SHA3-512.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA3-224:CAPS"></a>GNUTLS_SIGN_DSA_SHA3_224</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA3-224.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA3-256:CAPS"></a>GNUTLS_SIGN_DSA_SHA3_256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA3-256.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA3-384:CAPS"></a>GNUTLS_SIGN_DSA_SHA3_384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA3-384.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-DSA-SHA3-512:CAPS"></a>GNUTLS_SIGN_DSA_SHA3_512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm DSA with SHA3-512.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA3-224:CAPS"></a>GNUTLS_SIGN_RSA_SHA3_224</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA3-224.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA3-256:CAPS"></a>GNUTLS_SIGN_RSA_SHA3_256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA3-256.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA3-384:CAPS"></a>GNUTLS_SIGN_RSA_SHA3_384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA3-384.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-SHA3-512:CAPS"></a>GNUTLS_SIGN_RSA_SHA3_512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA3-512.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-PSS-SHA256:CAPS"></a>GNUTLS_SIGN_RSA_PSS_SHA256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-256, with PSS padding (RSA-PSS certificate).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-PSS-SHA384:CAPS"></a>GNUTLS_SIGN_RSA_PSS_SHA384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-384, with PSS padding (RSA-PSS certificate).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-PSS-SHA512:CAPS"></a>GNUTLS_SIGN_RSA_PSS_SHA512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-512, with PSS padding (RSA-PSS certificate).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-EDDSA-ED25519:CAPS"></a>GNUTLS_SIGN_EDDSA_ED25519</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm EdDSA with Ed25519 curve.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-RAW:CAPS"></a>GNUTLS_SIGN_RSA_RAW</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with DigestInfo formatted data</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SECP256R1-SHA256:CAPS"></a>GNUTLS_SIGN_ECDSA_SECP256R1_SHA256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA-SECP256R1 with SHA-256 (used in TLS 1.3 but not PKIX).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SECP384R1-SHA384:CAPS"></a>GNUTLS_SIGN_ECDSA_SECP384R1_SHA384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA-SECP384R1 with SHA-384 (used in TLS 1.3 but not PKIX).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-ECDSA-SECP521R1-SHA512:CAPS"></a>GNUTLS_SIGN_ECDSA_SECP521R1_SHA512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm ECDSA-SECP521R1 with SHA-512 (used in TLS 1.3 but not PKIX).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-PSS-RSAE-SHA256:CAPS"></a>GNUTLS_SIGN_RSA_PSS_RSAE_SHA256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-256,
+with PSS padding (RSA PKCS#1 1.5 certificate). This signature is identical
+to <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-SHA256:CAPS"><span class="type">GNUTLS_SIGN_RSA_PSS_SHA256</span></a>, but they are distinct as the TLS1.3 protocol
+treats them differently.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-PSS-RSAE-SHA384:CAPS"></a>GNUTLS_SIGN_RSA_PSS_RSAE_SHA384</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-384,
+with PSS padding (RSA PKCS#1 1.5 certificate). This signature is identical
+to <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-SHA384:CAPS"><span class="type">GNUTLS_SIGN_RSA_PSS_SHA384</span></a>, but they are distinct as the TLS1.3 protocol
+treats them differently.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-RSA-PSS-RSAE-SHA512:CAPS"></a>GNUTLS_SIGN_RSA_PSS_RSAE_SHA512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm RSA with SHA-512,
+with PSS padding (RSA PKCS#1 1.5 certificate). This signature is identical
+to <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-SHA512:CAPS"><span class="type">GNUTLS_SIGN_RSA_PSS_SHA512</span></a>, but they are distinct as the TLS1.3 protocol
+treats them differently.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-GOST-94:CAPS"></a>GNUTLS_SIGN_GOST_94</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm GOST R 34.10-2001 with GOST R 34.11-94</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-GOST-256:CAPS"></a>GNUTLS_SIGN_GOST_256</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm GOST R 34.10-2012 with GOST R 34.11-2012 256 bit</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-GOST-512:CAPS"></a>GNUTLS_SIGN_GOST_512</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm GOST R 34.10-2012 with GOST R 34.11-2012 512 bit</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-EDDSA-ED448:CAPS"></a>GNUTLS_SIGN_EDDSA_ED448</p></td>
+<td class="enum_member_description">
+<p>Digital signature algorithm EdDSA with Ed448 curve.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SIGN-MAX:CAPS"></a>GNUTLS_SIGN_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ecc-curve-t"></a><h3>enum gnutls_ecc_curve_t</h3>
+<p>Enumeration of ECC curves.</p>
+<div class="refsect3">
+<a name="gnutls-ecc-curve-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-ECC-CURVE-INVALID:CAPS"></a>GNUTLS_ECC_CURVE_INVALID</p></td>
+<td class="enum_member_description">
+<p>Cannot be known</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-SECP224R1:CAPS"></a>GNUTLS_ECC_CURVE_SECP224R1</p></td>
+<td class="enum_member_description">
+<p>the SECP224R1 curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-SECP256R1:CAPS"></a>GNUTLS_ECC_CURVE_SECP256R1</p></td>
+<td class="enum_member_description">
+<p>the SECP256R1 curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-SECP384R1:CAPS"></a>GNUTLS_ECC_CURVE_SECP384R1</p></td>
+<td class="enum_member_description">
+<p>the SECP384R1 curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-SECP521R1:CAPS"></a>GNUTLS_ECC_CURVE_SECP521R1</p></td>
+<td class="enum_member_description">
+<p>the SECP521R1 curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-SECP192R1:CAPS"></a>GNUTLS_ECC_CURVE_SECP192R1</p></td>
+<td class="enum_member_description">
+<p>the SECP192R1 curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-X25519:CAPS"></a>GNUTLS_ECC_CURVE_X25519</p></td>
+<td class="enum_member_description">
+<p>the X25519 curve (ECDH only)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-ED25519:CAPS"></a>GNUTLS_ECC_CURVE_ED25519</p></td>
+<td class="enum_member_description">
+<p>the Ed25519 curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256CPA:CAPS"></a>GNUTLS_ECC_CURVE_GOST256CPA</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 CryptoPro 256 A curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256CPB:CAPS"></a>GNUTLS_ECC_CURVE_GOST256CPB</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 CryptoPro 256 B curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256CPC:CAPS"></a>GNUTLS_ECC_CURVE_GOST256CPC</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 CryptoPro 256 C curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256CPXA:CAPS"></a>GNUTLS_ECC_CURVE_GOST256CPXA</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 CryptoPro 256 XchA curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256CPXB:CAPS"></a>GNUTLS_ECC_CURVE_GOST256CPXB</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 CryptoPro 256 XchB curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST512A:CAPS"></a>GNUTLS_ECC_CURVE_GOST512A</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 TC26 512 A curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST512B:CAPS"></a>GNUTLS_ECC_CURVE_GOST512B</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 TC26 512 B curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST512C:CAPS"></a>GNUTLS_ECC_CURVE_GOST512C</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 TC26 512 C curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256A:CAPS"></a>GNUTLS_ECC_CURVE_GOST256A</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 TC26 256 A curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256B:CAPS"></a>GNUTLS_ECC_CURVE_GOST256B</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 TC26 256 B curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256C:CAPS"></a>GNUTLS_ECC_CURVE_GOST256C</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 TC26 256 C curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-GOST256D:CAPS"></a>GNUTLS_ECC_CURVE_GOST256D</p></td>
+<td class="enum_member_description">
+<p>GOST R 34.10 TC26 256 D curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-X448:CAPS"></a>GNUTLS_ECC_CURVE_X448</p></td>
+<td class="enum_member_description">
+<p>the X448 curve (ECDH only)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-ED448:CAPS"></a>GNUTLS_ECC_CURVE_ED448</p></td>
+<td class="enum_member_description">
+<p>the Ed448 curve</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ECC-CURVE-MAX:CAPS"></a>GNUTLS_ECC_CURVE_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-group-t"></a><h3>enum gnutls_group_t</h3>
+<p>Enumeration of supported groups. It is intended to be backwards
+compatible with the enumerations in <a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><code class="literal">gnutls_ecc_curve_t</code></a> for the groups
+which are valid elliptic curves.</p>
+<div class="refsect3">
+<a name="gnutls-group-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-GROUP-INVALID:CAPS"></a>GNUTLS_GROUP_INVALID</p></td>
+<td class="enum_member_description">
+<p>Indicates unknown/invalid group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-SECP192R1:CAPS"></a>GNUTLS_GROUP_SECP192R1</p></td>
+<td class="enum_member_description">
+<p>the SECP192R1 curve group (legacy, only for TLS 1.2 compatibility)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-SECP224R1:CAPS"></a>GNUTLS_GROUP_SECP224R1</p></td>
+<td class="enum_member_description">
+<p>the SECP224R1 curve group (legacy, only for TLS 1.2 compatibility)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-SECP256R1:CAPS"></a>GNUTLS_GROUP_SECP256R1</p></td>
+<td class="enum_member_description">
+<p>the SECP256R1 curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-SECP384R1:CAPS"></a>GNUTLS_GROUP_SECP384R1</p></td>
+<td class="enum_member_description">
+<p>the SECP384R1 curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-SECP521R1:CAPS"></a>GNUTLS_GROUP_SECP521R1</p></td>
+<td class="enum_member_description">
+<p>the SECP521R1 curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-X25519:CAPS"></a>GNUTLS_GROUP_X25519</p></td>
+<td class="enum_member_description">
+<p>the X25519 curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-X448:CAPS"></a>GNUTLS_GROUP_X448</p></td>
+<td class="enum_member_description">
+<p>the X448 curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-GC256A:CAPS"></a>GNUTLS_GROUP_GC256A</p></td>
+<td class="enum_member_description">
+<p>the GOST R 34.10 TC26 256 A curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-GC256B:CAPS"></a>GNUTLS_GROUP_GC256B</p></td>
+<td class="enum_member_description">
+<p>the GOST R 34.10 TC26 256 B curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-GC256C:CAPS"></a>GNUTLS_GROUP_GC256C</p></td>
+<td class="enum_member_description">
+<p>the GOST R 34.10 TC26 256 C curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-GC256D:CAPS"></a>GNUTLS_GROUP_GC256D</p></td>
+<td class="enum_member_description">
+<p>the GOST R 34.10 TC26 256 D curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-GC512A:CAPS"></a>GNUTLS_GROUP_GC512A</p></td>
+<td class="enum_member_description">
+<p>the GOST R 34.10 TC26 512 A curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-GC512B:CAPS"></a>GNUTLS_GROUP_GC512B</p></td>
+<td class="enum_member_description">
+<p>the GOST R 34.10 TC26 512 B curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-GC512C:CAPS"></a>GNUTLS_GROUP_GC512C</p></td>
+<td class="enum_member_description">
+<p>the GOST R 34.10 TC26 512 C curve group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-FFDHE2048:CAPS"></a>GNUTLS_GROUP_FFDHE2048</p></td>
+<td class="enum_member_description">
+<p>the FFDHE2048 group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-FFDHE3072:CAPS"></a>GNUTLS_GROUP_FFDHE3072</p></td>
+<td class="enum_member_description">
+<p>the FFDHE3072 group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-FFDHE4096:CAPS"></a>GNUTLS_GROUP_FFDHE4096</p></td>
+<td class="enum_member_description">
+<p>the FFDHE4096 group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-FFDHE8192:CAPS"></a>GNUTLS_GROUP_FFDHE8192</p></td>
+<td class="enum_member_description">
+<p>the FFDHE8192 group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-FFDHE6144:CAPS"></a>GNUTLS_GROUP_FFDHE6144</p></td>
+<td class="enum_member_description">
+<p>the FFDHE6144 group</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GROUP-MAX:CAPS"></a>GNUTLS_GROUP_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-sec-param-t"></a><h3>enum gnutls_sec_param_t</h3>
+<p>Enumeration of security parameters for passive attacks.</p>
+<div class="refsect3">
+<a name="gnutls-sec-param-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-SEC-PARAM-UNKNOWN:CAPS"></a>GNUTLS_SEC_PARAM_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Cannot be known</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-INSECURE:CAPS"></a>GNUTLS_SEC_PARAM_INSECURE</p></td>
+<td class="enum_member_description">
+<p>Less than 42 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-EXPORT:CAPS"></a>GNUTLS_SEC_PARAM_EXPORT</p></td>
+<td class="enum_member_description">
+<p>42 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-VERY-WEAK:CAPS"></a>GNUTLS_SEC_PARAM_VERY_WEAK</p></td>
+<td class="enum_member_description">
+<p>64 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-WEAK:CAPS"></a>GNUTLS_SEC_PARAM_WEAK</p></td>
+<td class="enum_member_description">
+<p>72 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-LOW:CAPS"></a>GNUTLS_SEC_PARAM_LOW</p></td>
+<td class="enum_member_description">
+<p>80 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-LEGACY:CAPS"></a>GNUTLS_SEC_PARAM_LEGACY</p></td>
+<td class="enum_member_description">
+<p>96 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-MEDIUM:CAPS"></a>GNUTLS_SEC_PARAM_MEDIUM</p></td>
+<td class="enum_member_description">
+<p>112 bits of security (used to be <a class="link" href="gnutls-gnutls.html#GNUTLS-SEC-PARAM-NORMAL:CAPS" title="GNUTLS_SEC_PARAM_NORMAL"><code class="literal">GNUTLS_SEC_PARAM_NORMAL</code></a>)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-HIGH:CAPS"></a>GNUTLS_SEC_PARAM_HIGH</p></td>
+<td class="enum_member_description">
+<p>128 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-ULTRA:CAPS"></a>GNUTLS_SEC_PARAM_ULTRA</p></td>
+<td class="enum_member_description">
+<p>192 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-FUTURE:CAPS"></a>GNUTLS_SEC_PARAM_FUTURE</p></td>
+<td class="enum_member_description">
+<p>256 bits of security</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SEC-PARAM-MAX:CAPS"></a>GNUTLS_SEC_PARAM_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-SEC-PARAM-NORMAL:CAPS"></a><h3>GNUTLS_SEC_PARAM_NORMAL</h3>
+<pre class="programlisting">#define GNUTLS_SEC_PARAM_NORMAL GNUTLS_SEC_PARAM_MEDIUM
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-channel-binding-t"></a><h3>enum gnutls_channel_binding_t</h3>
+<p>Enumeration of supported channel binding types.</p>
+<div class="refsect3">
+<a name="gnutls-channel-binding-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-CB-TLS-UNIQUE:CAPS"></a>GNUTLS_CB_TLS_UNIQUE</p></td>
+<td class="enum_member_description">
+<p>"tls-unique" (RFC 5929) channel binding</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CB-TLS-SERVER-END-POINT:CAPS"></a>GNUTLS_CB_TLS_SERVER_END_POINT</p></td>
+<td class="enum_member_description">
+<p>"tls-server-end-point" (RFC 5929) channel binding</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CB-TLS-EXPORTER:CAPS"></a>GNUTLS_CB_TLS_EXPORTER</p></td>
+<td class="enum_member_description">
+<p>"tls-exporter" (RFC 9266) channel binding</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-gost-paramset-t"></a><h3>enum gnutls_gost_paramset_t</h3>
+<p>Enumeration of different GOST 28147 parameter sets.</p>
+<div class="refsect3">
+<a name="gnutls-gost-paramset-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-GOST-PARAMSET-UNKNOWN:CAPS"></a>GNUTLS_GOST_PARAMSET_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown/default parameter set</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GOST-PARAMSET-TC26-Z:CAPS"></a>GNUTLS_GOST_PARAMSET_TC26_Z</p></td>
+<td class="enum_member_description">
+<p>Specified by TC26, see rfc7836</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GOST-PARAMSET-CP-A:CAPS"></a>GNUTLS_GOST_PARAMSET_CP_A</p></td>
+<td class="enum_member_description">
+<p>CryptoPro-A, see rfc4357</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GOST-PARAMSET-CP-B:CAPS"></a>GNUTLS_GOST_PARAMSET_CP_B</p></td>
+<td class="enum_member_description">
+<p>CryptoPro-B, see rfc4357</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GOST-PARAMSET-CP-C:CAPS"></a>GNUTLS_GOST_PARAMSET_CP_C</p></td>
+<td class="enum_member_description">
+<p>CryptoPro-C, see rfc4357</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-GOST-PARAMSET-CP-D:CAPS"></a>GNUTLS_GOST_PARAMSET_CP_D</p></td>
+<td class="enum_member_description">
+<p>CryptoPro-D, see rfc4357</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ctype-target-t"></a><h3>enum gnutls_ctype_target_t</h3>
+<p>Enumeration of certificate type targets with respect to asymmetric
+certificate types as specified in RFC7250 and P2P connection set up
+as specified in draft-vanrein-tls-symmetry-02.</p>
+<div class="refsect3">
+<a name="gnutls-ctype-target-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-CTYPE-CLIENT:CAPS"></a>GNUTLS_CTYPE_CLIENT</p></td>
+<td class="enum_member_description">
+<p>for requesting client certificate type values.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CTYPE-SERVER:CAPS"></a>GNUTLS_CTYPE_SERVER</p></td>
+<td class="enum_member_description">
+<p>for requesting server certificate type values.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CTYPE-OURS:CAPS"></a>GNUTLS_CTYPE_OURS</p></td>
+<td class="enum_member_description">
+<p>for requesting our certificate type values.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CTYPE-PEERS:CAPS"></a>GNUTLS_CTYPE_PEERS</p></td>
+<td class="enum_member_description">
+<p>for requesting the peers' certificate type values.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-transport-ptr-t"></a><h3>gnutls_transport_ptr_t</h3>
+<pre class="programlisting">typedef void *gnutls_transport_ptr_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-t"></a><h3>gnutls_session_t</h3>
+<pre class="programlisting">typedef struct gnutls_session_int *gnutls_session_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-t"></a><h3>gnutls_dh_params_t</h3>
+<pre class="programlisting">typedef struct gnutls_dh_params_int *gnutls_dh_params_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-rsa-params-t"></a><h3>gnutls_rsa_params_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_privkey_int *gnutls_rsa_params_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-t"></a><h3>gnutls_priority_t</h3>
+<pre class="programlisting">typedef struct gnutls_priority_st *gnutls_priority_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-datum-t"></a><h3>gnutls_datum_t</h3>
+<pre class="programlisting">typedef struct {
+ unsigned char *data;
+ unsigned int size;
+} gnutls_datum_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-library-config-st"></a><h3>gnutls_library_config_st</h3>
+<pre class="programlisting">typedef struct {
+ const char *name;
+ const char *value;
+} gnutls_library_config_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-params-st"></a><h3>gnutls_params_st</h3>
+<pre class="programlisting">typedef struct {
+ gnutls_params_type_t type;
+ union params {
+ gnutls_dh_params_t dh;
+ gnutls_rsa_params_t rsa_export;
+ } params;
+ int deinit;
+} gnutls_params_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-DEFAULT-HANDSHAKE-TIMEOUT:CAPS"></a><h3>GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT</h3>
+<pre class="programlisting">#define GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT ((unsigned int)-1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-INDEFINITE-TIMEOUT:CAPS"></a><h3>GNUTLS_INDEFINITE_TIMEOUT</h3>
+<pre class="programlisting">#define GNUTLS_INDEFINITE_TIMEOUT ((unsigned int)-2)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KU-PEER:CAPS"></a><h3>GNUTLS_KU_PEER</h3>
+<pre class="programlisting">#define GNUTLS_KU_PEER 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HEARTBEAT-WAIT:CAPS"></a><h3>GNUTLS_HEARTBEAT_WAIT</h3>
+<pre class="programlisting">#define GNUTLS_HEARTBEAT_WAIT 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-RECORD-WAIT:CAPS"></a><h3>GNUTLS_RECORD_WAIT</h3>
+<pre class="programlisting">#define GNUTLS_RECORD_WAIT 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-range-st"></a><h3>gnutls_range_st</h3>
+<pre class="programlisting">typedef struct {
+ size_t low;
+ size_t high;
+} gnutls_range_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-packet-t"></a><h3>gnutls_packet_t</h3>
+<pre class="programlisting">typedef struct mbuffer_st *gnutls_packet_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-read"></a><h3>gnutls_read</h3>
+<pre class="programlisting">#define gnutls_read gnutls_record_recv
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-write"></a><h3>gnutls_write</h3>
+<pre class="programlisting">#define gnutls_write gnutls_record_send
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-server-name-type-t"></a><h3>enum gnutls_server_name_type_t</h3>
+<p>Enumeration of different server name types.</p>
+<div class="refsect3">
+<a name="gnutls-server-name-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-NAME-DNS:CAPS"></a>GNUTLS_NAME_DNS</p></td>
+<td class="enum_member_description">
+<p>Domain Name System name type.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HB-PEER-ALLOWED-TO-SEND:CAPS"></a><h3>GNUTLS_HB_PEER_ALLOWED_TO_SEND</h3>
+<pre class="programlisting">#define GNUTLS_HB_PEER_ALLOWED_TO_SEND (1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HB-PEER-NOT-ALLOWED-TO-SEND:CAPS"></a><h3>GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND</h3>
+<pre class="programlisting">#define GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND (1&lt;&lt;1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HB-LOCAL-ALLOWED-TO-SEND:CAPS"></a><h3>GNUTLS_HB_LOCAL_ALLOWED_TO_SEND</h3>
+<pre class="programlisting">#define GNUTLS_HB_LOCAL_ALLOWED_TO_SEND (1&lt;&lt;2)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-flags-t"></a><h3>enum gnutls_session_flags_t</h3>
+<p>Enumeration of different session parameters.</p>
+<div class="refsect3">
+<a name="gnutls-session-flags-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-SFLAGS-SAFE-RENEGOTIATION:CAPS"></a>GNUTLS_SFLAGS_SAFE_RENEGOTIATION</p></td>
+<td class="enum_member_description">
+<p>Safe renegotiation (RFC5746) was used</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-EXT-MASTER-SECRET:CAPS"></a>GNUTLS_SFLAGS_EXT_MASTER_SECRET</p></td>
+<td class="enum_member_description">
+<p>The extended master secret (RFC7627) extension was used</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-ETM:CAPS"></a>GNUTLS_SFLAGS_ETM</p></td>
+<td class="enum_member_description">
+<p>The encrypt then MAC (RFC7366) extension was used</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-HB-LOCAL-SEND:CAPS"></a>GNUTLS_SFLAGS_HB_LOCAL_SEND</p></td>
+<td class="enum_member_description">
+<p>The heartbeat negotiation allows the local side to send heartbeat messages</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-HB-PEER-SEND:CAPS"></a>GNUTLS_SFLAGS_HB_PEER_SEND</p></td>
+<td class="enum_member_description">
+<p>The heartbeat negotiation allows the peer to send heartbeat messages</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-FALSE-START:CAPS"></a>GNUTLS_SFLAGS_FALSE_START</p></td>
+<td class="enum_member_description">
+<p>False start was used in this client session.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-RFC7919:CAPS"></a>GNUTLS_SFLAGS_RFC7919</p></td>
+<td class="enum_member_description">
+<p>The RFC7919 Diffie-Hellman parameters were negotiated</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-SESSION-TICKET:CAPS"></a>GNUTLS_SFLAGS_SESSION_TICKET</p></td>
+<td class="enum_member_description">
+<p>A session ticket has been received by the server.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-POST-HANDSHAKE-AUTH:CAPS"></a>GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH</p></td>
+<td class="enum_member_description">
+<p>Indicates client capability for post-handshake auth; set only on server side.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-EARLY-START:CAPS"></a>GNUTLS_SFLAGS_EARLY_START</p></td>
+<td class="enum_member_description">
+<p>The TLS1.3 server session returned early.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-EARLY-DATA:CAPS"></a>GNUTLS_SFLAGS_EARLY_DATA</p></td>
+<td class="enum_member_description">
+<p>The TLS1.3 early data has been received by the server.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-CLI-REQUESTED-OCSP:CAPS"></a>GNUTLS_SFLAGS_CLI_REQUESTED_OCSP</p></td>
+<td class="enum_member_description">
+<p>Set when the client has requested OCSP staple during handshake.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SFLAGS-SERV-REQUESTED-OCSP:CAPS"></a>GNUTLS_SFLAGS_SERV_REQUESTED_OCSP</p></td>
+<td class="enum_member_description">
+<p>Set when the server has requested OCSP staple during handshake.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-supplemental-data-format-type-t"></a><h3>enum gnutls_supplemental_data_format_type_t</h3>
+<p>Enumeration of different supplemental data types (RFC 4680).</p>
+<div class="refsect3">
+<a name="gnutls-supplemental-data-format-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-SUPPLEMENTAL-UNKNOWN:CAPS"></a>GNUTLS_SUPPLEMENTAL_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown data format</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srtp-profile-t"></a><h3>enum gnutls_srtp_profile_t</h3>
+<p>Enumeration of different SRTP protection profiles.</p>
+<div class="refsect3">
+<a name="gnutls-srtp-profile-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-SRTP-AES128-CM-HMAC-SHA1-80:CAPS"></a>GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80</p></td>
+<td class="enum_member_description">
+<p>128 bit AES with a 80 bit HMAC-SHA1</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SRTP-AES128-CM-HMAC-SHA1-32:CAPS"></a>GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32</p></td>
+<td class="enum_member_description">
+<p>128 bit AES with a 32 bit HMAC-SHA1</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SRTP-NULL-HMAC-SHA1-80:CAPS"></a>GNUTLS_SRTP_NULL_HMAC_SHA1_80</p></td>
+<td class="enum_member_description">
+<p>NULL cipher with a 80 bit HMAC-SHA1</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SRTP-NULL-HMAC-SHA1-32:CAPS"></a>GNUTLS_SRTP_NULL_HMAC_SHA1_32</p></td>
+<td class="enum_member_description">
+<p>NULL cipher with a 32 bit HMAC-SHA1</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-alpn-flags-t"></a><h3>enum gnutls_alpn_flags_t</h3>
+<p>Enumeration of different ALPN flags. These are used by <a class="link" href="gnutls-gnutls.html#gnutls-alpn-set-protocols" title="gnutls_alpn_set_protocols ()"><code class="function">gnutls_alpn_set_protocols()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-alpn-flags-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-ALPN-MANDATORY:CAPS"></a>GNUTLS_ALPN_MANDATORY</p></td>
+<td class="enum_member_description">
+<p>Require ALPN negotiation. The connection will be
+aborted if no matching ALPN protocol is found.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ALPN-SERVER-PRECEDENCE:CAPS"></a>GNUTLS_ALPN_SERVER_PRECEDENCE</p></td>
+<td class="enum_member_description">
+<p>The choices set by the server
+will take precedence over the client's.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-ALPN-MAND:CAPS"></a><h3>GNUTLS_ALPN_MAND</h3>
+<pre class="programlisting">#define GNUTLS_ALPN_MAND GNUTLS_ALPN_MANDATORY
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PRIORITY-INIT-DEF-APPEND:CAPS"></a><h3>GNUTLS_PRIORITY_INIT_DEF_APPEND</h3>
+<pre class="programlisting">#define GNUTLS_PRIORITY_INIT_DEF_APPEND 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PRIORITY-LIST-INIT-KEYWORDS:CAPS"></a><h3>GNUTLS_PRIORITY_LIST_INIT_KEYWORDS</h3>
+<pre class="programlisting">#define GNUTLS_PRIORITY_LIST_INIT_KEYWORDS 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PRIORITY-LIST-SPECIAL:CAPS"></a><h3>GNUTLS_PRIORITY_LIST_SPECIAL</h3>
+<pre class="programlisting">#define GNUTLS_PRIORITY_LIST_SPECIAL 2
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-vdata-types-t"></a><h3>enum gnutls_vdata_types_t</h3>
+<p>Enumeration of different typed-data options. They are used as input to certificate
+verification functions to provide information about the name and purpose of the
+certificate. Only a single option of a type can be provided to the relevant functions
+(i.e., options <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-DNS-HOSTNAME:CAPS"><code class="literal">GNUTLS_DT_DNS_HOSTNAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-IP-ADDRESS:CAPS"><code class="literal">GNUTLS_DT_IP_ADDRESS</code></a> and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-DT-RFC822NAME:CAPS"><code class="literal">GNUTLS_DT_RFC822NAME</code></a> cannot be combined).</p>
+<div class="refsect3">
+<a name="gnutls-vdata-types-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-DT-UNKNOWN:CAPS"></a>GNUTLS_DT_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown data type.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DT-DNS-HOSTNAME:CAPS"></a>GNUTLS_DT_DNS_HOSTNAME</p></td>
+<td class="enum_member_description">
+<p>The data contain a null-terminated DNS hostname; the hostname will be
+
+matched using the RFC6125 rules. If the data contain a textual IP (v4 or v6) address it will
+be marched against the IPAddress Alternative name, unless the verification flag <a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-IP-MATCHES:CAPS"><code class="literal">GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES</code></a>
+is specified.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DT-KEY-PURPOSE-OID:CAPS"></a>GNUTLS_DT_KEY_PURPOSE_OID</p></td>
+<td class="enum_member_description">
+<p>The data contain a null-terminated key purpose OID. It will be matched
+against the certificate's Extended Key Usage extension.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DT-RFC822NAME:CAPS"></a>GNUTLS_DT_RFC822NAME</p></td>
+<td class="enum_member_description">
+<p>The data contain a null-terminated email address; the email will be
+matched against the RFC822Name Alternative name of the certificate, or the EMAIL DN component if the
+former isn't available. Prior to matching the email address will be converted to ACE
+(ASCII-compatible-encoding).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-DT-IP-ADDRESS:CAPS"></a>GNUTLS_DT_IP_ADDRESS</p></td>
+<td class="enum_member_description">
+<p>The data contain a raw IP address (4 or 16 bytes). If will be matched
+against the IPAddress Alternative name; option available since 3.6.0.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-typed-vdata-st"></a><h3>gnutls_typed_vdata_st</h3>
+<pre class="programlisting">typedef struct {
+ gnutls_vdata_types_t type;
+ unsigned char *data;
+ unsigned int size;
+} gnutls_typed_vdata_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-MAX-SESSION-ID:CAPS"></a><h3>GNUTLS_MAX_SESSION_ID</h3>
+<pre class="programlisting">#define GNUTLS_MAX_SESSION_ID 32
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HOOK-POST:CAPS"></a><h3>GNUTLS_HOOK_POST</h3>
+<pre class="programlisting">#define GNUTLS_HOOK_POST (1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HOOK-PRE:CAPS"></a><h3>GNUTLS_HOOK_PRE</h3>
+<pre class="programlisting">#define GNUTLS_HOOK_PRE (0)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-HOOK-BOTH:CAPS"></a><h3>GNUTLS_HOOK_BOTH</h3>
+<pre class="programlisting">#define GNUTLS_HOOK_BOTH (-1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-handshake-post-client-hello-func"></a><h3>gnutls_handshake_post_client_hello_func</h3>
+<pre class="programlisting">#define gnutls_handshake_post_client_hello_func gnutls_handshake_simple_hook_func
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-cred-set"></a><h3>gnutls_cred_set</h3>
+<pre class="programlisting">#define gnutls_cred_set gnutls_credentials_set
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-t"></a><h3>gnutls_pubkey_t</h3>
+<pre class="programlisting">typedef struct gnutls_pubkey_st *gnutls_pubkey_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-t"></a><h3>gnutls_privkey_t</h3>
+<pre class="programlisting">typedef struct gnutls_privkey_st *gnutls_privkey_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-t"></a><h3>gnutls_x509_privkey_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_privkey_int *gnutls_x509_privkey_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-t"></a><h3>gnutls_x509_crl_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_crl_int *gnutls_x509_crl_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-t"></a><h3>gnutls_x509_crt_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_crt_int *gnutls_x509_crt_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-t"></a><h3>gnutls_x509_crq_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_crq_int *gnutls_x509_crq_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-t"></a><h3>gnutls_openpgp_keyring_t</h3>
+<pre class="programlisting">typedef struct gnutls_openpgp_keyring_int *gnutls_openpgp_keyring_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-flags"></a><h3>enum gnutls_certificate_flags</h3>
+<p>Enumeration of different certificate credentials flags.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-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-CERTIFICATE-SKIP-KEY-CERT-MATCH:CAPS"></a>GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH</p></td>
+<td class="enum_member_description">
+<p>Skip the key and certificate matching check.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERTIFICATE-API-V2:CAPS"></a>GNUTLS_CERTIFICATE_API_V2</p></td>
+<td class="enum_member_description">
+<p>If set the gnutls_certificate_set_*key* functions will return an index of the added key pair instead of zero.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERTIFICATE-SKIP-OCSP-RESPONSE-CHECK:CAPS"></a>GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK</p></td>
+<td class="enum_member_description">
+<p>If set, the gnutls_certificate_set_ocsp_status_request_file
+function, will not check whether the response set matches any of the certificates.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CERTIFICATE-VERIFY-CRLS:CAPS"></a>GNUTLS_CERTIFICATE_VERIFY_CRLS</p></td>
+<td class="enum_member_description">
+<p>This will enable CRL verification when added in the certificate structure.
+When used, it requires CAs to be added before CRLs.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ocsp-data-st"></a><h3>gnutls_ocsp_data_st</h3>
+<pre class="programlisting">typedef struct {
+ unsigned int version; /* must be zero */
+ gnutls_datum_t response;
+ time_t exptime;
+ unsigned char padding[32];
+} gnutls_ocsp_data_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="giovec-t"></a><h3>giovec_t</h3>
+<pre class="programlisting">typedef struct iovec giovec_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-random-art-t"></a><h3>enum gnutls_random_art_t</h3>
+<p>Enumeration of different random art types.</p>
+<div class="refsect3">
+<a name="gnutls-random-art-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-RANDOM-ART-OPENSSH:CAPS"></a>GNUTLS_RANDOM_ART_OPENSSH</p></td>
+<td class="enum_member_description">
+<p>OpenSSH-style random art.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-IDNA-FORCE-2008:CAPS"></a><h3>GNUTLS_IDNA_FORCE_2008</h3>
+<pre class="programlisting">#define GNUTLS_IDNA_FORCE_2008 (1&lt;&lt;1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-base64-encode-alloc"></a><h3>gnutls_srp_base64_encode_alloc</h3>
+<pre class="programlisting">#define gnutls_srp_base64_encode_alloc gnutls_srp_base64_encode2
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-srp-base64-decode-alloc"></a><h3>gnutls_srp_base64_decode_alloc</h3>
+<pre class="programlisting">#define gnutls_srp_base64_decode_alloc gnutls_srp_base64_decode2
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-psk-key-flags"></a><h3>enum gnutls_psk_key_flags</h3>
+<p>Enumeration of different PSK key flags.</p>
+<div class="refsect3">
+<a name="gnutls-psk-key-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-PSK-KEY-RAW:CAPS"></a>GNUTLS_PSK_KEY_RAW</p></td>
+<td class="enum_member_description">
+<p>PSK-key in raw format.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PSK-KEY-HEX:CAPS"></a>GNUTLS_PSK_KEY_HEX</p></td>
+<td class="enum_member_description">
+<p>PSK-key in hex format.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-subject-alt-name-t"></a><h3>enum gnutls_x509_subject_alt_name_t</h3>
+<p>Enumeration of different subject alternative names types.</p>
+<div class="refsect3">
+<a name="gnutls-x509-subject-alt-name-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-SAN-DNSNAME:CAPS"></a>GNUTLS_SAN_DNSNAME</p></td>
+<td class="enum_member_description">
+<p>DNS-name SAN.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-RFC822NAME:CAPS"></a>GNUTLS_SAN_RFC822NAME</p></td>
+<td class="enum_member_description">
+<p>E-mail address SAN.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-URI:CAPS"></a>GNUTLS_SAN_URI</p></td>
+<td class="enum_member_description">
+<p>URI SAN.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-IPADDRESS:CAPS"></a>GNUTLS_SAN_IPADDRESS</p></td>
+<td class="enum_member_description">
+<p>IP address SAN.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-OTHERNAME:CAPS"></a>GNUTLS_SAN_OTHERNAME</p></td>
+<td class="enum_member_description">
+<p>OtherName SAN.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-DN:CAPS"></a>GNUTLS_SAN_DN</p></td>
+<td class="enum_member_description">
+<p>DN SAN.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-REGISTERED-ID:CAPS"></a>GNUTLS_SAN_REGISTERED_ID</p></td>
+<td class="enum_member_description">
+<p>RegisteredID.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-MAX:CAPS"></a>GNUTLS_SAN_MAX</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-OTHERNAME-XMPP:CAPS"></a>GNUTLS_SAN_OTHERNAME_XMPP</p></td>
+<td class="enum_member_description">
+<p>Virtual SAN, used by certain functions for convenience.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-OTHERNAME-KRB5PRINCIPAL:CAPS"></a>GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL</p></td>
+<td class="enum_member_description">
+<p>Virtual SAN, used by certain functions for convenience.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-SAN-OTHERNAME-MSUSERPRINCIPAL:CAPS"></a>GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL</p></td>
+<td class="enum_member_description">
+<p>Virtual SAN, used by certain functions for convenience.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-t"></a><h3>gnutls_openpgp_crt_t</h3>
+<pre class="programlisting">typedef struct gnutls_openpgp_crt_int *gnutls_openpgp_crt_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-t"></a><h3>gnutls_openpgp_privkey_t</h3>
+<pre class="programlisting">typedef struct gnutls_openpgp_privkey_int *gnutls_openpgp_privkey_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-t"></a><h3>gnutls_pkcs11_privkey_t</h3>
+<pre class="programlisting">typedef struct gnutls_pkcs11_privkey_st *gnutls_pkcs11_privkey_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-type-t"></a><h3>enum gnutls_privkey_type_t</h3>
+<p>Enumeration of different private key types.</p>
+<div class="refsect3">
+<a name="gnutls-privkey-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-PRIVKEY-X509:CAPS"></a>GNUTLS_PRIVKEY_X509</p></td>
+<td class="enum_member_description">
+<p>X.509 private key, <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>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-OPENPGP:CAPS"></a>GNUTLS_PRIVKEY_OPENPGP</p></td>
+<td class="enum_member_description">
+<p>OpenPGP private key, <a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-PKCS11:CAPS"></a>GNUTLS_PRIVKEY_PKCS11</p></td>
+<td class="enum_member_description">
+<p>PKCS11 private key, <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>.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PRIVKEY-EXT:CAPS"></a>GNUTLS_PRIVKEY_EXT</p></td>
+<td class="enum_member_description">
+<p>External private key, operating using callbacks.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-retr2-st"></a><h3>gnutls_retr2_st</h3>
+<pre class="programlisting">typedef struct {
+ gnutls_certificate_type_t cert_type;
+ gnutls_privkey_type_t key_type;
+
+ union {
+ gnutls_x509_crt_t *x509;
+ gnutls_openpgp_crt_t pgp;
+ } cert;
+ unsigned int ncerts; /* one for pgp keys */
+
+ union {
+ gnutls_x509_privkey_t x509;
+ gnutls_openpgp_privkey_t pgp;
+ gnutls_pkcs11_privkey_t pkcs11;
+ } key;
+
+ unsigned int deinit_all; /* if non zero all keys will be deinited */
+} gnutls_retr2_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pem-base64-encode-alloc"></a><h3>gnutls_pem_base64_encode_alloc</h3>
+<pre class="programlisting">#define gnutls_pem_base64_encode_alloc gnutls_pem_base64_encode2
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pem-base64-decode-alloc"></a><h3>gnutls_pem_base64_decode_alloc</h3>
+<pre class="programlisting">#define gnutls_pem_base64_decode_alloc gnutls_pem_base64_decode2
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS"></a><h3>GNUTLS_KEY_DIGITAL_SIGNATURE</h3>
+<pre class="programlisting">#define GNUTLS_KEY_DIGITAL_SIGNATURE 128
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-NON-REPUDIATION:CAPS"></a><h3>GNUTLS_KEY_NON_REPUDIATION</h3>
+<pre class="programlisting">#define GNUTLS_KEY_NON_REPUDIATION 64
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS"></a><h3>GNUTLS_KEY_KEY_ENCIPHERMENT</h3>
+<pre class="programlisting">#define GNUTLS_KEY_KEY_ENCIPHERMENT 32
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS"></a><h3>GNUTLS_KEY_DATA_ENCIPHERMENT</h3>
+<pre class="programlisting">#define GNUTLS_KEY_DATA_ENCIPHERMENT 16
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-KEY-AGREEMENT:CAPS"></a><h3>GNUTLS_KEY_KEY_AGREEMENT</h3>
+<pre class="programlisting">#define GNUTLS_KEY_KEY_AGREEMENT 8
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-KEY-CERT-SIGN:CAPS"></a><h3>GNUTLS_KEY_KEY_CERT_SIGN</h3>
+<pre class="programlisting">#define GNUTLS_KEY_KEY_CERT_SIGN 4
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-CRL-SIGN:CAPS"></a><h3>GNUTLS_KEY_CRL_SIGN</h3>
+<pre class="programlisting">#define GNUTLS_KEY_CRL_SIGN 2
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-ENCIPHER-ONLY:CAPS"></a><h3>GNUTLS_KEY_ENCIPHER_ONLY</h3>
+<pre class="programlisting">#define GNUTLS_KEY_ENCIPHER_ONLY 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KEY-DECIPHER-ONLY:CAPS"></a><h3>GNUTLS_KEY_DECIPHER_ONLY</h3>
+<pre class="programlisting">#define GNUTLS_KEY_DECIPHER_ONLY 32768
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-t"></a><h3>gnutls_tdb_t</h3>
+<pre class="programlisting">typedef struct gnutls_tdb_int *gnutls_tdb_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-SCOMMIT-FLAG-ALLOW-BROKEN:CAPS"></a><h3>GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN</h3>
+<pre class="programlisting">#define GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pin-flag-t"></a><h3>enum gnutls_pin_flag_t</h3>
+<p>Enumeration of different flags that are input to the PIN function.</p>
+<div class="refsect3">
+<a name="gnutls-pin-flag-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-PIN-USER:CAPS"></a>GNUTLS_PIN_USER</p></td>
+<td class="enum_member_description">
+<p>The PIN for the user.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PIN-SO:CAPS"></a>GNUTLS_PIN_SO</p></td>
+<td class="enum_member_description">
+<p>The PIN for the security officer (admin).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PIN-FINAL-TRY:CAPS"></a>GNUTLS_PIN_FINAL_TRY</p></td>
+<td class="enum_member_description">
+<p>This is the final try before blocking.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PIN-COUNT-LOW:CAPS"></a>GNUTLS_PIN_COUNT_LOW</p></td>
+<td class="enum_member_description">
+<p>Few tries remain before token blocks.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PIN-CONTEXT-SPECIFIC:CAPS"></a>GNUTLS_PIN_CONTEXT_SPECIFIC</p></td>
+<td class="enum_member_description">
+<p>The PIN is for a specific action and key like signing.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PIN-WRONG:CAPS"></a>GNUTLS_PIN_WRONG</p></td>
+<td class="enum_member_description">
+<p>Last given PIN was not correct.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-PIN-USER:CAPS"></a><h3>GNUTLS_PKCS11_PIN_USER</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_PIN_USER GNUTLS_PIN_USER
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-PIN-SO:CAPS"></a><h3>GNUTLS_PKCS11_PIN_SO</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_PIN_SO GNUTLS_PIN_SO
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-PIN-FINAL-TRY:CAPS"></a><h3>GNUTLS_PKCS11_PIN_FINAL_TRY</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_PIN_FINAL_TRY GNUTLS_PIN_FINAL_TRY
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-PIN-COUNT-LOW:CAPS"></a><h3>GNUTLS_PKCS11_PIN_COUNT_LOW</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_PIN_COUNT_LOW GNUTLS_PIN_COUNT_LOW
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-PIN-CONTEXT-SPECIFIC:CAPS"></a><h3>GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC GNUTLS_PIN_CONTEXT_SPECIFIC
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS11-PIN-WRONG:CAPS"></a><h3>GNUTLS_PKCS11_PIN_WRONG</h3>
+<pre class="programlisting">#define GNUTLS_PKCS11_PIN_WRONG GNUTLS_PIN_WRONG
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-buffer-t"></a><h3>gnutls_buffer_t</h3>
+<pre class="programlisting">typedef struct gnutls_buffer_st *gnutls_buffer_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-UTF8-IGNORE-ERRS:CAPS"></a><h3>GNUTLS_UTF8_IGNORE_ERRS</h3>
+<pre class="programlisting">#define GNUTLS_UTF8_IGNORE_ERRS 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-priv-data-t"></a><h3>gnutls_ext_priv_data_t</h3>
+<pre class="programlisting">typedef void *gnutls_ext_priv_data_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-EXT-RAW-FLAG-TLS-CLIENT-HELLO:CAPS"></a><h3>GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO</h3>
+<pre class="programlisting">#define GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-EXT-RAW-FLAG-DTLS-CLIENT-HELLO:CAPS"></a><h3>GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO</h3>
+<pre class="programlisting">#define GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO (1&lt;&lt;1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-parse-type-t"></a><h3>enum gnutls_ext_parse_type_t</h3>
+<p>Enumeration of different TLS extension parsing phases. The <em class="parameter"><code>gnutls_ext_parse_type_t</code></em>
+
+indicates the time/phase an extension is parsed during Client or Server hello parsing.</p>
+<div class="refsect3">
+<a name="gnutls-ext-parse-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-EXT-ANY:CAPS"></a>GNUTLS_EXT_ANY</p></td>
+<td class="enum_member_description">
+<p>Any extension type (should not be used as it is used only internally).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-APPLICATION:CAPS"></a>GNUTLS_EXT_APPLICATION</p></td>
+<td class="enum_member_description">
+<p>Parsed after <em class="parameter"><code>GNUTLS_EXT_MANDATORY</code></em>
+</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-TLS:CAPS"></a>GNUTLS_EXT_TLS</p></td>
+<td class="enum_member_description">
+<p>TLS-internal extensions, parsed after <em class="parameter"><code>GNUTLS_EXT_APPLICATION</code></em>
+.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-MANDATORY:CAPS"></a>GNUTLS_EXT_MANDATORY</p></td>
+<td class="enum_member_description">
+<p>Parsed after <em class="parameter"><code>GNUTLS_EXT_VERSION_NEG</code></em>
+ and even when resuming.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-NONE:CAPS"></a>GNUTLS_EXT_NONE</p></td>
+<td class="enum_member_description">
+<p>Never to be parsed</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-VERSION-NEG:CAPS"></a>GNUTLS_EXT_VERSION_NEG</p></td>
+<td class="enum_member_description">
+<p>Extensions to be parsed first for TLS version negotiation.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-ext-flags-t"></a><h3>enum gnutls_ext_flags_t</h3>
+<p>Enumeration of different TLS extension registration flags.</p>
+<div class="refsect3">
+<a name="gnutls-ext-flags-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-EXT-FLAG-OVERRIDE-INTERNAL:CAPS"></a>GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL</p></td>
+<td class="enum_member_description">
+<p>If specified the extension registered will override the internal; this does not work with extensions existing prior to 3.6.0.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-CLIENT-HELLO:CAPS"></a>GNUTLS_EXT_FLAG_CLIENT_HELLO</p></td>
+<td class="enum_member_description">
+<p>This extension can be present in a client hello</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-TLS12-SERVER-HELLO:CAPS"></a>GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO</p></td>
+<td class="enum_member_description">
+<p>This extension can be present in a TLS1.2 or earlier server hello</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-TLS13-SERVER-HELLO:CAPS"></a>GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO</p></td>
+<td class="enum_member_description">
+<p>This extension can be present in a TLS1.3 server hello</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-EE:CAPS"></a>GNUTLS_EXT_FLAG_EE</p></td>
+<td class="enum_member_description">
+<p>This extension can be present in encrypted extensions message</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-HRR:CAPS"></a>GNUTLS_EXT_FLAG_HRR</p></td>
+<td class="enum_member_description">
+<p>This extension can be present in hello retry request message</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-IGNORE-CLIENT-REQUEST:CAPS"></a>GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST</p></td>
+<td class="enum_member_description">
+<p>When flag is present, this extension will be send even if the client didn't advertise it. An extension of this type is the Cookie TLS1.3 extension.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-TLS:CAPS"></a>GNUTLS_EXT_FLAG_TLS</p></td>
+<td class="enum_member_description">
+<p>This extension can be present under TLS; otherwise ignored.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-EXT-FLAG-DTLS:CAPS"></a>GNUTLS_EXT_FLAG_DTLS</p></td>
+<td class="enum_member_description">
+<p>This extension can be present under DTLS; otherwise ignored.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-anti-replay-t"></a><h3>gnutls_anti_replay_t</h3>
+<pre class="programlisting">typedef struct gnutls_anti_replay_st *gnutls_anti_replay_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-record-encryption-level-t"></a><h3>enum gnutls_record_encryption_level_t</h3>
+<p>Enumeration of different levels of record encryption currently in place.
+This is used by <a class="link" href="gnutls-gnutls.html#gnutls-handshake-set-read-function" title="gnutls_handshake_set_read_function ()"><code class="function">gnutls_handshake_set_read_function()</code></a> and
+<a class="link" href="gnutls-gnutls.html#gnutls-handshake-write" title="gnutls_handshake_write ()"><code class="function">gnutls_handshake_write()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-record-encryption-level-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-ENCRYPTION-LEVEL-INITIAL:CAPS"></a>GNUTLS_ENCRYPTION_LEVEL_INITIAL</p></td>
+<td class="enum_member_description">
+<p>initial level that doesn't involve any
+encryption</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ENCRYPTION-LEVEL-EARLY:CAPS"></a>GNUTLS_ENCRYPTION_LEVEL_EARLY</p></td>
+<td class="enum_member_description">
+<p>early traffic secret is installed</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ENCRYPTION-LEVEL-HANDSHAKE:CAPS"></a>GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE</p></td>
+<td class="enum_member_description">
+<p>handshake traffic secret is installed</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-ENCRYPTION-LEVEL-APPLICATION:CAPS"></a>GNUTLS_ENCRYPTION_LEVEL_APPLICATION</p></td>
+<td class="enum_member_description">
+<p>application traffic secret is installed</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips-mode-t"></a><h3>enum gnutls_fips_mode_t</h3>
+<p>Enumeration of different operational modes under FIPS140-2.</p>
+<div class="refsect3">
+<a name="gnutls-fips-mode-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-FIPS140-DISABLED:CAPS"></a>GNUTLS_FIPS140_DISABLED</p></td>
+<td class="enum_member_description">
+<p>The FIPS140-2 mode is disabled.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FIPS140-STRICT:CAPS"></a>GNUTLS_FIPS140_STRICT</p></td>
+<td class="enum_member_description">
+<p>The default mode; all forbidden operations will cause an
+operation failure via error code.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FIPS140-SELFTESTS:CAPS"></a>GNUTLS_FIPS140_SELFTESTS</p></td>
+<td class="enum_member_description">
+<p>A transient state during library initialization. That state
+ cannot be set or seen by applications.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FIPS140-LAX:CAPS"></a>GNUTLS_FIPS140_LAX</p></td>
+<td class="enum_member_description">
+<p>The library still uses the FIPS140-2 relevant algorithms but all
+forbidden by FIPS140-2 operations are allowed; this is useful when the
+application is aware of the followed security policy, and needs
+to utilize disallowed operations for other reasons (e.g., compatibility).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FIPS140-LOG:CAPS"></a>GNUTLS_FIPS140_LOG</p></td>
+<td class="enum_member_description">
+<p>Similarly to <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-LAX:CAPS"><code class="literal">GNUTLS_FIPS140_LAX</code></a>, it allows forbidden operations; any use of them results
+to a message to the audit callback functions.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FIPS140-SET-MODE-THREAD:CAPS"></a><h3>GNUTLS_FIPS140_SET_MODE_THREAD</h3>
+<pre class="programlisting">#define GNUTLS_FIPS140_SET_MODE_THREAD 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-context-t"></a><h3>gnutls_fips140_context_t</h3>
+<pre class="programlisting">typedef struct gnutls_fips140_context_st *gnutls_fips140_context_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-fips140-operation-state-t"></a><h3>enum gnutls_fips140_operation_state_t</h3>
+<p>The FIPS operation state set by the preceding operation.</p>
+<p>There are state transition rules among the enum values:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>When the context is attached to a thread, it will be set to reset
+to the <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-INITIAL:CAPS"><code class="literal">GNUTLS_FIPS140_OP_INITIAL</code></a> state</p></li>
+<li class="listitem"><p>From the <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-INITIAL:CAPS"><code class="literal">GNUTLS_FIPS140_OP_INITIAL</code></a> state, the context can
+transition to either <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-APPROVED:CAPS"><code class="literal">GNUTLS_FIPS140_OP_APPROVED</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-NOT-APPROVED:CAPS"><code class="literal">GNUTLS_FIPS140_OP_NOT_APPROVED</code></a>, or <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-ERROR:CAPS"><code class="literal">GNUTLS_FIPS140_OP_ERROR</code></a></p></li>
+<li class="listitem"><p>From the <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-APPROVED:CAPS"><code class="literal">GNUTLS_FIPS140_OP_APPROVED</code></a> state, the context can
+transition to <a class="link" href="gnutls-gnutls.html#GNUTLS-FIPS140-OP-NOT-APPROVED:CAPS"><code class="literal">GNUTLS_FIPS140_OP_NOT_APPROVED</code></a></p></li>
+<li class="listitem"><p>All other transitions are prohibited.</p></li>
+</ul></div>
+<div class="refsect3">
+<a name="gnutls-fips140-operation-state-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-FIPS140-OP-INITIAL:CAPS"></a>GNUTLS_FIPS140_OP_INITIAL</p></td>
+<td class="enum_member_description">
+<p>no previous operation has done</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FIPS140-OP-APPROVED:CAPS"></a>GNUTLS_FIPS140_OP_APPROVED</p></td>
+<td class="enum_member_description">
+<p>the previous operation was FIPS approved</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FIPS140-OP-NOT-APPROVED:CAPS"></a>GNUTLS_FIPS140_OP_NOT_APPROVED</p></td>
+<td class="enum_member_description">
+<p>the previous operation was not FIPS approved</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-FIPS140-OP-ERROR:CAPS"></a>GNUTLS_FIPS140_OP_ERROR</p></td>
+<td class="enum_member_description">
+<p>the previous operation caused an error regardless of FIPS</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SUCCESS:CAPS"></a><h3>GNUTLS_E_SUCCESS</h3>
+<pre class="programlisting">#define GNUTLS_E_SUCCESS 0
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS"></a><h3>GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM -3
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS"></a><h3>GNUTLS_E_UNKNOWN_CIPHER_TYPE</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_CIPHER_TYPE -6
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-LARGE-PACKET:CAPS"></a><h3>GNUTLS_E_LARGE_PACKET</h3>
+<pre class="programlisting">#define GNUTLS_E_LARGE_PACKET -7
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS"></a><h3>GNUTLS_E_UNSUPPORTED_VERSION_PACKET</h3>
+<pre class="programlisting">#define GNUTLS_E_UNSUPPORTED_VERSION_PACKET -8 /* GNUTLS_A_PROTOCOL_VERSION */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TLS-PACKET-DECODING-ERROR:CAPS"></a><h3>GNUTLS_E_TLS_PACKET_DECODING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_TLS_PACKET_DECODING_ERROR GNUTLS_E_UNEXPECTED_PACKET_LENGTH
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS"></a><h3>GNUTLS_E_UNEXPECTED_PACKET_LENGTH</h3>
+<pre class="programlisting">#define GNUTLS_E_UNEXPECTED_PACKET_LENGTH -9 /* GNUTLS_A_DECODE_ERROR */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INVALID-SESSION:CAPS"></a><h3>GNUTLS_E_INVALID_SESSION</h3>
+<pre class="programlisting">#define GNUTLS_E_INVALID_SESSION -10
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS"></a><h3>GNUTLS_E_FATAL_ALERT_RECEIVED</h3>
+<pre class="programlisting">#define GNUTLS_E_FATAL_ALERT_RECEIVED -12
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNEXPECTED-PACKET:CAPS"></a><h3>GNUTLS_E_UNEXPECTED_PACKET</h3>
+<pre class="programlisting">#define GNUTLS_E_UNEXPECTED_PACKET -15 /* GNUTLS_A_UNEXPECTED_MESSAGE */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS"></a><h3>GNUTLS_E_WARNING_ALERT_RECEIVED</h3>
+<pre class="programlisting">#define GNUTLS_E_WARNING_ALERT_RECEIVED -16
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS"></a><h3>GNUTLS_E_ERROR_IN_FINISHED_PACKET</h3>
+<pre class="programlisting">#define GNUTLS_E_ERROR_IN_FINISHED_PACKET -18
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS"></a><h3>GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET</h3>
+<pre class="programlisting">#define GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET -19
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS"></a><h3>GNUTLS_E_UNKNOWN_CIPHER_SUITE</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_CIPHER_SUITE -21 /* GNUTLS_A_HANDSHAKE_FAILURE */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNWANTED-ALGORITHM:CAPS"></a><h3>GNUTLS_E_UNWANTED_ALGORITHM</h3>
+<pre class="programlisting">#define GNUTLS_E_UNWANTED_ALGORITHM -22
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-MPI-SCAN-FAILED:CAPS"></a><h3>GNUTLS_E_MPI_SCAN_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_MPI_SCAN_FAILED -23
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-DECRYPTION-FAILED:CAPS"></a><h3>GNUTLS_E_DECRYPTION_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_DECRYPTION_FAILED -24 /* GNUTLS_A_DECRYPTION_FAILED, GNUTLS_A_BAD_RECORD_MAC */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-MEMORY-ERROR:CAPS"></a><h3>GNUTLS_E_MEMORY_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_MEMORY_ERROR -25
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-DECOMPRESSION-FAILED:CAPS"></a><h3>GNUTLS_E_DECOMPRESSION_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_DECOMPRESSION_FAILED -26 /* GNUTLS_A_DECOMPRESSION_FAILURE */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-COMPRESSION-FAILED:CAPS"></a><h3>GNUTLS_E_COMPRESSION_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_COMPRESSION_FAILED -27
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-AGAIN:CAPS"></a><h3>GNUTLS_E_AGAIN</h3>
+<pre class="programlisting">#define GNUTLS_E_AGAIN -28
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-EXPIRED:CAPS"></a><h3>GNUTLS_E_EXPIRED</h3>
+<pre class="programlisting">#define GNUTLS_E_EXPIRED -29
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-DB-ERROR:CAPS"></a><h3>GNUTLS_E_DB_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_DB_ERROR -30
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SRP-PWD-ERROR:CAPS"></a><h3>GNUTLS_E_SRP_PWD_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_SRP_PWD_ERROR GNUTLS_E_KEYFILE_ERROR
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-KEYFILE-ERROR:CAPS"></a><h3>GNUTLS_E_KEYFILE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_KEYFILE_ERROR -31
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS"></a><h3>GNUTLS_E_INSUFFICIENT_CREDENTIALS</h3>
+<pre class="programlisting">#define GNUTLS_E_INSUFFICIENT_CREDENTIALS -32
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS"></a><h3>GNUTLS_E_INSUFICIENT_CREDENTIALS</h3>
+<pre class="programlisting">#define GNUTLS_E_INSUFICIENT_CREDENTIALS GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INSUFFICIENT-CRED:CAPS"></a><h3>GNUTLS_E_INSUFFICIENT_CRED</h3>
+<pre class="programlisting">#define GNUTLS_E_INSUFFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INSUFICIENT-CRED:CAPS"></a><h3>GNUTLS_E_INSUFICIENT_CRED</h3>
+<pre class="programlisting">#define GNUTLS_E_INSUFICIENT_CRED GNUTLS_E_INSUFFICIENT_CREDENTIALS /* for backwards compatibility only */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-HASH-FAILED:CAPS"></a><h3>GNUTLS_E_HASH_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_HASH_FAILED -33
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-BASE64-DECODING-ERROR:CAPS"></a><h3>GNUTLS_E_BASE64_DECODING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_BASE64_DECODING_ERROR -34
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-MPI-PRINT-FAILED:CAPS"></a><h3>GNUTLS_E_MPI_PRINT_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_MPI_PRINT_FAILED -35
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-REHANDSHAKE:CAPS"></a><h3>GNUTLS_E_REHANDSHAKE</h3>
+<pre class="programlisting">#define GNUTLS_E_REHANDSHAKE -37 /* GNUTLS_A_NO_RENEGOTIATION */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-GOT-APPLICATION-DATA:CAPS"></a><h3>GNUTLS_E_GOT_APPLICATION_DATA</h3>
+<pre class="programlisting">#define GNUTLS_E_GOT_APPLICATION_DATA -38
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-RECORD-LIMIT-REACHED:CAPS"></a><h3>GNUTLS_E_RECORD_LIMIT_REACHED</h3>
+<pre class="programlisting">#define GNUTLS_E_RECORD_LIMIT_REACHED -39
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ENCRYPTION-FAILED:CAPS"></a><h3>GNUTLS_E_ENCRYPTION_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_ENCRYPTION_FAILED -40
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS"></a><h3>GNUTLS_E_PK_ENCRYPTION_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_ENCRYPTION_FAILED -44
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-DECRYPTION-FAILED:CAPS"></a><h3>GNUTLS_E_PK_DECRYPTION_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_DECRYPTION_FAILED -45
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-SIGN-FAILED:CAPS"></a><h3>GNUTLS_E_PK_SIGN_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_SIGN_FAILED -46
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS"></a><h3>GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION</h3>
+<pre class="programlisting">#define GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION -47
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-KEY-USAGE-VIOLATION:CAPS"></a><h3>GNUTLS_E_KEY_USAGE_VIOLATION</h3>
+<pre class="programlisting">#define GNUTLS_E_KEY_USAGE_VIOLATION -48
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS"></a><h3>GNUTLS_E_NO_CERTIFICATE_FOUND</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_CERTIFICATE_FOUND -49 /* GNUTLS_A_BAD_CERTIFICATE */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INVALID-REQUEST:CAPS"></a><h3>GNUTLS_E_INVALID_REQUEST</h3>
+<pre class="programlisting">#define GNUTLS_E_INVALID_REQUEST -50
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS"></a><h3>GNUTLS_E_SHORT_MEMORY_BUFFER</h3>
+<pre class="programlisting">#define GNUTLS_E_SHORT_MEMORY_BUFFER -51
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INTERRUPTED:CAPS"></a><h3>GNUTLS_E_INTERRUPTED</h3>
+<pre class="programlisting">#define GNUTLS_E_INTERRUPTED -52
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PUSH-ERROR:CAPS"></a><h3>GNUTLS_E_PUSH_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PUSH_ERROR -53
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PULL-ERROR:CAPS"></a><h3>GNUTLS_E_PULL_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PULL_ERROR -54
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS"></a><h3>GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER</h3>
+<pre class="programlisting">#define GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER -55 /* GNUTLS_A_ILLEGAL_PARAMETER */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS"></a><h3>GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</h3>
+<pre class="programlisting">#define GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE -56
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS1-WRONG-PAD:CAPS"></a><h3>GNUTLS_E_PKCS1_WRONG_PAD</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS1_WRONG_PAD -57
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS"></a><h3>GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION</h3>
+<pre class="programlisting">#define GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION -58
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INTERNAL-ERROR:CAPS"></a><h3>GNUTLS_E_INTERNAL_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_INTERNAL_ERROR -59
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS"></a><h3>GNUTLS_E_DH_PRIME_UNACCEPTABLE</h3>
+<pre class="programlisting">#define GNUTLS_E_DH_PRIME_UNACCEPTABLE -63
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-FILE-ERROR:CAPS"></a><h3>GNUTLS_E_FILE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_FILE_ERROR -64
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS"></a><h3>GNUTLS_E_TOO_MANY_EMPTY_PACKETS</h3>
+<pre class="programlisting">#define GNUTLS_E_TOO_MANY_EMPTY_PACKETS -78
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS"></a><h3>GNUTLS_E_UNKNOWN_PK_ALGORITHM</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_PK_ALGORITHM -80
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TOO-MANY-HANDSHAKE-PACKETS:CAPS"></a><h3>GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS</h3>
+<pre class="programlisting">#define GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS -81
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-RECEIVED-DISALLOWED-NAME:CAPS"></a><h3>GNUTLS_E_RECEIVED_DISALLOWED_NAME</h3>
+<pre class="programlisting">#define GNUTLS_E_RECEIVED_DISALLOWED_NAME -82 /* GNUTLS_A_ILLEGAL_PARAMETER */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CERTIFICATE-REQUIRED:CAPS"></a><h3>GNUTLS_E_CERTIFICATE_REQUIRED</h3>
+<pre class="programlisting">#define GNUTLS_E_CERTIFICATE_REQUIRED -112 /* GNUTLS_A_CERTIFICATE_REQUIRED */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS"></a><h3>GNUTLS_E_NO_TEMPORARY_RSA_PARAMS</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_TEMPORARY_RSA_PARAMS -84
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS"></a><h3>GNUTLS_E_NO_COMPRESSION_ALGORITHMS</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_COMPRESSION_ALGORITHMS -86
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-CIPHER-SUITES:CAPS"></a><h3>GNUTLS_E_NO_CIPHER_SUITES</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_CIPHER_SUITES -87
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS"></a><h3>GNUTLS_E_OPENPGP_GETKEY_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_OPENPGP_GETKEY_FAILED -88
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS"></a><h3>GNUTLS_E_PK_SIG_VERIFY_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_SIG_VERIFY_FAILED -89
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS"></a><h3>GNUTLS_E_ILLEGAL_SRP_USERNAME</h3>
+<pre class="programlisting">#define GNUTLS_E_ILLEGAL_SRP_USERNAME -90
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS"></a><h3>GNUTLS_E_SRP_PWD_PARSING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_SRP_PWD_PARSING_ERROR GNUTLS_E_KEYFILE_PARSING_ERROR
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-KEYFILE-PARSING-ERROR:CAPS"></a><h3>GNUTLS_E_KEYFILE_PARSING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_KEYFILE_PARSING_ERROR -91
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS"></a><h3>GNUTLS_E_NO_TEMPORARY_DH_PARAMS</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_TEMPORARY_DH_PARAMS -93
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS"></a><h3>GNUTLS_E_ASN1_ELEMENT_NOT_FOUND</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_ELEMENT_NOT_FOUND -67
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS"></a><h3>GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND -68
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-DER-ERROR:CAPS"></a><h3>GNUTLS_E_ASN1_DER_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_DER_ERROR -69
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS"></a><h3>GNUTLS_E_ASN1_VALUE_NOT_FOUND</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_VALUE_NOT_FOUND -70
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-GENERIC-ERROR:CAPS"></a><h3>GNUTLS_E_ASN1_GENERIC_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_GENERIC_ERROR -71
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS"></a><h3>GNUTLS_E_ASN1_VALUE_NOT_VALID</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_VALUE_NOT_VALID -72
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-TAG-ERROR:CAPS"></a><h3>GNUTLS_E_ASN1_TAG_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_TAG_ERROR -73
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS"></a><h3>GNUTLS_E_ASN1_TAG_IMPLICIT</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_TAG_IMPLICIT -74
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS"></a><h3>GNUTLS_E_ASN1_TYPE_ANY_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_TYPE_ANY_ERROR -75
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS"></a><h3>GNUTLS_E_ASN1_SYNTAX_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_SYNTAX_ERROR -76
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-DER-OVERFLOW:CAPS"></a><h3>GNUTLS_E_ASN1_DER_OVERFLOW</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_DER_OVERFLOW -77
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OPENPGP-UID-REVOKED:CAPS"></a><h3>GNUTLS_E_OPENPGP_UID_REVOKED</h3>
+<pre class="programlisting">#define GNUTLS_E_OPENPGP_UID_REVOKED -79
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CERTIFICATE-ERROR:CAPS"></a><h3>GNUTLS_E_CERTIFICATE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_CERTIFICATE_ERROR -43
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS"></a><h3>GNUTLS_E_X509_CERTIFICATE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_X509_CERTIFICATE_ERROR GNUTLS_E_CERTIFICATE_ERROR
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS"></a><h3>GNUTLS_E_CERTIFICATE_KEY_MISMATCH</h3>
+<pre class="programlisting">#define GNUTLS_E_CERTIFICATE_KEY_MISMATCH -60
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS"></a><h3>GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE</h3>
+<pre class="programlisting">#define GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE -61 /* GNUTLS_A_UNSUPPORTED_CERTIFICATE */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-X509-UNKNOWN-SAN:CAPS"></a><h3>GNUTLS_E_X509_UNKNOWN_SAN</h3>
+<pre class="programlisting">#define GNUTLS_E_X509_UNKNOWN_SAN -62
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS"></a><h3>GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED</h3>
+<pre class="programlisting">#define GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED -94
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS"></a><h3>GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE</h3>
+<pre class="programlisting">#define GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE -95
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS"></a><h3>GNUTLS_E_UNKNOWN_HASH_ALGORITHM</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_HASH_ALGORITHM -96
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS"></a><h3>GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE -97
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS"></a><h3>GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE -98
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INVALID-PASSWORD:CAPS"></a><h3>GNUTLS_E_INVALID_PASSWORD</h3>
+<pre class="programlisting">#define GNUTLS_E_INVALID_PASSWORD -99
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-MAC-VERIFY-FAILED:CAPS"></a><h3>GNUTLS_E_MAC_VERIFY_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_MAC_VERIFY_FAILED -100 /* for PKCS #12 MAC */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CONSTRAINT-ERROR:CAPS"></a><h3>GNUTLS_E_CONSTRAINT_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_CONSTRAINT_ERROR -101
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS"></a><h3>GNUTLS_E_WARNING_IA_IPHF_RECEIVED</h3>
+<pre class="programlisting">#define GNUTLS_E_WARNING_IA_IPHF_RECEIVED -102
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS"></a><h3>GNUTLS_E_WARNING_IA_FPHF_RECEIVED</h3>
+<pre class="programlisting">#define GNUTLS_E_WARNING_IA_FPHF_RECEIVED -103
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-IA-VERIFY-FAILED:CAPS"></a><h3>GNUTLS_E_IA_VERIFY_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_IA_VERIFY_FAILED -104
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-ALGORITHM:CAPS"></a><h3>GNUTLS_E_UNKNOWN_ALGORITHM</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_ALGORITHM -105
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS"></a><h3>GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM</h3>
+<pre class="programlisting">#define GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM -106
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS"></a><h3>GNUTLS_E_SAFE_RENEGOTIATION_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_SAFE_RENEGOTIATION_FAILED -107
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS"></a><h3>GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED</h3>
+<pre class="programlisting">#define GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED -108
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS"></a><h3>GNUTLS_E_UNKNOWN_SRP_USERNAME</h3>
+<pre class="programlisting">#define GNUTLS_E_UNKNOWN_SRP_USERNAME -109
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PREMATURE-TERMINATION:CAPS"></a><h3>GNUTLS_E_PREMATURE_TERMINATION</h3>
+<pre class="programlisting">#define GNUTLS_E_PREMATURE_TERMINATION -110
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-MALFORMED-CIDR:CAPS"></a><h3>GNUTLS_E_MALFORMED_CIDR</h3>
+<pre class="programlisting">#define GNUTLS_E_MALFORMED_CIDR -111
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-BASE64-ENCODING-ERROR:CAPS"></a><h3>GNUTLS_E_BASE64_ENCODING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_BASE64_ENCODING_ERROR -201
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS"></a><h3>GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY</h3>
+<pre class="programlisting">#define GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY -202 /* obsolete */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS"></a><h3>GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY</h3>
+<pre class="programlisting">#define GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY -202
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS"></a><h3>GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY</h3>
+<pre class="programlisting">#define GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY -203
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS"></a><h3>GNUTLS_E_OPENPGP_KEYRING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_OPENPGP_KEYRING_ERROR -204
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-X509-UNSUPPORTED-OID:CAPS"></a><h3>GNUTLS_E_X509_UNSUPPORTED_OID</h3>
+<pre class="programlisting">#define GNUTLS_E_X509_UNSUPPORTED_OID -205
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-RANDOM-FAILED:CAPS"></a><h3>GNUTLS_E_RANDOM_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_RANDOM_FAILED -206
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS"></a><h3>GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR -207
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS"></a><h3>GNUTLS_E_OPENPGP_SUBKEY_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_OPENPGP_SUBKEY_ERROR -208
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS"></a><h3>GNUTLS_E_CRYPTO_ALREADY_REGISTERED</h3>
+<pre class="programlisting">#define GNUTLS_E_CRYPTO_ALREADY_REGISTERED GNUTLS_E_ALREADY_REGISTERED
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ALREADY-REGISTERED:CAPS"></a><h3>GNUTLS_E_ALREADY_REGISTERED</h3>
+<pre class="programlisting">#define GNUTLS_E_ALREADY_REGISTERED -209
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS"></a><h3>GNUTLS_E_HANDSHAKE_TOO_LARGE</h3>
+<pre class="programlisting">#define GNUTLS_E_HANDSHAKE_TOO_LARGE -210
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS"></a><h3>GNUTLS_E_CRYPTODEV_IOCTL_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_CRYPTODEV_IOCTL_ERROR -211
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS"></a><h3>GNUTLS_E_CRYPTODEV_DEVICE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_CRYPTODEV_DEVICE_ERROR -212
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CHANNEL-BINDING-NOT-AVAILABLE:CAPS"></a><h3>GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE</h3>
+<pre class="programlisting">#define GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE -213
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-BAD-COOKIE:CAPS"></a><h3>GNUTLS_E_BAD_COOKIE</h3>
+<pre class="programlisting">#define GNUTLS_E_BAD_COOKIE -214
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OPENPGP-PREFERRED-KEY-ERROR:CAPS"></a><h3>GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR -215
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INCOMPAT-DSA-KEY-WITH-TLS-PROTOCOL:CAPS"></a><h3>GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL</h3>
+<pre class="programlisting">#define GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL -216
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INSUFFICIENT-SECURITY:CAPS"></a><h3>GNUTLS_E_INSUFFICIENT_SECURITY</h3>
+<pre class="programlisting">#define GNUTLS_E_INSUFFICIENT_SECURITY -217
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-HEARTBEAT-PONG-RECEIVED:CAPS"></a><h3>GNUTLS_E_HEARTBEAT_PONG_RECEIVED</h3>
+<pre class="programlisting">#define GNUTLS_E_HEARTBEAT_PONG_RECEIVED -292
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-HEARTBEAT-PING-RECEIVED:CAPS"></a><h3>GNUTLS_E_HEARTBEAT_PING_RECEIVED</h3>
+<pre class="programlisting">#define GNUTLS_E_HEARTBEAT_PING_RECEIVED -293
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNRECOGNIZED-NAME:CAPS"></a><h3>GNUTLS_E_UNRECOGNIZED_NAME</h3>
+<pre class="programlisting">#define GNUTLS_E_UNRECOGNIZED_NAME -294
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_ERROR -300
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-LOAD-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_LOAD_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_LOAD_ERROR -301
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PARSING-ERROR:CAPS"></a><h3>GNUTLS_E_PARSING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PARSING_ERROR -302
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-PIN-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_PIN_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_PIN_ERROR -303
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-SLOT-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_SLOT_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_SLOT_ERROR -305
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-LOCKING-ERROR:CAPS"></a><h3>GNUTLS_E_LOCKING_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_LOCKING_ERROR -306
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_ATTRIBUTE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_ATTRIBUTE_ERROR -307
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_DEVICE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_DEVICE_ERROR -308
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-DATA-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_DATA_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_DATA_ERROR -309
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR -310
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-KEY-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_KEY_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_KEY_ERROR -311
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS"></a><h3>GNUTLS_E_PKCS11_PIN_EXPIRED</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_PIN_EXPIRED -312
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-PIN-LOCKED:CAPS"></a><h3>GNUTLS_E_PKCS11_PIN_LOCKED</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_PIN_LOCKED -313
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-SESSION-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_SESSION_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_SESSION_ERROR -314
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_SIGNATURE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_SIGNATURE_ERROR -315
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_TOKEN_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_TOKEN_ERROR -316
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-USER-ERROR:CAPS"></a><h3>GNUTLS_E_PKCS11_USER_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_USER_ERROR -317
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CRYPTO-INIT-FAILED:CAPS"></a><h3>GNUTLS_E_CRYPTO_INIT_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_CRYPTO_INIT_FAILED -318
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TIMEDOUT:CAPS"></a><h3>GNUTLS_E_TIMEDOUT</h3>
+<pre class="programlisting">#define GNUTLS_E_TIMEDOUT -319
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-USER-ERROR:CAPS"></a><h3>GNUTLS_E_USER_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_USER_ERROR -320
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ECC-NO-SUPPORTED-CURVES:CAPS"></a><h3>GNUTLS_E_ECC_NO_SUPPORTED_CURVES</h3>
+<pre class="programlisting">#define GNUTLS_E_ECC_NO_SUPPORTED_CURVES -321
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ECC-UNSUPPORTED-CURVE:CAPS"></a><h3>GNUTLS_E_ECC_UNSUPPORTED_CURVE</h3>
+<pre class="programlisting">#define GNUTLS_E_ECC_UNSUPPORTED_CURVE -322
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PKCS11-REQUESTED-OBJECT-NOT-AVAILBLE:CAPS"></a><h3>GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE</h3>
+<pre class="programlisting">#define GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE -323
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CERTIFICATE-LIST-UNSORTED:CAPS"></a><h3>GNUTLS_E_CERTIFICATE_LIST_UNSORTED</h3>
+<pre class="programlisting">#define GNUTLS_E_CERTIFICATE_LIST_UNSORTED -324
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ILLEGAL-PARAMETER:CAPS"></a><h3>GNUTLS_E_ILLEGAL_PARAMETER</h3>
+<pre class="programlisting">#define GNUTLS_E_ILLEGAL_PARAMETER -325 /* GNUTLS_A_ILLEGAL_PARAMETER */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-PRIORITIES-WERE-SET:CAPS"></a><h3>GNUTLS_E_NO_PRIORITIES_WERE_SET</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_PRIORITIES_WERE_SET -326
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-X509-UNSUPPORTED-EXTENSION:CAPS"></a><h3>GNUTLS_E_X509_UNSUPPORTED_EXTENSION</h3>
+<pre class="programlisting">#define GNUTLS_E_X509_UNSUPPORTED_EXTENSION -327
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SESSION-EOF:CAPS"></a><h3>GNUTLS_E_SESSION_EOF</h3>
+<pre class="programlisting">#define GNUTLS_E_SESSION_EOF -328
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TPM-ERROR:CAPS"></a><h3>GNUTLS_E_TPM_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_TPM_ERROR -329
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TPM-KEY-PASSWORD-ERROR:CAPS"></a><h3>GNUTLS_E_TPM_KEY_PASSWORD_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_TPM_KEY_PASSWORD_ERROR -330
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TPM-SRK-PASSWORD-ERROR:CAPS"></a><h3>GNUTLS_E_TPM_SRK_PASSWORD_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_TPM_SRK_PASSWORD_ERROR -331
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TPM-SESSION-ERROR:CAPS"></a><h3>GNUTLS_E_TPM_SESSION_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_TPM_SESSION_ERROR -332
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TPM-KEY-NOT-FOUND:CAPS"></a><h3>GNUTLS_E_TPM_KEY_NOT_FOUND</h3>
+<pre class="programlisting">#define GNUTLS_E_TPM_KEY_NOT_FOUND -333
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TPM-UNINITIALIZED:CAPS"></a><h3>GNUTLS_E_TPM_UNINITIALIZED</h3>
+<pre class="programlisting">#define GNUTLS_E_TPM_UNINITIALIZED -334
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TPM-NO-LIB:CAPS"></a><h3>GNUTLS_E_TPM_NO_LIB</h3>
+<pre class="programlisting">#define GNUTLS_E_TPM_NO_LIB -335
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-CERTIFICATE-STATUS:CAPS"></a><h3>GNUTLS_E_NO_CERTIFICATE_STATUS</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_CERTIFICATE_STATUS -340
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OCSP-RESPONSE-ERROR:CAPS"></a><h3>GNUTLS_E_OCSP_RESPONSE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_OCSP_RESPONSE_ERROR -341
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-RANDOM-DEVICE-ERROR:CAPS"></a><h3>GNUTLS_E_RANDOM_DEVICE_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_RANDOM_DEVICE_ERROR -342
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-AUTH-ERROR:CAPS"></a><h3>GNUTLS_E_AUTH_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_AUTH_ERROR -343
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-APPLICATION-PROTOCOL:CAPS"></a><h3>GNUTLS_E_NO_APPLICATION_PROTOCOL</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_APPLICATION_PROTOCOL -344
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SOCKETS-INIT-ERROR:CAPS"></a><h3>GNUTLS_E_SOCKETS_INIT_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_SOCKETS_INIT_ERROR -345
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-KEY-IMPORT-FAILED:CAPS"></a><h3>GNUTLS_E_KEY_IMPORT_FAILED</h3>
+<pre class="programlisting">#define GNUTLS_E_KEY_IMPORT_FAILED -346
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INAPPROPRIATE-FALLBACK:CAPS"></a><h3>GNUTLS_E_INAPPROPRIATE_FALLBACK</h3>
+<pre class="programlisting">#define GNUTLS_E_INAPPROPRIATE_FALLBACK -347 /*GNUTLS_A_INAPPROPRIATE_FALLBACK*/
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CERTIFICATE-VERIFICATION-ERROR:CAPS"></a><h3>GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR -348
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PRIVKEY-VERIFICATION-ERROR:CAPS"></a><h3>GNUTLS_E_PRIVKEY_VERIFICATION_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PRIVKEY_VERIFICATION_ERROR -349
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNEXPECTED-EXTENSIONS-LENGTH:CAPS"></a><h3>GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH</h3>
+<pre class="programlisting">#define GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH -350 /*GNUTLS_A_DECODE_ERROR*/
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-EMBEDDED-NULL-IN-STRING:CAPS"></a><h3>GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING -351
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SELF-TEST-ERROR:CAPS"></a><h3>GNUTLS_E_SELF_TEST_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_SELF_TEST_ERROR -400
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-SELF-TEST:CAPS"></a><h3>GNUTLS_E_NO_SELF_TEST</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_SELF_TEST -401
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-LIB-IN-ERROR-STATE:CAPS"></a><h3>GNUTLS_E_LIB_IN_ERROR_STATE</h3>
+<pre class="programlisting">#define GNUTLS_E_LIB_IN_ERROR_STATE -402
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-GENERATION-ERROR:CAPS"></a><h3>GNUTLS_E_PK_GENERATION_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_GENERATION_ERROR -403
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-IDNA-ERROR:CAPS"></a><h3>GNUTLS_E_IDNA_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_IDNA_ERROR -404
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NEED-FALLBACK:CAPS"></a><h3>GNUTLS_E_NEED_FALLBACK</h3>
+<pre class="programlisting">#define GNUTLS_E_NEED_FALLBACK -405
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-SESSION-USER-ID-CHANGED:CAPS"></a><h3>GNUTLS_E_SESSION_USER_ID_CHANGED</h3>
+<pre class="programlisting">#define GNUTLS_E_SESSION_USER_ID_CHANGED -406
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-HANDSHAKE-DURING-FALSE-START:CAPS"></a><h3>GNUTLS_E_HANDSHAKE_DURING_FALSE_START</h3>
+<pre class="programlisting">#define GNUTLS_E_HANDSHAKE_DURING_FALSE_START -407
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNAVAILABLE-DURING-HANDSHAKE:CAPS"></a><h3>GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE</h3>
+<pre class="programlisting">#define GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE -408
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-INVALID-PUBKEY:CAPS"></a><h3>GNUTLS_E_PK_INVALID_PUBKEY</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_INVALID_PUBKEY -409
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-INVALID-PRIVKEY:CAPS"></a><h3>GNUTLS_E_PK_INVALID_PRIVKEY</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_INVALID_PRIVKEY -410
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NOT-YET-ACTIVATED:CAPS"></a><h3>GNUTLS_E_NOT_YET_ACTIVATED</h3>
+<pre class="programlisting">#define GNUTLS_E_NOT_YET_ACTIVATED -411
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INVALID-UTF8-STRING:CAPS"></a><h3>GNUTLS_E_INVALID_UTF8_STRING</h3>
+<pre class="programlisting">#define GNUTLS_E_INVALID_UTF8_STRING -412
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-EMBEDDED-DATA:CAPS"></a><h3>GNUTLS_E_NO_EMBEDDED_DATA</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_EMBEDDED_DATA -413
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INVALID-UTF8-EMAIL:CAPS"></a><h3>GNUTLS_E_INVALID_UTF8_EMAIL</h3>
+<pre class="programlisting">#define GNUTLS_E_INVALID_UTF8_EMAIL -414
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INVALID-PASSWORD-STRING:CAPS"></a><h3>GNUTLS_E_INVALID_PASSWORD_STRING</h3>
+<pre class="programlisting">#define GNUTLS_E_INVALID_PASSWORD_STRING -415
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CERTIFICATE-TIME-ERROR:CAPS"></a><h3>GNUTLS_E_CERTIFICATE_TIME_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_CERTIFICATE_TIME_ERROR -416
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-RECORD-OVERFLOW:CAPS"></a><h3>GNUTLS_E_RECORD_OVERFLOW</h3>
+<pre class="programlisting">#define GNUTLS_E_RECORD_OVERFLOW -417 /* GNUTLS_A_RECORD_OVERFLOW */
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-ASN1-TIME-ERROR:CAPS"></a><h3>GNUTLS_E_ASN1_TIME_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_ASN1_TIME_ERROR -418
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INCOMPATIBLE-SIG-WITH-KEY:CAPS"></a><h3>GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY</h3>
+<pre class="programlisting">#define GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY -419
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-INVALID-PUBKEY-PARAMS:CAPS"></a><h3>GNUTLS_E_PK_INVALID_PUBKEY_PARAMS</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_INVALID_PUBKEY_PARAMS -420
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-PK-NO-VALIDATION-PARAMS:CAPS"></a><h3>GNUTLS_E_PK_NO_VALIDATION_PARAMS</h3>
+<pre class="programlisting">#define GNUTLS_E_PK_NO_VALIDATION_PARAMS -421
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-OCSP-MISMATCH-WITH-CERTS:CAPS"></a><h3>GNUTLS_E_OCSP_MISMATCH_WITH_CERTS</h3>
+<pre class="programlisting">#define GNUTLS_E_OCSP_MISMATCH_WITH_CERTS -422
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-NO-COMMON-KEY-SHARE:CAPS"></a><h3>GNUTLS_E_NO_COMMON_KEY_SHARE</h3>
+<pre class="programlisting">#define GNUTLS_E_NO_COMMON_KEY_SHARE -423
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-REAUTH-REQUEST:CAPS"></a><h3>GNUTLS_E_REAUTH_REQUEST</h3>
+<pre class="programlisting">#define GNUTLS_E_REAUTH_REQUEST -424
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-TOO-MANY-MATCHES:CAPS"></a><h3>GNUTLS_E_TOO_MANY_MATCHES</h3>
+<pre class="programlisting">#define GNUTLS_E_TOO_MANY_MATCHES -425
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-CRL-VERIFICATION-ERROR:CAPS"></a><h3>GNUTLS_E_CRL_VERIFICATION_ERROR</h3>
+<pre class="programlisting">#define GNUTLS_E_CRL_VERIFICATION_ERROR -426
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-MISSING-EXTENSION:CAPS"></a><h3>GNUTLS_E_MISSING_EXTENSION</h3>
+<pre class="programlisting">#define GNUTLS_E_MISSING_EXTENSION -427
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-DB-ENTRY-EXISTS:CAPS"></a><h3>GNUTLS_E_DB_ENTRY_EXISTS</h3>
+<pre class="programlisting">#define GNUTLS_E_DB_ENTRY_EXISTS -428
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-EARLY-DATA-REJECTED:CAPS"></a><h3>GNUTLS_E_EARLY_DATA_REJECTED</h3>
+<pre class="programlisting">#define GNUTLS_E_EARLY_DATA_REJECTED -429
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-X509-DUPLICATE-EXTENSION:CAPS"></a><h3>GNUTLS_E_X509_DUPLICATE_EXTENSION</h3>
+<pre class="programlisting">#define GNUTLS_E_X509_DUPLICATE_EXTENSION -430
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS"></a><h3>GNUTLS_E_UNIMPLEMENTED_FEATURE</h3>
+<pre class="programlisting">#define GNUTLS_E_UNIMPLEMENTED_FEATURE -1250
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INT-RET-0:CAPS"></a><h3>GNUTLS_E_INT_RET_0</h3>
+<pre class="programlisting">#define GNUTLS_E_INT_RET_0 -1251
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-INT-CHECK-AGAIN:CAPS"></a><h3>GNUTLS_E_INT_CHECK_AGAIN</h3>
+<pre class="programlisting">#define GNUTLS_E_INT_CHECK_AGAIN -1252
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-APPLICATION-ERROR-MAX:CAPS"></a><h3>GNUTLS_E_APPLICATION_ERROR_MAX</h3>
+<pre class="programlisting">#define GNUTLS_E_APPLICATION_ERROR_MAX -65000
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-E-APPLICATION-ERROR-MIN:CAPS"></a><h3>GNUTLS_E_APPLICATION_ERROR_MIN</h3>
+<pre class="programlisting">#define GNUTLS_E_APPLICATION_ERROR_MIN -65500
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-credentials-st"></a><h3>struct gnutls_certificate_credentials_st</h3>
+<pre class="programlisting">struct gnutls_certificate_credentials_st;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-dh-params-int"></a><h3>struct gnutls_dh_params_int</h3>
+<pre class="programlisting">struct gnutls_dh_params_int;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-int"></a><h3>struct gnutls_openpgp_crt_int</h3>
+<pre class="programlisting">struct gnutls_openpgp_crt_int;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-int"></a><h3>struct gnutls_openpgp_keyring_int</h3>
+<pre class="programlisting">struct gnutls_openpgp_keyring_int;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-int"></a><h3>struct gnutls_openpgp_privkey_int</h3>
+<pre class="programlisting">struct gnutls_openpgp_privkey_int;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs11-privkey-st"></a><h3>struct gnutls_pkcs11_privkey_st</h3>
+<pre class="programlisting">struct gnutls_pkcs11_privkey_st {
+ gnutls_pk_algorithm_t pk_algorithm;
+ unsigned int rsa_pss_ok; /* if it is an RSA key, it can do RSA-PSS */
+ unsigned int bits;
+
+ unsigned int flags;
+ struct p11_kit_uri *uinfo;
+ char *url;
+
+ struct pkcs11_session_info sinfo;
+ ck_object_handle_t ref; /* the key in the session */
+ unsigned reauth; /* whether we need to login on each operation */
+
+ void *mutex; /* lock for operations requiring co-ordination */
+
+ struct pin_info_st pin;
+};
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-priority-st"></a><h3>struct gnutls_priority_st</h3>
+<pre class="programlisting">struct gnutls_priority_st {
+ priority_st protocol;
+ priority_st client_ctype;
+ priority_st server_ctype;
+
+ /* The following are not necessary to be stored in
+ * the structure; however they are required by the
+ * external APIs: gnutls_priority_*_list() */
+ priority_st _cipher;
+ priority_st _mac;
+ priority_st _kx;
+ priority_st _sign_algo;
+ priority_st _supported_ecc;
+
+ /* the supported groups */
+ group_list_st groups;
+
+ /* the supported signature algorithms */
+ sign_algo_list_st sigalg;
+
+ /* the supported ciphersuites */
+ ciphersuite_list_st cs;
+
+ /* to disable record padding */
+ bool no_extensions;
+
+ safe_renegotiation_t sr;
+ bool min_record_version;
+ bool server_precedence;
+ bool allow_server_key_usage_violation; /* for test suite purposes only */
+ bool no_tickets;
+ bool no_tickets_tls12;
+ bool have_cbc;
+ bool have_psk;
+ bool force_etm;
+ unsigned int additional_verify_flags;
+ bool tls13_compat_mode;
+
+ /* TLS_FALLBACK_SCSV */
+ bool fallback;
+
+ /* The session's expected security level.
+ * Will be used to determine the minimum DH bits,
+ * (or the acceptable certificate security level).
+ */
+ gnutls_sec_param_t level;
+
+ /* these should be accessed from
+ * session-&gt;internals.VAR names */
+ bool _allow_large_records;
+ bool _allow_small_records;
+ bool _no_etm;
+ bool _no_ext_master_secret;
+ bool _allow_key_usage_violation;
+ bool _allow_wrong_pms;
+ bool _dumbfw;
+ unsigned int _dh_prime_bits; /* old (deprecated) variable */
+
+ DEF_ATOMIC_INT(usage_cnt);
+};
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-privkey-st"></a><h3>struct gnutls_privkey_st</h3>
+<pre class="programlisting">struct gnutls_privkey_st {
+ gnutls_privkey_type_t type;
+ gnutls_pk_algorithm_t pk_algorithm;
+
+ union {
+ gnutls_x509_privkey_t x509;
+#ifdef ENABLE_PKCS11
+ gnutls_pkcs11_privkey_t pkcs11;
+#endif
+ struct {
+ gnutls_privkey_sign_func sign_func; /* raw like TLS 1.x */
+ gnutls_privkey_sign_data_func sign_data_func;
+ gnutls_privkey_sign_hash_func sign_hash_func;
+ gnutls_privkey_decrypt_func decrypt_func;
+ gnutls_privkey_decrypt_func2 decrypt_func2;
+ gnutls_privkey_deinit_func deinit_func;
+ gnutls_privkey_info_func info_func;
+ gnutls_privkey_pk_params_func pk_params_func;
+ void *userdata;
+ unsigned bits;
+ } ext;
+ } key;
+
+ unsigned int flags;
+ struct pin_info_st pin;
+};
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pubkey-st"></a><h3>struct gnutls_pubkey_st</h3>
+<pre class="programlisting">struct gnutls_pubkey_st {
+ unsigned int bits; /* an indication of the security parameter */
+
+ /* the size of params depends on the public
+ * key algorithm
+ * RSA: [0] is modulus
+ * [1] is public exponent
+ * DSA: [0] is p
+ * [1] is q
+ * [2] is g
+ * [3] is public key
+ */
+ gnutls_pk_params_st params;
+
+ unsigned int key_usage; /* bits from GNUTLS_KEY_* */
+
+ struct pin_info_st pin;
+};
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-int"></a><h3>struct gnutls_session_int</h3>
+<pre class="programlisting">struct gnutls_session_int {
+ security_parameters_st security_parameters;
+ record_parameters_st *record_parameters[MAX_EPOCH_INDEX];
+ internals_st internals;
+ gnutls_key_st key;
+};
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tdb-int"></a><h3>struct gnutls_tdb_int</h3>
+<pre class="programlisting">struct gnutls_tdb_int;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-int"></a><h3>gnutls_x509_crl_int</h3>
+<pre class="programlisting">typedef struct {
+ asn1_node crl;
+
+ unsigned expanded;
+ /* This is used to optimize reads by gnutls_x509_crl_get_crt_serial2() */
+ asn1_node rcache;
+ unsigned rcache_idx;
+ int use_extensions;
+
+ gnutls_datum_t der;
+ gnutls_datum_t raw_issuer_dn;
+} gnutls_x509_crl_int;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-int"></a><h3>gnutls_x509_crq_int</h3>
+<pre class="programlisting">typedef struct {
+ asn1_node crq;
+} gnutls_x509_crq_int;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-int"></a><h3>gnutls_x509_crt_int</h3>
+<pre class="programlisting">typedef struct {
+ asn1_node cert;
+ int use_extensions;
+ unsigned expanded; /* a certificate has been expanded */
+ unsigned modified; /* the cached values below may no longer be valid */
+ unsigned flags;
+
+ struct pin_info_st pin;
+
+ /* These two cached values allow fast calls to
+ * get_raw_*_dn(). */
+ gnutls_datum_t raw_dn;
+ gnutls_datum_t raw_issuer_dn;
+ gnutls_datum_t raw_spki;
+
+ gnutls_datum_t der;
+
+ /* this cached value allows fast access to alt names */
+ gnutls_subject_alt_names_t san;
+ gnutls_subject_alt_names_t ian;
+
+ /* backwards compatibility for gnutls_x509_crt_get_subject()
+ * and gnutls_x509_crt_get_issuer() */
+ gnutls_x509_dn_st dn;
+ gnutls_x509_dn_st idn;
+} gnutls_x509_crt_int;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-int"></a><h3>gnutls_x509_privkey_int</h3>
+<pre class="programlisting">typedef struct {
+ /* the size of params depends on the public
+ * key algorithm
+ */
+ gnutls_pk_params_st params;
+
+ unsigned expanded;
+ unsigned flags;
+
+ asn1_node key;
+ struct pin_info_st pin;
+} gnutls_x509_privkey_int;
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-ocsp.html b/doc/reference/html/gnutls-ocsp.html
new file mode 100644
index 0000000..0422c6a
--- /dev/null
+++ b/doc/reference/html/gnutls-ocsp.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ocsp: 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-pkcs12.html" title="pkcs12">
+<link rel="next" href="gnutls-dtls.html" title="dtls">
+<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-ocsp.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-pkcs12.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-dtls.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-ocsp"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-ocsp.top_of_page"></a>ocsp</span></h2>
+<p>ocsp</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-ocsp.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-ocsp.html#MAX-OCSP-VALIDITY-SECS:CAPS" title="MAX_OCSP_VALIDITY_SECS">MAX_OCSP_VALIDITY_SECS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-ocsp.html#MAX-OCSP-MSG-SIZE:CAPS" title="MAX_OCSP_MSG_SIZE">MAX_OCSP_MSG_SIZE</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-ocsp.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-ocsp.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gnutls-ocsp.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="MAX-OCSP-VALIDITY-SECS:CAPS"></a><h3>MAX_OCSP_VALIDITY_SECS</h3>
+<pre class="programlisting">#define MAX_OCSP_VALIDITY_SECS (15*60*60*24)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="MAX-OCSP-MSG-SIZE:CAPS"></a><h3>MAX_OCSP_MSG_SIZE</h3>
+<pre class="programlisting">#define MAX_OCSP_MSG_SIZE 128
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-openpgp.html b/doc/reference/html/gnutls-openpgp.html
new file mode 100644
index 0000000..61c9b3a
--- /dev/null
+++ b/doc/reference/html/gnutls-openpgp.html
@@ -0,0 +1,1506 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>openpgp: 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-x509.html" title="x509">
+<link rel="next" href="gnutls-crypto.html" title="crypto">
+<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-openpgp.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-x509.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-crypto.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-openpgp"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-openpgp.top_of_page"></a>openpgp</span></h2>
+<p>openpgp</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-openpgp.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">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-init" title="gnutls_openpgp_crt_init ()">gnutls_openpgp_crt_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-openpgp.html#gnutls-openpgp-crt-deinit" title="gnutls_openpgp_crt_deinit ()">gnutls_openpgp_crt_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-openpgp.html#gnutls-openpgp-crt-import" title="gnutls_openpgp_crt_import ()">gnutls_openpgp_crt_import</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-openpgp.html#gnutls-openpgp-crt-export" title="gnutls_openpgp_crt_export ()">gnutls_openpgp_crt_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-openpgp.html#gnutls-openpgp-crt-export2" title="gnutls_openpgp_crt_export2 ()">gnutls_openpgp_crt_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-openpgp.html#gnutls-openpgp-crt-print" title="gnutls_openpgp_crt_print ()">gnutls_openpgp_crt_print</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-openpgp.html#gnutls-openpgp-crt-get-key-usage" title="gnutls_openpgp_crt_get_key_usage ()">gnutls_openpgp_crt_get_key_usage</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-openpgp.html#gnutls-openpgp-crt-get-fingerprint" title="gnutls_openpgp_crt_get_fingerprint ()">gnutls_openpgp_crt_get_fingerprint</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-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint" title="gnutls_openpgp_crt_get_subkey_fingerprint ()">gnutls_openpgp_crt_get_subkey_fingerprint</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-openpgp.html#gnutls-openpgp-crt-get-name" title="gnutls_openpgp_crt_get_name ()">gnutls_openpgp_crt_get_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm" title="gnutls_openpgp_crt_get_pk_algorithm ()">gnutls_openpgp_crt_get_pk_algorithm</a> <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-openpgp.html#gnutls-openpgp-crt-get-version" title="gnutls_openpgp_crt_get_version ()">gnutls_openpgp_crt_get_version</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time" title="gnutls_openpgp_crt_get_creation_time ()">gnutls_openpgp_crt_get_creation_time</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time" title="gnutls_openpgp_crt_get_expiration_time ()">gnutls_openpgp_crt_get_expiration_time</a> <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-openpgp.html#gnutls-openpgp-crt-get-key-id" title="gnutls_openpgp_crt_get_key_id ()">gnutls_openpgp_crt_get_key_id</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-openpgp.html#gnutls-openpgp-crt-check-hostname" title="gnutls_openpgp_crt_check_hostname ()">gnutls_openpgp_crt_check_hostname</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-openpgp.html#gnutls-openpgp-crt-check-hostname2" title="gnutls_openpgp_crt_check_hostname2 ()">gnutls_openpgp_crt_check_hostname2</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-openpgp.html#gnutls-openpgp-crt-check-email" title="gnutls_openpgp_crt_check_email ()">gnutls_openpgp_crt_check_email</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-openpgp.html#gnutls-openpgp-crt-get-revoked-status" title="gnutls_openpgp_crt_get_revoked_status ()">gnutls_openpgp_crt_get_revoked_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-openpgp.html#gnutls-openpgp-crt-get-subkey-count" title="gnutls_openpgp_crt_get_subkey_count ()">gnutls_openpgp_crt_get_subkey_count</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-openpgp.html#gnutls-openpgp-crt-get-subkey-idx" title="gnutls_openpgp_crt_get_subkey_idx ()">gnutls_openpgp_crt_get_subkey_idx</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-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status" title="gnutls_openpgp_crt_get_subkey_revoked_status ()">gnutls_openpgp_crt_get_subkey_revoked_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm" title="gnutls_openpgp_crt_get_subkey_pk_algorithm ()">gnutls_openpgp_crt_get_subkey_pk_algorithm</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time" title="gnutls_openpgp_crt_get_subkey_creation_time ()">gnutls_openpgp_crt_get_subkey_creation_time</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time" title="gnutls_openpgp_crt_get_subkey_expiration_time ()">gnutls_openpgp_crt_get_subkey_expiration_time</a> <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-openpgp.html#gnutls-openpgp-crt-get-subkey-id" title="gnutls_openpgp_crt_get_subkey_id ()">gnutls_openpgp_crt_get_subkey_id</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-openpgp.html#gnutls-openpgp-crt-get-subkey-usage" title="gnutls_openpgp_crt_get_subkey_usage ()">gnutls_openpgp_crt_get_subkey_usage</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-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_dsa_raw</a> <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-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw" title="gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()">gnutls_openpgp_crt_get_subkey_pk_rsa_raw</a> <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-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw" title="gnutls_openpgp_crt_get_pk_dsa_raw ()">gnutls_openpgp_crt_get_pk_dsa_raw</a> <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-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw" title="gnutls_openpgp_crt_get_pk_rsa_raw ()">gnutls_openpgp_crt_get_pk_rsa_raw</a> <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-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id" title="gnutls_openpgp_crt_get_preferred_key_id ()">gnutls_openpgp_crt_get_preferred_key_id</a> <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-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" title="gnutls_openpgp_crt_set_preferred_key_id ()">gnutls_openpgp_crt_set_preferred_key_id</a> <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-openpgp.html#gnutls-openpgp-privkey-init" title="gnutls_openpgp_privkey_init ()">gnutls_openpgp_privkey_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-openpgp.html#gnutls-openpgp-privkey-deinit" title="gnutls_openpgp_privkey_deinit ()">gnutls_openpgp_privkey_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm" title="gnutls_openpgp_privkey_get_pk_algorithm ()">gnutls_openpgp_privkey_get_pk_algorithm</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-sec-param" title="gnutls_openpgp_privkey_sec_param ()">gnutls_openpgp_privkey_sec_param</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-openpgp.html#gnutls-openpgp-privkey-import" title="gnutls_openpgp_privkey_import ()">gnutls_openpgp_privkey_import</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-openpgp.html#gnutls-openpgp-privkey-get-fingerprint" title="gnutls_openpgp_privkey_get_fingerprint ()">gnutls_openpgp_privkey_get_fingerprint</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-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint" title="gnutls_openpgp_privkey_get_subkey_fingerprint ()">gnutls_openpgp_privkey_get_subkey_fingerprint</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-openpgp.html#gnutls-openpgp-privkey-get-key-id" title="gnutls_openpgp_privkey_get_key_id ()">gnutls_openpgp_privkey_get_key_id</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-openpgp.html#gnutls-openpgp-privkey-get-subkey-count" title="gnutls_openpgp_privkey_get_subkey_count ()">gnutls_openpgp_privkey_get_subkey_count</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-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx" title="gnutls_openpgp_privkey_get_subkey_idx ()">gnutls_openpgp_privkey_get_subkey_idx</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-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status" title="gnutls_openpgp_privkey_get_subkey_revoked_status ()">gnutls_openpgp_privkey_get_subkey_revoked_status</a> <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-openpgp.html#gnutls-openpgp-privkey-get-revoked-status" title="gnutls_openpgp_privkey_get_revoked_status ()">gnutls_openpgp_privkey_get_revoked_status</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm" title="gnutls_openpgp_privkey_get_subkey_pk_algorithm ()">gnutls_openpgp_privkey_get_subkey_pk_algorithm</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time" title="gnutls_openpgp_privkey_get_subkey_expiration_time ()">gnutls_openpgp_privkey_get_subkey_expiration_time</a> <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-openpgp.html#gnutls-openpgp-privkey-get-subkey-id" title="gnutls_openpgp_privkey_get_subkey_id ()">gnutls_openpgp_privkey_get_subkey_id</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time" title="gnutls_openpgp_privkey_get_subkey_creation_time ()">gnutls_openpgp_privkey_get_subkey_creation_time</a> <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-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw" title="gnutls_openpgp_privkey_export_subkey_dsa_raw ()">gnutls_openpgp_privkey_export_subkey_dsa_raw</a> <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-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw" title="gnutls_openpgp_privkey_export_subkey_rsa_raw ()">gnutls_openpgp_privkey_export_subkey_rsa_raw</a> <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-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw" title="gnutls_openpgp_privkey_export_dsa_raw ()">gnutls_openpgp_privkey_export_dsa_raw</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-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw" title="gnutls_openpgp_privkey_export_rsa_raw ()">gnutls_openpgp_privkey_export_rsa_raw</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-openpgp.html#gnutls-openpgp-privkey-export" title="gnutls_openpgp_privkey_export ()">gnutls_openpgp_privkey_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-openpgp.html#gnutls-openpgp-privkey-export2" title="gnutls_openpgp_privkey_export2 ()">gnutls_openpgp_privkey_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-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id" title="gnutls_openpgp_privkey_set_preferred_key_id ()">gnutls_openpgp_privkey_set_preferred_key_id</a> <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-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id" title="gnutls_openpgp_privkey_get_preferred_key_id ()">gnutls_openpgp_privkey_get_preferred_key_id</a> <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-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" title="gnutls_openpgp_crt_get_auth_subkey ()">gnutls_openpgp_crt_get_auth_subkey</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-openpgp.html#gnutls-openpgp-keyring-init" title="gnutls_openpgp_keyring_init ()">gnutls_openpgp_keyring_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-openpgp.html#gnutls-openpgp-keyring-deinit" title="gnutls_openpgp_keyring_deinit ()">gnutls_openpgp_keyring_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-openpgp.html#gnutls-openpgp-keyring-import" title="gnutls_openpgp_keyring_import ()">gnutls_openpgp_keyring_import</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-openpgp.html#gnutls-openpgp-keyring-check-id" title="gnutls_openpgp_keyring_check_id ()">gnutls_openpgp_keyring_check_id</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-openpgp.html#gnutls-openpgp-crt-verify-ring" title="gnutls_openpgp_crt_verify_ring ()">gnutls_openpgp_crt_verify_ring</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-openpgp.html#gnutls-openpgp-crt-verify-self" title="gnutls_openpgp_crt_verify_self ()">gnutls_openpgp_crt_verify_self</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-openpgp.html#gnutls-openpgp-keyring-get-crt" title="gnutls_openpgp_keyring_get_crt ()">gnutls_openpgp_keyring_get_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-openpgp.html#gnutls-openpgp-keyring-get-crt-count" title="gnutls_openpgp_keyring_get_crt_count ()">gnutls_openpgp_keyring_get_crt_count</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<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-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()">*gnutls_openpgp_recv_key_func</a><span class="c_punctuation">)</span> <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-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()">gnutls_openpgp_set_recv_key_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-openpgp.html#gnutls-certificate-set-openpgp-key" title="gnutls_certificate_set_openpgp_key ()">gnutls_certificate_set_openpgp_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-openpgp.html#gnutls-certificate-get-openpgp-key" title="gnutls_certificate_get_openpgp_key ()">gnutls_certificate_get_openpgp_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-openpgp.html#gnutls-certificate-get-openpgp-crt" title="gnutls_certificate_get_openpgp_crt ()">gnutls_certificate_get_openpgp_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-openpgp.html#gnutls-certificate-set-openpgp-key-file" title="gnutls_certificate_set_openpgp_key_file ()">gnutls_certificate_set_openpgp_key_file</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-openpgp.html#gnutls-certificate-set-openpgp-key-mem" title="gnutls_certificate_set_openpgp_key_mem ()">gnutls_certificate_set_openpgp_key_mem</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-openpgp.html#gnutls-certificate-set-openpgp-key-file2" title="gnutls_certificate_set_openpgp_key_file2 ()">gnutls_certificate_set_openpgp_key_file2</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-openpgp.html#gnutls-certificate-set-openpgp-key-mem2" title="gnutls_certificate_set_openpgp_key_mem2 ()">gnutls_certificate_set_openpgp_key_mem2</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-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem" title="gnutls_certificate_set_openpgp_keyring_mem ()">gnutls_certificate_set_openpgp_keyring_mem</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-openpgp.html#gnutls-certificate-set-openpgp-keyring-file" title="gnutls_certificate_set_openpgp_keyring_file ()">gnutls_certificate_set_openpgp_keyring_file</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-openpgp.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="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t">gnutls_openpgp_crt_fmt_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-openpgp.html#GNUTLS-OPENPGP-KEYID-SIZE:CAPS" title="GNUTLS_OPENPGP_KEYID_SIZE">GNUTLS_OPENPGP_KEYID_SIZE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-openpgp.html#GNUTLS-OPENPGP-V4-FINGERPRINT-SIZE:CAPS" title="GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE">GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-openpgp.html#GNUTLS-OPENPGP-MASTER-KEYID-IDX:CAPS" title="GNUTLS_OPENPGP_MASTER_KEYID_IDX">GNUTLS_OPENPGP_MASTER_KEYID_IDX</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-openpgp.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-openpgp.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-init"></a><h3>gnutls_openpgp_crt_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_init</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-deinit"></a><h3>gnutls_openpgp_crt_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_openpgp_crt_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_deinit</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-import"></a><h3>gnutls_openpgp_crt_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_import (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <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> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_import</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-export"></a><h3>gnutls_openpgp_crt_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_export (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <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>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_export</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-export2"></a><h3>gnutls_openpgp_crt_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_export2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <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>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_export2</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-print"></a><h3>gnutls_openpgp_crt_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_print (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> cert</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+ <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>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_print</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-key-usage"></a><h3>gnutls_openpgp_crt_get_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_key_usage (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_key_usage</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-fingerprint"></a><h3>gnutls_openpgp_crt_get_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_fingerprint (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_fingerprint</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-fingerprint"></a><h3>gnutls_openpgp_crt_get_subkey_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_fingerprint
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_fingerprint</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-name"></a><h3>gnutls_openpgp_crt_get_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_name</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-pk-algorithm"></a><h3>gnutls_openpgp_crt_get_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+gnutls_openpgp_crt_get_pk_algorithm (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_pk_algorithm</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-version"></a><h3>gnutls_openpgp_crt_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_version (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_version</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-creation-time"></a><h3>gnutls_openpgp_crt_get_creation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_openpgp_crt_get_creation_time (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_creation_time</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-expiration-time"></a><h3>gnutls_openpgp_crt_get_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_openpgp_crt_get_expiration_time
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_expiration_time</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-key-id"></a><h3>gnutls_openpgp_crt_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_key_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_key_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-check-hostname"></a><h3>gnutls_openpgp_crt_check_hostname ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_check_hostname (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_check_hostname</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-check-hostname2"></a><h3>gnutls_openpgp_crt_check_hostname2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_check_hostname2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *hostname</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_check_hostname2</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-check-email"></a><h3>gnutls_openpgp_crt_check_email ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_check_email (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *email</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_check_email</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-revoked-status"></a><h3>gnutls_openpgp_crt_get_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_revoked_status (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_revoked_status</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-count"></a><h3>gnutls_openpgp_crt_get_subkey_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_count (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_count</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-idx"></a><h3>gnutls_openpgp_crt_get_subkey_idx ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_idx (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_idx</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-revoked-status"></a><h3>gnutls_openpgp_crt_get_subkey_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_revoked_status
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_revoked_status</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-pk-algorithm"></a><h3>gnutls_openpgp_crt_get_subkey_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+gnutls_openpgp_crt_get_subkey_pk_algorithm
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_pk_algorithm</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-creation-time"></a><h3>gnutls_openpgp_crt_get_subkey_creation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_openpgp_crt_get_subkey_creation_time
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_creation_time</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-expiration-time"></a><h3>gnutls_openpgp_crt_get_subkey_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_openpgp_crt_get_subkey_expiration_time
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_expiration_time</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-id"></a><h3>gnutls_openpgp_crt_get_subkey_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-usage"></a><h3>gnutls_openpgp_crt_get_subkey_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_usage (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *key_usage</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_usage</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-pk-dsa-raw"></a><h3>gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_pk_dsa_raw
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</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> *p</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> *q</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> *g</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> *y</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_pk_dsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-subkey-pk-rsa-raw"></a><h3>gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_subkey_pk_rsa_raw
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</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> *m</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> *e</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_subkey_pk_rsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-pk-dsa-raw"></a><h3>gnutls_openpgp_crt_get_pk_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_pk_dsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <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> *p</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> *q</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> *g</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> *y</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_pk_dsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-pk-rsa-raw"></a><h3>gnutls_openpgp_crt_get_pk_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_pk_rsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <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> *m</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> *e</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_pk_rsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-preferred-key-id"></a><h3>gnutls_openpgp_crt_get_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_preferred_key_id
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_preferred_key_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-set-preferred-key-id"></a><h3>gnutls_openpgp_crt_set_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_set_preferred_key_id
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_set_preferred_key_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-init"></a><h3>gnutls_openpgp_privkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> *key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_init</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-deinit"></a><h3>gnutls_openpgp_privkey_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_openpgp_privkey_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_deinit</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-pk-algorithm"></a><h3>gnutls_openpgp_privkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+gnutls_openpgp_privkey_get_pk_algorithm
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_pk_algorithm</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-sec-param"></a><h3>gnutls_openpgp_privkey_sec_param ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>
+gnutls_openpgp_privkey_sec_param (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_sec_param</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-import"></a><h3>gnutls_openpgp_privkey_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_import (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <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> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_import</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-fingerprint"></a><h3>gnutls_openpgp_privkey_get_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_fingerprint
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_fingerprint</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-fingerprint"></a><h3>gnutls_openpgp_privkey_get_subkey_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_subkey_fingerprint
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *fpr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *fprlen</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_fingerprint</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-key-id"></a><h3>gnutls_openpgp_privkey_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_key_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_key_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-count"></a><h3>gnutls_openpgp_privkey_get_subkey_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_subkey_count
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_count</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-idx"></a><h3>gnutls_openpgp_privkey_get_subkey_idx ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_subkey_idx (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_idx</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-revoked-status"></a><h3>gnutls_openpgp_privkey_get_subkey_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_subkey_revoked_status
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_revoked_status</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-revoked-status"></a><h3>gnutls_openpgp_privkey_get_revoked_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_revoked_status
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_revoked_status</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-pk-algorithm"></a><h3>gnutls_openpgp_privkey_get_subkey_pk_algorithm ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-pk-algorithm-t" title="enum gnutls_pk_algorithm_t"><span class="returnvalue">gnutls_pk_algorithm_t</span></a>
+gnutls_openpgp_privkey_get_subkey_pk_algorithm
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *bits</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_pk_algorithm</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-expiration-time"></a><h3>gnutls_openpgp_privkey_get_subkey_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_openpgp_privkey_get_subkey_expiration_time
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_expiration_time</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-id"></a><h3>gnutls_openpgp_privkey_get_subkey_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_subkey_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-subkey-creation-time"></a><h3>gnutls_openpgp_privkey_get_subkey_creation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_openpgp_privkey_get_subkey_creation_time
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_subkey_creation_time</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-subkey-dsa-raw"></a><h3>gnutls_openpgp_privkey_export_subkey_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_export_subkey_dsa_raw
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</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> *p</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> *q</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> *g</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> *y</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> *x</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_export_subkey_dsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-subkey-rsa-raw"></a><h3>gnutls_openpgp_privkey_export_subkey_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_export_subkey_rsa_raw
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</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> *m</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> *e</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> *d</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> *p</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> *q</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> *u</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_export_subkey_rsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-dsa-raw"></a><h3>gnutls_openpgp_privkey_export_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_export_dsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+ <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> *p</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> *q</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> *g</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> *y</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> *x</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_export_dsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export-rsa-raw"></a><h3>gnutls_openpgp_privkey_export_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_export_rsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>,
+ <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> *m</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> *e</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> *d</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> *p</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> *q</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> *u</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_export_rsa_raw</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export"></a><h3>gnutls_openpgp_privkey_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_export (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_export</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-export2"></a><h3>gnutls_openpgp_privkey_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_export2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_export2</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-set-preferred-key-id"></a><h3>gnutls_openpgp_privkey_set_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_set_preferred_key_id
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code>const <span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_set_preferred_key_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-privkey-get-preferred-key-id"></a><h3>gnutls_openpgp_privkey_get_preferred_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_privkey_get_preferred_key_id
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> key</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_privkey_get_preferred_key_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-get-auth-subkey"></a><h3>gnutls_openpgp_crt_get_auth_subkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_get_auth_subkey (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flag</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_get_auth_subkey</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-init"></a><h3>gnutls_openpgp_keyring_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_keyring_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> *keyring</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_keyring_init</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-deinit"></a><h3>gnutls_openpgp_keyring_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_openpgp_keyring_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_keyring_deinit</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-import"></a><h3>gnutls_openpgp_keyring_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_keyring_import (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
+ <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> *data</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_keyring_import</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-check-id"></a><h3>gnutls_openpgp_keyring_check_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_keyring_check_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
+ <em class="parameter"><code>const <span class="type">gnutls_openpgp_keyid_t</span> keyid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_keyring_check_id</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-verify-ring"></a><h3>gnutls_openpgp_crt_verify_ring ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_verify_ring (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> keyring</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_verify_ring</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-verify-self"></a><h3>gnutls_openpgp_crt_verify_self ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_crt_verify_self (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> key</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_crt_verify_self</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-get-crt"></a><h3>gnutls_openpgp_keyring_get_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_keyring_get_crt (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> *cert</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_keyring_get_crt</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-keyring-get-crt-count"></a><h3>gnutls_openpgp_keyring_get_crt_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_openpgp_keyring_get_crt_count (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-keyring-t" title="gnutls_openpgp_keyring_t"><span class="type">gnutls_openpgp_keyring_t</span></a> ring</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_keyring_get_crt_count</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-recv-key-func"></a><h3>gnutls_openpgp_recv_key_func ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+<span class="c_punctuation">(</span>*gnutls_openpgp_recv_key_func<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> *keyfpr</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> keyfpr_length</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>);</pre>
+<p>A callback of this type is used to retrieve OpenPGP keys. Only
+useful on the server, and will only be used if the peer send a key
+fingerprint instead of a full key. See also
+<a class="link" href="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" title="gnutls_openpgp_set_recv_key_function ()"><code class="function">gnutls_openpgp_set_recv_key_function()</code></a>.</p>
+<p>The variable <em class="parameter"><code>key</code></em>
+ must be allocated using <code class="function">gnutls_malloc()</code>.</p>
+<div class="refsect3">
+<a name="gnutls-openpgp-recv-key-func.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>session</p></td>
+<td class="parameter_description"><p>a TLS session</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>keyfpr</p></td>
+<td class="parameter_description"><p>key fingerprint</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>keyfpr_length</p></td>
+<td class="parameter_description"><p>length of key fingerprint</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>output key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-openpgp-recv-key-func.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> (zero) is returned,
+otherwise an error code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-openpgp-set-recv-key-function"></a><h3>gnutls_openpgp_set_recv_key_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_openpgp_set_recv_key_function (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-recv-key-func" title="gnutls_openpgp_recv_key_func ()"><span class="type">gnutls_openpgp_recv_key_func</span></a> func</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_openpgp_set_recv_key_function</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key"></a><h3>gnutls_certificate_set_openpgp_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_openpgp_key (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> pkey</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_set_openpgp_key</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-openpgp-key"></a><h3>gnutls_certificate_get_openpgp_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_get_openpgp_key (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> index</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-privkey-t" title="gnutls_openpgp_privkey_t"><span class="type">gnutls_openpgp_privkey_t</span></a> *key</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_get_openpgp_key</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-openpgp-crt"></a><h3>gnutls_certificate_get_openpgp_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_get_openpgp_crt (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> index</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-openpgp-crt-t" title="gnutls_openpgp_crt_t"><span class="type">gnutls_openpgp_crt_t</span></a> **crt_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned</span> *crt_list_size</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_get_openpgp_crt</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-file"></a><h3>gnutls_certificate_set_openpgp_key_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_openpgp_key_file
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_set_openpgp_key_file</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-mem"></a><h3>gnutls_certificate_set_openpgp_key_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_openpgp_key_mem
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *cert</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> *key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_set_openpgp_key_mem</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-file2"></a><h3>gnutls_certificate_set_openpgp_key_file2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_openpgp_key_file2
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *certfile</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *keyfile</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_set_openpgp_key_file2</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-key-mem2"></a><h3>gnutls_certificate_set_openpgp_key_mem2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_openpgp_key_mem2
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</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> *cert</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> *key</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *subkey_id</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_set_openpgp_key_mem2</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-keyring-mem"></a><h3>gnutls_certificate_set_openpgp_keyring_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_openpgp_keyring_mem
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
+ <em class="parameter"><code>const unsigned <span class="type">char</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> dlen</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_set_openpgp_keyring_mem</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-openpgp-keyring-file"></a><h3>gnutls_certificate_set_openpgp_keyring_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_certificate_set_openpgp_keyring_file
+ (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> c</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *file</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t" title="enum gnutls_openpgp_crt_fmt_t"><span class="type">gnutls_openpgp_crt_fmt_t</span></a> format</code></em>);</pre>
+<div class="warning"><p><code class="literal">gnutls_certificate_set_openpgp_keyring_file</code> is deprecated and should not be used in newly-written code.</p></div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gnutls-openpgp.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="gnutls-openpgp-crt-fmt-t"></a><h3>enum gnutls_openpgp_crt_fmt_t</h3>
+<p>Enumeration of different OpenPGP key formats.</p>
+<div class="refsect3">
+<a name="gnutls-openpgp-crt-fmt-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-OPENPGP-FMT-RAW:CAPS"></a>GNUTLS_OPENPGP_FMT_RAW</p></td>
+<td class="enum_member_description">
+<p>OpenPGP certificate in raw format.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-OPENPGP-FMT-BASE64:CAPS"></a>GNUTLS_OPENPGP_FMT_BASE64</p></td>
+<td class="enum_member_description">
+<p>OpenPGP certificate in base64 format.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OPENPGP-KEYID-SIZE:CAPS"></a><h3>GNUTLS_OPENPGP_KEYID_SIZE</h3>
+<pre class="programlisting">#define GNUTLS_OPENPGP_KEYID_SIZE 8
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OPENPGP-V4-FINGERPRINT-SIZE:CAPS"></a><h3>GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE</h3>
+<pre class="programlisting">#define GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE 20
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OPENPGP-MASTER-KEYID-IDX:CAPS"></a><h3>GNUTLS_OPENPGP_MASTER_KEYID_IDX</h3>
+<pre class="programlisting">#define GNUTLS_OPENPGP_MASTER_KEYID_IDX INT_MAX
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
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
diff --git a/doc/reference/html/gnutls-pkcs12.html b/doc/reference/html/gnutls-pkcs12.html
new file mode 100644
index 0000000..0597447
--- /dev/null
+++ b/doc/reference/html/gnutls-pkcs12.html
@@ -0,0 +1,1589 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>pkcs12: 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-pkcs11.html" title="pkcs11">
+<link rel="next" href="gnutls-ocsp.html" title="ocsp">
+<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-pkcs12.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-pkcs11.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-ocsp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-pkcs12"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-pkcs12.top_of_page"></a>pkcs12</span></h2>
+<p>pkcs12</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-pkcs12.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">
+<a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-init" title="gnutls_pkcs12_init ()">gnutls_pkcs12_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-pkcs12.html#gnutls-pkcs12-deinit" title="gnutls_pkcs12_deinit ()">gnutls_pkcs12_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-pkcs12.html#gnutls-pkcs12-import" title="gnutls_pkcs12_import ()">gnutls_pkcs12_import</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-pkcs12.html#gnutls-pkcs12-export" title="gnutls_pkcs12_export ()">gnutls_pkcs12_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-pkcs12.html#gnutls-pkcs12-export2" title="gnutls_pkcs12_export2 ()">gnutls_pkcs12_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-pkcs12.html#gnutls-pkcs12-get-bag" title="gnutls_pkcs12_get_bag ()">gnutls_pkcs12_get_bag</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-pkcs12.html#gnutls-pkcs12-set-bag" title="gnutls_pkcs12_set_bag ()">gnutls_pkcs12_set_bag</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-pkcs12.html#gnutls-pkcs12-generate-mac" title="gnutls_pkcs12_generate_mac ()">gnutls_pkcs12_generate_mac</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-pkcs12.html#gnutls-pkcs12-generate-mac2" title="gnutls_pkcs12_generate_mac2 ()">gnutls_pkcs12_generate_mac2</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-pkcs12.html#gnutls-pkcs12-verify-mac" title="gnutls_pkcs12_verify_mac ()">gnutls_pkcs12_verify_mac</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-pkcs12.html#gnutls-pkcs12-bag-decrypt" title="gnutls_pkcs12_bag_decrypt ()">gnutls_pkcs12_bag_decrypt</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-pkcs12.html#gnutls-pkcs12-bag-encrypt" title="gnutls_pkcs12_bag_encrypt ()">gnutls_pkcs12_bag_encrypt</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-pkcs12.html#gnutls-pkcs12-bag-enc-info" title="gnutls_pkcs12_bag_enc_info ()">gnutls_pkcs12_bag_enc_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-pkcs12.html#gnutls-pkcs12-mac-info" title="gnutls_pkcs12_mac_info ()">gnutls_pkcs12_mac_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-pkcs12.html#gnutls-pkcs12-simple-parse" title="gnutls_pkcs12_simple_parse ()">gnutls_pkcs12_simple_parse</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-pkcs12.html#gnutls-pkcs12-bag-get-data" title="gnutls_pkcs12_bag_get_data ()">gnutls_pkcs12_bag_get_data</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-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()">gnutls_pkcs12_bag_set_data</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-pkcs12.html#gnutls-pkcs12-bag-set-crl" title="gnutls_pkcs12_bag_set_crl ()">gnutls_pkcs12_bag_set_crl</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-pkcs12.html#gnutls-pkcs12-bag-set-crt" title="gnutls_pkcs12_bag_set_crt ()">gnutls_pkcs12_bag_set_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-pkcs12.html#gnutls-pkcs12-bag-set-privkey" title="gnutls_pkcs12_bag_set_privkey ()">gnutls_pkcs12_bag_set_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-pkcs12.html#gnutls-pkcs12-bag-init" title="gnutls_pkcs12_bag_init ()">gnutls_pkcs12_bag_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-pkcs12.html#gnutls-pkcs12-bag-deinit" title="gnutls_pkcs12_bag_deinit ()">gnutls_pkcs12_bag_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-pkcs12.html#gnutls-pkcs12-bag-get-count" title="gnutls_pkcs12_bag_get_count ()">gnutls_pkcs12_bag_get_count</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-pkcs12.html#gnutls-pkcs12-bag-get-key-id" title="gnutls_pkcs12_bag_get_key_id ()">gnutls_pkcs12_bag_get_key_id</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-pkcs12.html#gnutls-pkcs12-bag-set-key-id" title="gnutls_pkcs12_bag_set_key_id ()">gnutls_pkcs12_bag_set_key_id</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-pkcs12.html#gnutls-pkcs12-bag-get-friendly-name" title="gnutls_pkcs12_bag_get_friendly_name ()">gnutls_pkcs12_bag_get_friendly_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-pkcs12.html#gnutls-pkcs12-bag-set-friendly-name" title="gnutls_pkcs12_bag_set_friendly_name ()">gnutls_pkcs12_bag_set_friendly_name</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs12.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="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t">gnutls_pkcs12_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t">gnutls_pkcs12_bag_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs12.html#GNUTLS-PKCS12-SP-INCLUDE-SELF-SIGNED:CAPS" title="GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED">GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t">gnutls_pkcs12_bag_type_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-int" title="gnutls_pkcs12_bag_int">gnutls_pkcs12_bag_int</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-int" title="gnutls_pkcs12_int">gnutls_pkcs12_int</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs12.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs12.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-pkcs12-init"></a><h3>gnutls_pkcs12_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_init (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> *pkcs12</code></em>);</pre>
+<p>This function will initialize a PKCS12 type. PKCS12 structures
+usually contain lists of X.509 Certificates and X.509 Certificate
+revocation lists.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-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>pkcs12</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-pkcs12-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-pkcs12-deinit"></a><h3>gnutls_pkcs12_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pkcs12_deinit (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>);</pre>
+<p>This function will deinitialize a PKCS12 type.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-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>pkcs12</p></td>
+<td class="parameter_description"><p>The type to be initialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-import"></a><h3>gnutls_pkcs12_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_import (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</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> *data</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will convert the given DER or PEM encoded PKCS12
+to the native gnutls_pkcs12_t format. The output will be stored in 'pkcs12'.</p>
+<p>If the PKCS12 is PEM encoded it should have a header of "PKCS12".</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-import.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>pkcs12</p></td>
+<td class="parameter_description"><p>The data to store the parsed PKCS12.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded PKCS12.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of gnutls_privkey_pkcs8_flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-import.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-pkcs12-export"></a><h3>gnutls_pkcs12_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_export (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</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> format</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 pkcs12 structure to DER or PEM format.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*output_data_size will be updated and GNUTLS_E_SHORT_MEMORY_BUFFER
+will be returned.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN PKCS12".</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-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>pkcs12</p></td>
+<td class="parameter_description"><p>A pkcs12 type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</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 a structure PEM or DER encoded</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-pkcs12-export.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-export2"></a><h3>gnutls_pkcs12_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_export2 (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</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> format</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 pkcs12 structure to DER or PEM format.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN PKCS12".</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-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>pkcs12</p></td>
+<td class="parameter_description"><p>A pkcs12 type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a structure PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-export2.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-get-bag"></a><h3>gnutls_pkcs12_get_bag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_get_bag (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+ <em class="parameter"><code><span class="type">int</span> indx</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>This function will return a Bag from the PKCS12 structure.</p>
+<p>After the last Bag has been read
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-get-bag.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>pkcs12</p></td>
+<td class="parameter_description"><p>A pkcs12 type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>contains the index of the bag to extract</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bag</p></td>
+<td class="parameter_description"><p>An initialized bag, where the contents of the bag will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-get-bag.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-pkcs12-set-bag"></a><h3>gnutls_pkcs12_set_bag ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_set_bag (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>This function will insert a Bag into the PKCS12 structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-set-bag.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>pkcs12</p></td>
+<td class="parameter_description"><p>should contain a gnutls_pkcs12_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bag</p></td>
+<td class="parameter_description"><p>An initialized bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-set-bag.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-pkcs12-generate-mac"></a><h3>gnutls_pkcs12_generate_mac ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_generate_mac (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>This function will generate a MAC for the PKCS12 structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-generate-mac.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>pkcs12</p></td>
+<td class="parameter_description"><p>A pkcs12 type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>The password for the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-generate-mac.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-pkcs12-generate-mac2"></a><h3>gnutls_pkcs12_generate_mac2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_generate_mac2 (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><span class="type">gnutls_mac_algorithm_t</span></a> mac</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>This function will generate a MAC for the PKCS12 structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-generate-mac2.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>pkcs12</p></td>
+<td class="parameter_description"><p>A pkcs12 type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mac</p></td>
+<td class="parameter_description"><p>the MAC algorithm to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>The password for the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-generate-mac2.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-pkcs12-verify-mac"></a><h3>gnutls_pkcs12_verify_mac ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_verify_mac (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>This function will verify the MAC for the PKCS12 structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-verify-mac.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>pkcs12</p></td>
+<td class="parameter_description"><p>should contain a gnutls_pkcs12_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>The password for the MAC</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-verify-mac.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-pkcs12-bag-decrypt"></a><h3>gnutls_pkcs12_bag_decrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_decrypt (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>This function will decrypt the given encrypted bag and return 0 on
+success.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-decrypt.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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>The password used for encryption, must be ASCII.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-decrypt.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-encrypt"></a><h3>gnutls_pkcs12_bag_encrypt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_encrypt (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will encrypt the given bag.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-encrypt.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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>The password used for encryption, must be ASCII</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be one of <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><span class="type">gnutls_pkcs_encrypt_flags_t</span></a> elements bitwise or'd</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-encrypt.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-enc-info"></a><h3>gnutls_pkcs12_bag_enc_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_enc_info (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *schema</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *cipher</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *salt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *salt_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *iter_count</code></em>,
+ <em class="parameter"><code><span class="type">char</span> **oid</code></em>);</pre>
+<p>This function will provide information on the encryption algorithms used
+in an encrypted bag. If the structure algorithms
+are unknown the code <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE"><code class="literal">GNUTLS_E_UNKNOWN_CIPHER_TYPE</code></a> will be returned,
+and only <em class="parameter"><code>oid</code></em>
+, will be set. That is, <em class="parameter"><code>oid</code></em>
+ will be set on encrypted bags
+whether supported or not. It must be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.
+The other variables are only set on supported structures.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-enc-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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>schema</p></td>
+<td class="parameter_description"><p>indicate the schema as one of <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><code class="literal">gnutls_pkcs_encrypt_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cipher</p></td>
+<td class="parameter_description"><p>the cipher used as <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><code class="literal">gnutls_cipher_algorithm_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt</p></td>
+<td class="parameter_description"><p>PBKDF2 salt (if non-NULL then <em class="parameter"><code>salt_size</code></em>
+initially holds its size)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt_size</p></td>
+<td class="parameter_description"><p>PBKDF2 salt size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iter_count</p></td>
+<td class="parameter_description"><p>PBKDF2 iteration count</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>if non-NULL it will contain an allocated null-terminated variable with the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-enc-info.returns"></a><h4>Returns</h4>
+<p> <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> if the provided bag isn't encrypted,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE"><code class="literal">GNUTLS_E_UNKNOWN_CIPHER_TYPE</code></a> if the structure's encryption isn't supported, or
+another negative error code in case of a failure. Zero on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-mac-info"></a><h3>gnutls_pkcs12_mac_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_mac_info (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> pkcs12</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *mac</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *salt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *salt_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *iter_count</code></em>,
+ <em class="parameter"><code><span class="type">char</span> **oid</code></em>);</pre>
+<p>This function will provide information on the MAC algorithm used
+in a PKCS <span class="type">12</span> structure. If the structure algorithms
+are unknown the code <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_HASH_ALGORITHM"><code class="literal">GNUTLS_E_UNKNOWN_HASH_ALGORITHM</code></a> will be returned,
+and only <em class="parameter"><code>oid</code></em>
+, will be set. That is, <em class="parameter"><code>oid</code></em>
+ will be set on structures
+with a MAC whether supported or not. It must be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.
+The other variables are only set on supported structures.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-mac-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>pkcs12</p></td>
+<td class="parameter_description"><p>A pkcs12 type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mac</p></td>
+<td class="parameter_description"><p>the MAC algorithm used as <a class="link" href="gnutls-gnutls.html#gnutls-mac-algorithm-t" title="enum gnutls_mac_algorithm_t"><code class="literal">gnutls_mac_algorithm_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt</p></td>
+<td class="parameter_description"><p>the salt used for string to key (if non-NULL then <em class="parameter"><code>salt_size</code></em>
+initially holds its size)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt_size</p></td>
+<td class="parameter_description"><p>string to key salt size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iter_count</p></td>
+<td class="parameter_description"><p>string to key iteration count</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>if non-NULL it will contain an allocated null-terminated variable with the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-mac-info.returns"></a><h4>Returns</h4>
+<p> <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> if the provided structure doesn't contain a MAC,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_HASH_ALGORITHM"><code class="literal">GNUTLS_E_UNKNOWN_HASH_ALGORITHM</code></a> if the structure's MAC isn't supported, or
+another negative error code in case of a failure. Zero on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-simple-parse"></a><h3>gnutls_pkcs12_simple_parse ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_simple_parse (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-t" title="gnutls_pkcs12_t"><span class="type">gnutls_pkcs12_t</span></a> p12</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</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><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> **chain</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *chain_len</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> **extra_certs</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *extra_certs_len</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function parses a PKCS12 structure in <em class="parameter"><code>pkcs12</code></em>
+ and extracts the
+private key, the corresponding certificate chain, any additional
+certificates and a CRL. The structures in <em class="parameter"><code>key</code></em>
+, <em class="parameter"><code>chain</code></em>
+ <em class="parameter"><code>crl</code></em>
+, and <em class="parameter"><code>extra_certs</code></em>
+
+must not be initialized.</p>
+<p>The <em class="parameter"><code>extra_certs</code></em>
+ and <em class="parameter"><code>extra_certs_len</code></em>
+ parameters are optional
+and both may be set to <code class="literal">NULL</code>. If either is non-<code class="literal">NULL</code>, then both must
+be set. The value for <em class="parameter"><code>extra_certs</code></em>
+ is allocated
+using <code class="function">gnutls_malloc()</code>.</p>
+<p>Encrypted PKCS12 bags and PKCS8 private keys are supported, but
+only with password based security and the same password for all
+operations.</p>
+<p>Note that a PKCS12 structure may contain many keys and/or certificates,
+and there is no way to identify which key/certificate pair you want.
+For this reason this function is useful for PKCS12 files that contain
+only one key/certificate pair and/or one CRL.</p>
+<p>If the provided structure has encrypted fields but no password
+is provided then this function returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_DECRYPTION_FAILED"><code class="literal">GNUTLS_E_DECRYPTION_FAILED</code></a>.</p>
+<p>Note that normally the chain constructed does not include self signed
+certificates, to comply with TLS' requirements. If, however, the flag
+<a class="link" href="gnutls-pkcs12.html#GNUTLS-PKCS12-SP-INCLUDE-SELF-SIGNED:CAPS" title="GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED"><code class="literal">GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED</code></a> is specified then
+self signed certificates will be included in the chain.</p>
+<p>Prior to using this function the PKCS <span class="type">12</span> structure integrity must
+be verified using <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-verify-mac" title="gnutls_pkcs12_verify_mac ()"><code class="function">gnutls_pkcs12_verify_mac()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-simple-parse.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>p12</p></td>
+<td class="parameter_description"><p>A pkcs12 type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>optional password used to decrypt the structure, bags and keys.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>a structure to store the parsed private key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>chain</p></td>
+<td class="parameter_description"><p>the corresponding to key certificate chain (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>chain_len</p></td>
+<td class="parameter_description"><p>will be updated with the number of additional (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extra_certs</p></td>
+<td class="parameter_description"><p>optional pointer to receive an array of additional
+certificates found in the PKCS12 structure (may be <code class="literal">NULL</code>).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extra_certs_len</p></td>
+<td class="parameter_description"><p>will be updated with the number of additional
+certs (may be <code class="literal">NULL</code>).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl</p></td>
+<td class="parameter_description"><p>an optional structure to store the parsed CRL (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 or one of GNUTLS_PKCS12_SP_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-simple-parse.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-data"></a><h3>gnutls_pkcs12_bag_get_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_get_data (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</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>);</pre>
+<p>This function will return the bag's data. The data is a constant
+that is stored into the bag. Should not be accessed after the bag
+is deleted.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-data.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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>The element of the bag to get the data from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>where the bag's data will be. Should be treated as constant.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-data.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-pkcs12-bag-set-data"></a><h3>gnutls_pkcs12_bag_set_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_set_data (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t" title="enum gnutls_pkcs12_bag_type_t"><span class="type">gnutls_pkcs12_bag_type_t</span></a> type</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> *data</code></em>);</pre>
+<p>This function will insert the given data of the given type into
+the bag.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-data.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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The data's type</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 be copied.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-data.returns"></a><h4>Returns</h4>
+<p> the index of the added bag on success, or a negative
+value on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-crl"></a><h3>gnutls_pkcs12_bag_set_crl ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_set_crl (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>This function will insert the given CRL into the
+bag. This is just a wrapper over <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()"><code class="function">gnutls_pkcs12_bag_set_data()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-crl.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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl</p></td>
+<td class="parameter_description"><p>the CRL to be copied.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-crl.returns"></a><h4>Returns</h4>
+<p> the index of the added bag on success, or a negative error code
+on failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-crt"></a><h3>gnutls_pkcs12_bag_set_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_set_crt (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</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>);</pre>
+<p>This function will insert the given certificate into the
+bag. This is just a wrapper over <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()"><code class="function">gnutls_pkcs12_bag_set_data()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-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>bag</p></td>
+<td class="parameter_description"><p>The bag</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 be copied.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-crt.returns"></a><h4>Returns</h4>
+<p> the index of the added bag on success, or a negative
+value on failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-privkey"></a><h3>gnutls_pkcs12_bag_set_privkey ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_set_privkey (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</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> privkey</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will insert the given private key into the
+bag. This is just a wrapper over <a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data" title="gnutls_pkcs12_bag_set_data ()"><code class="function">gnutls_pkcs12_bag_set_data()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>privkey</p></td>
+<td class="parameter_description"><p>the private key to be copied.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>the password to protect the key with (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 one of <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><span class="type">gnutls_pkcs_encrypt_flags_t</span></a> elements bitwise or'd</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-privkey.returns"></a><h4>Returns</h4>
+<p> the index of the added bag on success, or a negative
+value on failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-init"></a><h3>gnutls_pkcs12_bag_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_init (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> *bag</code></em>);</pre>
+<p>This function will initialize a PKCS12 bag structure. PKCS12 Bags
+usually contain private keys, lists of X.509 Certificates and X.509
+Certificate revocation lists.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-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>bag</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-pkcs12-bag-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-pkcs12-bag-deinit"></a><h3>gnutls_pkcs12_bag_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_pkcs12_bag_deinit (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>This function will deinitialize a PKCS12 Bag structure.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-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>bag</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>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-count"></a><h3>gnutls_pkcs12_bag_get_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_get_count (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>);</pre>
+<p>This function will return the number of the elements within the bag.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-count.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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-count.returns"></a><h4>Returns</h4>
+<p> Number of elements in bag, or an negative error code on
+error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-key-id"></a><h3>gnutls_pkcs12_bag_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_get_key_id (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</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> *id</code></em>);</pre>
+<p>This function will return the key ID, of the specified bag element.
+The key ID is usually used to distinguish the local private key and
+the certificate pair.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>The bag's element to add the id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>where the ID will be copied (to be treated as const)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-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. or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-key-id"></a><h3>gnutls_pkcs12_bag_set_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_set_key_id (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</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>);</pre>
+<p>This function will add the given key ID, to the specified, by the
+index, bag element. The key ID will be encoded as a 'Local key
+identifier' bag attribute, which is usually used to distinguish
+the local private key and the certificate pair.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>The bag's element to add the id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>the ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-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. or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-get-friendly-name"></a><h3>gnutls_pkcs12_bag_get_friendly_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_get_friendly_name (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">char</span> **name</code></em>);</pre>
+<p>This function will return the friendly name, of the specified bag
+element. The key ID is usually used to distinguish the local
+private key and the certificate pair.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-friendly-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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>The bag's element to add the id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>will hold a pointer to the name (to be treated as const)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-get-friendly-name.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. or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-set-friendly-name"></a><h3>gnutls_pkcs12_bag_set_friendly_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs12_bag_set_friendly_name (<em class="parameter"><code><a class="link" href="gnutls-pkcs12.html#gnutls-pkcs12-bag-t" title="gnutls_pkcs12_bag_t"><span class="type">gnutls_pkcs12_bag_t</span></a> bag</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
+<p>This function will add the given key friendly name, to the
+specified, by the index, bag element. The name will be encoded as
+a 'Friendly name' bag attribute, which is usually used to set a
+user name to the local private key and the certificate pair.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-friendly-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>bag</p></td>
+<td class="parameter_description"><p>The bag</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>The bag's element to add the id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>the name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-set-friendly-name.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. or a negative error code on error.</p>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gnutls-pkcs12.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="gnutls-pkcs12-t"></a><h3>gnutls_pkcs12_t</h3>
+<pre class="programlisting">typedef struct gnutls_pkcs12_int *gnutls_pkcs12_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-t"></a><h3>gnutls_pkcs12_bag_t</h3>
+<pre class="programlisting">typedef struct gnutls_pkcs12_bag_int *gnutls_pkcs12_bag_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS12-SP-INCLUDE-SELF-SIGNED:CAPS"></a><h3>GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED</h3>
+<pre class="programlisting">#define GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-type-t"></a><h3>enum gnutls_pkcs12_bag_type_t</h3>
+<p>Enumeration of different PKCS 12 bag types.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs12-bag-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-BAG-EMPTY:CAPS"></a>GNUTLS_BAG_EMPTY</p></td>
+<td class="enum_member_description">
+<p>Empty PKCS-12 bag.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-BAG-PKCS8-ENCRYPTED-KEY:CAPS"></a>GNUTLS_BAG_PKCS8_ENCRYPTED_KEY</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 bag with PKCS-8 encrypted key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-BAG-PKCS8-KEY:CAPS"></a>GNUTLS_BAG_PKCS8_KEY</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 bag with PKCS-8 key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-BAG-CERTIFICATE:CAPS"></a>GNUTLS_BAG_CERTIFICATE</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 bag with certificate.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-BAG-CRL:CAPS"></a>GNUTLS_BAG_CRL</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 bag with CRL.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-BAG-SECRET:CAPS"></a>GNUTLS_BAG_SECRET</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 bag with secret PKCS-9 keys.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-BAG-ENCRYPTED:CAPS"></a>GNUTLS_BAG_ENCRYPTED</p></td>
+<td class="enum_member_description">
+<p>Encrypted PKCS-12 bag.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-BAG-UNKNOWN:CAPS"></a>GNUTLS_BAG_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown PKCS-12 bag.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-bag-int"></a><h3>gnutls_pkcs12_bag_int</h3>
+<pre class="programlisting">typedef struct {
+ struct bag_element element[MAX_BAG_ELEMENTS];
+ unsigned bag_elements;
+} gnutls_pkcs12_bag_int;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs12-int"></a><h3>gnutls_pkcs12_int</h3>
+<pre class="programlisting">typedef struct {
+ asn1_node pkcs12;
+ unsigned expanded;
+} gnutls_pkcs12_int;
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-tpm.html b/doc/reference/html/gnutls-tpm.html
new file mode 100644
index 0000000..8a58d7a
--- /dev/null
+++ b/doc/reference/html/gnutls-tpm.html
@@ -0,0 +1,429 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>tpm: 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-dtls.html" title="dtls">
+<link rel="next" href="api-index-full.html" title="API Index">
+<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-tpm.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-dtls.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="api-index-full.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-tpm"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-tpm.top_of_page"></a>tpm</span></h2>
+<p>tpm</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-tpm.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">
+<a class="link" href="gnutls-tpm.html#gnutls-tpm-privkey-generate" title="gnutls_tpm_privkey_generate ()">gnutls_tpm_privkey_generate</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-tpm.html#gnutls-tpm-key-list-deinit" title="gnutls_tpm_key_list_deinit ()">gnutls_tpm_key_list_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-tpm.html#gnutls-tpm-key-list-get-url" title="gnutls_tpm_key_list_get_url ()">gnutls_tpm_key_list_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-tpm.html#gnutls-tpm-get-registered" title="gnutls_tpm_get_registered ()">gnutls_tpm_get_registered</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-tpm.html#gnutls-tpm-privkey-delete" title="gnutls_tpm_privkey_delete ()">gnutls_tpm_privkey_delete</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-tpm.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="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-tpm.html#gnutls-tpm-key-list-t" title="gnutls_tpm_key_list_t">gnutls_tpm_key_list_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-tpm.html#GNUTLS-TPM-KEY-SIGNING:CAPS" title="GNUTLS_TPM_KEY_SIGNING">GNUTLS_TPM_KEY_SIGNING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-tpm.html#GNUTLS-TPM-REGISTER-KEY:CAPS" title="GNUTLS_TPM_REGISTER_KEY">GNUTLS_TPM_REGISTER_KEY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-tpm.html#GNUTLS-TPM-KEY-USER:CAPS" title="GNUTLS_TPM_KEY_USER">GNUTLS_TPM_KEY_USER</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-tpm.html#gnutls-tpmkey-fmt-t" title="enum gnutls_tpmkey_fmt_t">gnutls_tpmkey_fmt_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gnutls-tpm.html#tpm-key-list-st" title="struct tpm_key_list_st">tpm_key_list_st</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-tpm.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-tpm.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-tpm-privkey-generate"></a><h3>gnutls_tpm_privkey_generate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_tpm_privkey_generate (<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> *srk_password</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *key_password</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-tpm.html#gnutls-tpmkey-fmt-t" title="enum gnutls_tpmkey_fmt_t"><span class="type">gnutls_tpmkey_fmt_t</span></a> format</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> pub_format</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> *privkey</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 TPM
+chip. The private key will be generated within the chip
+and will be exported in a wrapped with TPM's master key
+form. Furthermore the wrapped key can be protected with
+the provided <em class="parameter"><code>password</code></em>
+.</p>
+<p>Note that bits in TPM is quantized value. If the input value
+is not one of the allowed values, then it will be quantized to
+one of 512, 1024, 2048, 4096, 8192 and 16384.</p>
+<p>Allowed flags are:</p>
+<p><a class="link" href="gnutls-tpm.html#GNUTLS-TPM-KEY-SIGNING:CAPS" title="GNUTLS_TPM_KEY_SIGNING"><code class="literal">GNUTLS_TPM_KEY_SIGNING</code></a>: Generate a signing key instead of a legacy,</p>
+<p><a class="link" href="gnutls-tpm.html#GNUTLS-TPM-REGISTER-KEY:CAPS" title="GNUTLS_TPM_REGISTER_KEY"><code class="literal">GNUTLS_TPM_REGISTER_KEY</code></a>: Register the generate key in TPM. In that
+case <em class="parameter"><code>privkey</code></em>
+ would contain a URL with the UUID.</p>
+<div class="refsect3">
+<a name="gnutls-tpm-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>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>srk_password</p></td>
+<td class="parameter_description"><p>a password to protect the exported key (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_password</p></td>
+<td class="parameter_description"><p>the password for the TPM (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pub_format</p></td>
+<td class="parameter_description"><p>the format of the public key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>privkey</p></td>
+<td class="parameter_description"><p>the generated key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pubkey</p></td>
+<td class="parameter_description"><p>the corresponding public key (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be a list of GNUTLS_TPM_* flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-tpm-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.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tpm-key-list-deinit"></a><h3>gnutls_tpm_key_list_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_tpm_key_list_deinit (<em class="parameter"><code><a class="link" href="gnutls-tpm.html#gnutls-tpm-key-list-t" title="gnutls_tpm_key_list_t"><span class="type">gnutls_tpm_key_list_t</span></a> list</code></em>);</pre>
+<p>This function will deinitialize the list of stored keys in the TPM.</p>
+<div class="refsect3">
+<a name="gnutls-tpm-key-list-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>list</p></td>
+<td class="parameter_description"><p>a list of the keys</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-tpm-key-list-get-url"></a><h3>gnutls_tpm_key_list_get_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_tpm_key_list_get_url (<em class="parameter"><code><a class="link" href="gnutls-tpm.html#gnutls-tpm-key-list-t" title="gnutls_tpm_key_list_t"><span class="type">gnutls_tpm_key_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> idx</code></em>,
+ <em class="parameter"><code><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 for each given index a URL of
+the corresponding key.
+If the provided index is out of bounds then <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>
+is returned.</p>
+<div class="refsect3">
+<a name="gnutls-tpm-key-list-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>list</p></td>
+<td class="parameter_description"><p>a list of the keys</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 key (starting from zero)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>url</p></td>
+<td class="parameter_description"><p>The URL to be returned</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-tpm-key-list-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, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 3.1.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tpm-get-registered"></a><h3>gnutls_tpm_get_registered ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_tpm_get_registered (<em class="parameter"><code><a class="link" href="gnutls-tpm.html#gnutls-tpm-key-list-t" title="gnutls_tpm_key_list_t"><span class="type">gnutls_tpm_key_list_t</span></a> *list</code></em>);</pre>
+<p>This function will get a list of stored keys in the TPM. The uuid
+of those keys</p>
+<div class="refsect3">
+<a name="gnutls-tpm-get-registered.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>list</p></td>
+<td class="parameter_description"><p>a list to store the keys</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-tpm-get-registered.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tpm-privkey-delete"></a><h3>gnutls_tpm_privkey_delete ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_tpm_privkey_delete (<em class="parameter"><code>const <span class="type">char</span> *url</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *srk_password</code></em>);</pre>
+<p>This function will unregister the private key from the TPM
+chip.</p>
+<div class="refsect3">
+<a name="gnutls-tpm-privkey-delete.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>the URL describing the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>srk_password</p></td>
+<td class="parameter_description"><p>a password for the SRK key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-tpm-privkey-delete.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.0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gnutls-tpm.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="gnutls-tpm-key-list-t"></a><h3>gnutls_tpm_key_list_t</h3>
+<pre class="programlisting">typedef struct tpm_key_list_st *gnutls_tpm_key_list_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-TPM-KEY-SIGNING:CAPS"></a><h3>GNUTLS_TPM_KEY_SIGNING</h3>
+<pre class="programlisting">#define GNUTLS_TPM_KEY_SIGNING (1&lt;&lt;1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-TPM-REGISTER-KEY:CAPS"></a><h3>GNUTLS_TPM_REGISTER_KEY</h3>
+<pre class="programlisting">#define GNUTLS_TPM_REGISTER_KEY (1&lt;&lt;2)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-TPM-KEY-USER:CAPS"></a><h3>GNUTLS_TPM_KEY_USER</h3>
+<pre class="programlisting">#define GNUTLS_TPM_KEY_USER (1&lt;&lt;3)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-tpmkey-fmt-t"></a><h3>enum gnutls_tpmkey_fmt_t</h3>
+<p>Enumeration of different certificate encoding formats.</p>
+<div class="refsect3">
+<a name="gnutls-tpmkey-fmt-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-TPMKEY-FMT-RAW:CAPS"></a>GNUTLS_TPMKEY_FMT_RAW</p></td>
+<td class="enum_member_description">
+<p>The portable data format.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TPMKEY-FMT-DER:CAPS"></a>GNUTLS_TPMKEY_FMT_DER</p></td>
+<td class="enum_member_description">
+<p>An alias for the raw format.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TPMKEY-FMT-CTK-PEM:CAPS"></a>GNUTLS_TPMKEY_FMT_CTK_PEM</p></td>
+<td class="enum_member_description">
+<p>A custom data format used by some TPM tools.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="tpm-key-list-st"></a><h3>struct tpm_key_list_st</h3>
+<pre class="programlisting">struct tpm_key_list_st;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls-x509.html b/doc/reference/html/gnutls-x509.html
new file mode 100644
index 0000000..8f48643
--- /dev/null
+++ b/doc/reference/html/gnutls-x509.html
@@ -0,0 +1,19834 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>x509: 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-abstract.html" title="abstract">
+<link rel="next" href="gnutls-openpgp.html" title="openpgp">
+<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-x509.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-abstract.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-openpgp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gnutls-x509"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gnutls-x509.top_of_page"></a>x509</span></h2>
+<p>x509</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gnutls-x509.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">
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-init" title="gnutls_x509_crt_init ()">gnutls_x509_crt_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-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()">gnutls_x509_crt_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-x509.html#gnutls-x509-crt-set-flags" title="gnutls_x509_crt_set_flags ()">gnutls_x509_crt_set_flags</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-x509.html#gnutls-x509-crt-equals" title="gnutls_x509_crt_equals ()">gnutls_x509_crt_equals</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-x509.html#gnutls-x509-crt-equals2" title="gnutls_x509_crt_equals2 ()">gnutls_x509_crt_equals2</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-x509.html#gnutls-x509-crt-import" title="gnutls_x509_crt_import ()">gnutls_x509_crt_import</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-x509.html#gnutls-x509-crt-list-import2" title="gnutls_x509_crt_list_import2 ()">gnutls_x509_crt_list_import2</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-x509.html#gnutls-x509-crt-list-import" title="gnutls_x509_crt_list_import ()">gnutls_x509_crt_list_import</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-x509.html#gnutls-x509-crt-import-url" title="gnutls_x509_crt_import_url ()">gnutls_x509_crt_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-x509.html#gnutls-x509-crt-list-import-url" title="gnutls_x509_crt_list_import_url ()">gnutls_x509_crt_list_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-x509.html#gnutls-x509-crt-export" title="gnutls_x509_crt_export ()">gnutls_x509_crt_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-x509.html#gnutls-x509-crt-export2" title="gnutls_x509_crt_export2 ()">gnutls_x509_crt_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-x509.html#gnutls-x509-crt-get-private-key-usage-period" title="gnutls_x509_crt_get_private_key_usage_period ()">gnutls_x509_crt_get_private_key_usage_period</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-x509.html#gnutls-x509-crt-get-issuer-dn" title="gnutls_x509_crt_get_issuer_dn ()">gnutls_x509_crt_get_issuer_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-x509.html#gnutls-x509-crt-get-issuer-dn2" title="gnutls_x509_crt_get_issuer_dn2 ()">gnutls_x509_crt_get_issuer_dn2</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-x509.html#gnutls-x509-crt-get-issuer-dn3" title="gnutls_x509_crt_get_issuer_dn3 ()">gnutls_x509_crt_get_issuer_dn3</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-x509.html#gnutls-x509-crt-get-issuer-dn-oid" title="gnutls_x509_crt_get_issuer_dn_oid ()">gnutls_x509_crt_get_issuer_dn_oid</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-x509.html#gnutls-x509-crt-get-issuer-dn-by-oid" title="gnutls_x509_crt_get_issuer_dn_by_oid ()">gnutls_x509_crt_get_issuer_dn_by_oid</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-x509.html#gnutls-x509-crt-get-dn" title="gnutls_x509_crt_get_dn ()">gnutls_x509_crt_get_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-x509.html#gnutls-x509-crt-get-dn2" title="gnutls_x509_crt_get_dn2 ()">gnutls_x509_crt_get_dn2</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-x509.html#gnutls-x509-crt-get-dn3" title="gnutls_x509_crt_get_dn3 ()">gnutls_x509_crt_get_dn3</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-x509.html#gnutls-x509-crt-get-dn-oid" title="gnutls_x509_crt_get_dn_oid ()">gnutls_x509_crt_get_dn_oid</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-x509.html#gnutls-x509-crt-get-dn-by-oid" title="gnutls_x509_crt_get_dn_by_oid ()">gnutls_x509_crt_get_dn_by_oid</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-x509.html#gnutls-x509-crt-check-hostname" title="gnutls_x509_crt_check_hostname ()">gnutls_x509_crt_check_hostname</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-x509.html#gnutls-x509-crt-check-hostname2" title="gnutls_x509_crt_check_hostname2 ()">gnutls_x509_crt_check_hostname2</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-x509.html#gnutls-x509-crt-check-email" title="gnutls_x509_crt_check_email ()">gnutls_x509_crt_check_email</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-x509.html#gnutls-x509-crt-check-ip" title="gnutls_x509_crt_check_ip ()">gnutls_x509_crt_check_ip</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-x509.html#gnutls-x509-crt-get-signature-algorithm" title="gnutls_x509_crt_get_signature_algorithm ()">gnutls_x509_crt_get_signature_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-x509.html#gnutls-x509-crt-get-signature" title="gnutls_x509_crt_get_signature ()">gnutls_x509_crt_get_signature</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-x509.html#gnutls-x509-crt-get-version" title="gnutls_x509_crt_get_version ()">gnutls_x509_crt_get_version</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-x509.html#gnutls-x509-crt-get-pk-oid" title="gnutls_x509_crt_get_pk_oid ()">gnutls_x509_crt_get_pk_oid</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-x509.html#gnutls-x509-crt-get-signature-oid" title="gnutls_x509_crt_get_signature_oid ()">gnutls_x509_crt_get_signature_oid</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-x509.html#gnutls-x509-crt-get-key-id" title="gnutls_x509_crt_get_key_id ()">gnutls_x509_crt_get_key_id</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-x509.html#gnutls-x509-crt-set-private-key-usage-period" title="gnutls_x509_crt_set_private_key_usage_period ()">gnutls_x509_crt_set_private_key_usage_period</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-x509.html#gnutls-x509-crt-set-authority-key-id" title="gnutls_x509_crt_set_authority_key_id ()">gnutls_x509_crt_set_authority_key_id</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-x509.html#gnutls-x509-crt-get-authority-key-id" title="gnutls_x509_crt_get_authority_key_id ()">gnutls_x509_crt_get_authority_key_id</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-x509.html#gnutls-x509-crt-get-authority-key-gn-serial" title="gnutls_x509_crt_get_authority_key_gn_serial ()">gnutls_x509_crt_get_authority_key_gn_serial</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-x509.html#gnutls-x509-crt-get-subject-key-id" title="gnutls_x509_crt_get_subject_key_id ()">gnutls_x509_crt_get_subject_key_id</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-x509.html#gnutls-x509-crt-get-subject-unique-id" title="gnutls_x509_crt_get_subject_unique_id ()">gnutls_x509_crt_get_subject_unique_id</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-x509.html#gnutls-x509-crt-get-issuer-unique-id" title="gnutls_x509_crt_get_issuer_unique_id ()">gnutls_x509_crt_get_issuer_unique_id</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-x509.html#gnutls-x509-crt-set-pin-function" title="gnutls_x509_crt_set_pin_function ()">gnutls_x509_crt_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-x509.html#gnutls-x509-crt-get-authority-info-access" title="gnutls_x509_crt_get_authority_info_access ()">gnutls_x509_crt_get_authority_info_access</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-x509.html#gnutls-x509-name-constraints-check" title="gnutls_x509_name_constraints_check ()">gnutls_x509_name_constraints_check</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-x509.html#gnutls-x509-name-constraints-check-crt" title="gnutls_x509_name_constraints_check_crt ()">gnutls_x509_name_constraints_check_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-x509.html#gnutls-x509-name-constraints-init" title="gnutls_x509_name_constraints_init ()">gnutls_x509_name_constraints_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-x509.html#gnutls-x509-name-constraints-deinit" title="gnutls_x509_name_constraints_deinit ()">gnutls_x509_name_constraints_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-x509.html#gnutls-x509-crt-get-name-constraints" title="gnutls_x509_crt_get_name_constraints ()">gnutls_x509_crt_get_name_constraints</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-x509.html#gnutls-x509-name-constraints-add-permitted" title="gnutls_x509_name_constraints_add_permitted ()">gnutls_x509_name_constraints_add_permitted</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-x509.html#gnutls-x509-name-constraints-add-excluded" title="gnutls_x509_name_constraints_add_excluded ()">gnutls_x509_name_constraints_add_excluded</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-x509.html#gnutls-x509-crt-set-name-constraints" title="gnutls_x509_crt_set_name_constraints ()">gnutls_x509_crt_set_name_constraints</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-x509.html#gnutls-x509-name-constraints-get-permitted" title="gnutls_x509_name_constraints_get_permitted ()">gnutls_x509_name_constraints_get_permitted</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-x509.html#gnutls-x509-name-constraints-get-excluded" title="gnutls_x509_name_constraints_get_excluded ()">gnutls_x509_name_constraints_get_excluded</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-x509.html#gnutls-x509-cidr-to-rfc5280" title="gnutls_x509_cidr_to_rfc5280 ()">gnutls_x509_cidr_to_rfc5280</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-x509.html#gnutls-x509-crt-get-crl-dist-points" title="gnutls_x509_crt_get_crl_dist_points ()">gnutls_x509_crt_get_crl_dist_points</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-x509.html#gnutls-x509-crt-set-crl-dist-points2" title="gnutls_x509_crt_set_crl_dist_points2 ()">gnutls_x509_crt_set_crl_dist_points2</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-x509.html#gnutls-x509-crt-set-crl-dist-points" title="gnutls_x509_crt_set_crl_dist_points ()">gnutls_x509_crt_set_crl_dist_points</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-x509.html#gnutls-x509-crt-cpy-crl-dist-points" title="gnutls_x509_crt_cpy_crl_dist_points ()">gnutls_x509_crt_cpy_crl_dist_points</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-x509.html#gnutls-x509-crl-sign" title="gnutls_x509_crl_sign ()">gnutls_x509_crl_sign</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-x509.html#gnutls-x509-crl-sign2" title="gnutls_x509_crl_sign2 ()">gnutls_x509_crl_sign2</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-activation-time" title="gnutls_x509_crt_get_activation_time ()">gnutls_x509_crt_get_activation_time</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-expiration-time" title="gnutls_x509_crt_get_expiration_time ()">gnutls_x509_crt_get_expiration_time</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-x509.html#gnutls-x509-crt-get-serial" title="gnutls_x509_crt_get_serial ()">gnutls_x509_crt_get_serial</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-x509.html#gnutls-x509-spki-init" title="gnutls_x509_spki_init ()">gnutls_x509_spki_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-x509.html#gnutls-x509-spki-deinit" title="gnutls_x509_spki_deinit ()">gnutls_x509_spki_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-x509.html#gnutls-x509-spki-get-rsa-pss-params" title="gnutls_x509_spki_get_rsa_pss_params ()">gnutls_x509_spki_get_rsa_pss_params</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-x509.html#gnutls-x509-spki-set-rsa-pss-params" title="gnutls_x509_spki_set_rsa_pss_params ()">gnutls_x509_spki_set_rsa_pss_params</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-x509.html#gnutls-x509-crt-get-pk-algorithm" title="gnutls_x509_crt_get_pk_algorithm ()">gnutls_x509_crt_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-x509.html#gnutls-x509-crt-set-spki" title="gnutls_x509_crt_set_spki ()">gnutls_x509_crt_set_spki</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-x509.html#gnutls-x509-crt-get-spki" title="gnutls_x509_crt_get_spki ()">gnutls_x509_crt_get_spki</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-x509.html#gnutls-x509-crt-get-pk-rsa-raw" title="gnutls_x509_crt_get_pk_rsa_raw ()">gnutls_x509_crt_get_pk_rsa_raw</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-x509.html#gnutls-x509-crt-get-pk-dsa-raw" title="gnutls_x509_crt_get_pk_dsa_raw ()">gnutls_x509_crt_get_pk_dsa_raw</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-x509.html#gnutls-x509-crt-get-pk-ecc-raw" title="gnutls_x509_crt_get_pk_ecc_raw ()">gnutls_x509_crt_get_pk_ecc_raw</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-x509.html#gnutls-x509-crt-get-pk-gost-raw" title="gnutls_x509_crt_get_pk_gost_raw ()">gnutls_x509_crt_get_pk_gost_raw</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-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()">gnutls_x509_crt_get_subject_alt_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-x509.html#gnutls-x509-crt-get-subject-alt-name2" title="gnutls_x509_crt_get_subject_alt_name2 ()">gnutls_x509_crt_get_subject_alt_name2</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-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()">gnutls_x509_crt_get_subject_alt_othername_oid</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-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()">gnutls_x509_crt_get_issuer_alt_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-x509.html#gnutls-x509-crt-get-issuer-alt-name2" title="gnutls_x509_crt_get_issuer_alt_name2 ()">gnutls_x509_crt_get_issuer_alt_name2</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-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid" title="gnutls_x509_crt_get_issuer_alt_othername_oid ()">gnutls_x509_crt_get_issuer_alt_othername_oid</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-x509.html#gnutls-x509-crt-get-ca-status" title="gnutls_x509_crt_get_ca_status ()">gnutls_x509_crt_get_ca_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-x509.html#gnutls-x509-crt-get-basic-constraints" title="gnutls_x509_crt_get_basic_constraints ()">gnutls_x509_crt_get_basic_constraints</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-x509.html#gnutls-x509-crt-get-key-usage" title="gnutls_x509_crt_get_key_usage ()">gnutls_x509_crt_get_key_usage</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-x509.html#gnutls-x509-crt-set-key-usage" title="gnutls_x509_crt_set_key_usage ()">gnutls_x509_crt_set_key_usage</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-x509.html#gnutls-x509-crt-set-authority-info-access" title="gnutls_x509_crt_set_authority_info_access ()">gnutls_x509_crt_set_authority_info_access</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-x509.html#gnutls-x509-crt-get-inhibit-anypolicy" title="gnutls_x509_crt_get_inhibit_anypolicy ()">gnutls_x509_crt_get_inhibit_anypolicy</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-x509.html#gnutls-x509-crt-set-inhibit-anypolicy" title="gnutls_x509_crt_set_inhibit_anypolicy ()">gnutls_x509_crt_set_inhibit_anypolicy</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-x509.html#gnutls-x509-crt-get-proxy" title="gnutls_x509_crt_get_proxy ()">gnutls_x509_crt_get_proxy</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-x509.html#gnutls-x509-tlsfeatures-init" title="gnutls_x509_tlsfeatures_init ()">gnutls_x509_tlsfeatures_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-x509.html#gnutls-x509-tlsfeatures-deinit" title="gnutls_x509_tlsfeatures_deinit ()">gnutls_x509_tlsfeatures_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-x509.html#gnutls-x509-tlsfeatures-get" title="gnutls_x509_tlsfeatures_get ()">gnutls_x509_tlsfeatures_get</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-x509.html#gnutls-x509-crt-set-tlsfeatures" title="gnutls_x509_crt_set_tlsfeatures ()">gnutls_x509_crt_set_tlsfeatures</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-x509.html#gnutls-x509-crt-get-tlsfeatures" title="gnutls_x509_crt_get_tlsfeatures ()">gnutls_x509_crt_get_tlsfeatures</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-x509.html#gnutls-x509-tlsfeatures-check-crt" title="gnutls_x509_tlsfeatures_check_crt ()">gnutls_x509_tlsfeatures_check_crt</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-x509.html#gnutls-x509-policy-release" title="gnutls_x509_policy_release ()">gnutls_x509_policy_release</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-x509.html#gnutls-x509-crt-get-policy" title="gnutls_x509_crt_get_policy ()">gnutls_x509_crt_get_policy</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-x509.html#gnutls-x509-crt-set-policy" title="gnutls_x509_crt_set_policy ()">gnutls_x509_crt_set_policy</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-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()">gnutls_x509_dn_oid_known</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-x509.html#gnutls-x509-dn-oid-name" title="gnutls_x509_dn_oid_name ()">gnutls_x509_dn_oid_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-x509.html#gnutls-x509-crt-get-extension-oid" title="gnutls_x509_crt_get_extension_oid ()">gnutls_x509_crt_get_extension_oid</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-x509.html#gnutls-x509-crt-get-extension-by-oid" title="gnutls_x509_crt_get_extension_by_oid ()">gnutls_x509_crt_get_extension_by_oid</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-x509.html#gnutls-x509-crq-get-signature-algorithm" title="gnutls_x509_crq_get_signature_algorithm ()">gnutls_x509_crq_get_signature_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-x509.html#gnutls-x509-crq-get-extension-by-oid2" title="gnutls_x509_crq_get_extension_by_oid2 ()">gnutls_x509_crq_get_extension_by_oid2</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-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()">gnutls_x509_crt_get_extension_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-x509.html#gnutls-x509-crt-get-extension-data" title="gnutls_x509_crt_get_extension_data ()">gnutls_x509_crt_get_extension_data</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-x509.html#gnutls-x509-crt-get-extension-data2" title="gnutls_x509_crt_get_extension_data2 ()">gnutls_x509_crt_get_extension_data2</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-x509.html#gnutls-x509-crt-set-extension-by-oid" title="gnutls_x509_crt_set_extension_by_oid ()">gnutls_x509_crt_set_extension_by_oid</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-x509.html#gnutls-x509-crt-set-dn" title="gnutls_x509_crt_set_dn ()">gnutls_x509_crt_set_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-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()">gnutls_x509_crt_set_dn_by_oid</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-x509.html#gnutls-x509-crt-set-issuer-dn-by-oid" title="gnutls_x509_crt_set_issuer_dn_by_oid ()">gnutls_x509_crt_set_issuer_dn_by_oid</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-x509.html#gnutls-x509-crt-set-issuer-dn" title="gnutls_x509_crt_set_issuer_dn ()">gnutls_x509_crt_set_issuer_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-x509.html#gnutls-x509-crt-set-version" title="gnutls_x509_crt_set_version ()">gnutls_x509_crt_set_version</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-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()">gnutls_x509_crt_set_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-x509.html#gnutls-x509-crt-set-ca-status" title="gnutls_x509_crt_set_ca_status ()">gnutls_x509_crt_set_ca_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-x509.html#gnutls-x509-crt-set-basic-constraints" title="gnutls_x509_crt_set_basic_constraints ()">gnutls_x509_crt_set_basic_constraints</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-x509.html#gnutls-x509-crt-set-subject-unique-id" title="gnutls_x509_crt_set_subject_unique_id ()">gnutls_x509_crt_set_subject_unique_id</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-x509.html#gnutls-x509-crt-set-issuer-unique-id" title="gnutls_x509_crt_set_issuer_unique_id ()">gnutls_x509_crt_set_issuer_unique_id</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-x509.html#gnutls-x509-crt-set-subject-alternative-name" title="gnutls_x509_crt_set_subject_alternative_name ()">gnutls_x509_crt_set_subject_alternative_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-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()">gnutls_x509_crt_set_subject_alt_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-x509.html#gnutls-x509-crt-set-subject-alt-othername" title="gnutls_x509_crt_set_subject_alt_othername ()">gnutls_x509_crt_set_subject_alt_othername</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-x509.html#gnutls-x509-crt-set-issuer-alt-name" title="gnutls_x509_crt_set_issuer_alt_name ()">gnutls_x509_crt_set_issuer_alt_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-x509.html#gnutls-x509-crt-set-issuer-alt-othername" title="gnutls_x509_crt_set_issuer_alt_othername ()">gnutls_x509_crt_set_issuer_alt_othername</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-x509.html#gnutls-x509-crt-sign" title="gnutls_x509_crt_sign ()">gnutls_x509_crt_sign</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-x509.html#gnutls-x509-crt-sign2" title="gnutls_x509_crt_sign2 ()">gnutls_x509_crt_sign2</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-x509.html#gnutls-x509-crt-set-activation-time" title="gnutls_x509_crt_set_activation_time ()">gnutls_x509_crt_set_activation_time</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-x509.html#gnutls-x509-crt-set-expiration-time" title="gnutls_x509_crt_set_expiration_time ()">gnutls_x509_crt_set_expiration_time</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-x509.html#gnutls-x509-crt-set-serial" title="gnutls_x509_crt_set_serial ()">gnutls_x509_crt_set_serial</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-x509.html#gnutls-x509-crt-set-subject-key-id" title="gnutls_x509_crt_set_subject_key_id ()">gnutls_x509_crt_set_subject_key_id</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-x509.html#gnutls-x509-crt-set-proxy-dn" title="gnutls_x509_crt_set_proxy_dn ()">gnutls_x509_crt_set_proxy_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-x509.html#gnutls-x509-crt-set-proxy" title="gnutls_x509_crt_set_proxy ()">gnutls_x509_crt_set_proxy</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-x509.html#gnutls-x509-crt-print" title="gnutls_x509_crt_print ()">gnutls_x509_crt_print</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-x509.html#gnutls-x509-crl-print" title="gnutls_x509_crl_print ()">gnutls_x509_crl_print</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-x509.html#gnutls-x509-crt-get-raw-issuer-dn" title="gnutls_x509_crt_get_raw_issuer_dn ()">gnutls_x509_crt_get_raw_issuer_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-x509.html#gnutls-x509-crt-get-raw-dn" title="gnutls_x509_crt_get_raw_dn ()">gnutls_x509_crt_get_raw_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-x509.html#gnutls-x509-rdn-get" title="gnutls_x509_rdn_get ()">gnutls_x509_rdn_get</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-x509.html#gnutls-x509-rdn-get2" title="gnutls_x509_rdn_get2 ()">gnutls_x509_rdn_get2</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-x509.html#gnutls-x509-rdn-get-oid" title="gnutls_x509_rdn_get_oid ()">gnutls_x509_rdn_get_oid</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-x509.html#gnutls-x509-rdn-get-by-oid" title="gnutls_x509_rdn_get_by_oid ()">gnutls_x509_rdn_get_by_oid</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-x509.html#gnutls-x509-crt-get-subject" title="gnutls_x509_crt_get_subject ()">gnutls_x509_crt_get_subject</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-x509.html#gnutls-x509-crt-get-issuer" title="gnutls_x509_crt_get_issuer ()">gnutls_x509_crt_get_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-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()">gnutls_x509_dn_get_rdn_ava</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-x509.html#gnutls-x509-dn-get-str" title="gnutls_x509_dn_get_str ()">gnutls_x509_dn_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-x509.html#gnutls-x509-dn-get-str2" title="gnutls_x509_dn_get_str2 ()">gnutls_x509_dn_get_str2</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-x509.html#gnutls-x509-dn-set-str" title="gnutls_x509_dn_set_str ()">gnutls_x509_dn_set_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-x509.html#gnutls-x509-dn-init" title="gnutls_x509_dn_init ()">gnutls_x509_dn_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-x509.html#gnutls-x509-dn-import" title="gnutls_x509_dn_import ()">gnutls_x509_dn_import</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-x509.html#gnutls-x509-dn-export" title="gnutls_x509_dn_export ()">gnutls_x509_dn_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-x509.html#gnutls-x509-dn-export2" title="gnutls_x509_dn_export2 ()">gnutls_x509_dn_export2</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-x509.html#gnutls-x509-dn-deinit" title="gnutls_x509_dn_deinit ()">gnutls_x509_dn_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-x509.html#gnutls-x509-crl-init" title="gnutls_x509_crl_init ()">gnutls_x509_crl_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-x509.html#gnutls-x509-crl-deinit" title="gnutls_x509_crl_deinit ()">gnutls_x509_crl_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-x509.html#gnutls-x509-crl-import" title="gnutls_x509_crl_import ()">gnutls_x509_crl_import</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-x509.html#gnutls-x509-crl-export" title="gnutls_x509_crl_export ()">gnutls_x509_crl_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-x509.html#gnutls-x509-crl-export2" title="gnutls_x509_crl_export2 ()">gnutls_x509_crl_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-x509.html#gnutls-x509-crl-get-raw-issuer-dn" title="gnutls_x509_crl_get_raw_issuer_dn ()">gnutls_x509_crl_get_raw_issuer_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-x509.html#gnutls-x509-crl-get-issuer-dn" title="gnutls_x509_crl_get_issuer_dn ()">gnutls_x509_crl_get_issuer_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-x509.html#gnutls-x509-crl-get-issuer-dn2" title="gnutls_x509_crl_get_issuer_dn2 ()">gnutls_x509_crl_get_issuer_dn2</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-x509.html#gnutls-x509-crl-get-issuer-dn3" title="gnutls_x509_crl_get_issuer_dn3 ()">gnutls_x509_crl_get_issuer_dn3</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-x509.html#gnutls-x509-crl-get-issuer-dn-by-oid" title="gnutls_x509_crl_get_issuer_dn_by_oid ()">gnutls_x509_crl_get_issuer_dn_by_oid</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-x509.html#gnutls-x509-crl-get-dn-oid" title="gnutls_x509_crl_get_dn_oid ()">gnutls_x509_crl_get_dn_oid</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-x509.html#gnutls-x509-crl-get-signature-algorithm" title="gnutls_x509_crl_get_signature_algorithm ()">gnutls_x509_crl_get_signature_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-x509.html#gnutls-x509-crl-get-signature" title="gnutls_x509_crl_get_signature ()">gnutls_x509_crl_get_signature</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-x509.html#gnutls-x509-crl-get-version" title="gnutls_x509_crl_get_version ()">gnutls_x509_crl_get_version</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-x509.html#gnutls-x509-crl-get-signature-oid" title="gnutls_x509_crl_get_signature_oid ()">gnutls_x509_crl_get_signature_oid</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-this-update" title="gnutls_x509_crl_get_this_update ()">gnutls_x509_crl_get_this_update</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">time_t</span>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-next-update" title="gnutls_x509_crl_get_next_update ()">gnutls_x509_crl_get_next_update</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-x509.html#gnutls-x509-crl-get-crt-count" title="gnutls_x509_crl_get_crt_count ()">gnutls_x509_crl_get_crt_count</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-x509.html#gnutls-x509-crl-get-crt-serial" title="gnutls_x509_crl_get_crt_serial ()">gnutls_x509_crl_get_crt_serial</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-x509.html#gnutls-x509-crl-iter-crt-serial" title="gnutls_x509_crl_iter_crt_serial ()">gnutls_x509_crl_iter_crt_serial</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-x509.html#gnutls-x509-crl-iter-deinit" title="gnutls_x509_crl_iter_deinit ()">gnutls_x509_crl_iter_deinit</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-x509.html#gnutls-x509-crl-check-issuer" title="gnutls_x509_crl_check_issuer ()">gnutls_x509_crl_check_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-x509.html#gnutls-x509-crl-list-import2" title="gnutls_x509_crl_list_import2 ()">gnutls_x509_crl_list_import2</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-x509.html#gnutls-x509-crl-list-import" title="gnutls_x509_crl_list_import ()">gnutls_x509_crl_list_import</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-x509.html#gnutls-x509-crl-set-version" title="gnutls_x509_crl_set_version ()">gnutls_x509_crl_set_version</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-x509.html#gnutls-x509-crl-set-this-update" title="gnutls_x509_crl_set_this_update ()">gnutls_x509_crl_set_this_update</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-x509.html#gnutls-x509-crl-set-next-update" title="gnutls_x509_crl_set_next_update ()">gnutls_x509_crl_set_next_update</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-x509.html#gnutls-x509-crl-set-crt-serial" title="gnutls_x509_crl_set_crt_serial ()">gnutls_x509_crl_set_crt_serial</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-x509.html#gnutls-x509-crl-set-crt" title="gnutls_x509_crl_set_crt ()">gnutls_x509_crl_set_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-x509.html#gnutls-x509-crl-get-authority-key-id" title="gnutls_x509_crl_get_authority_key_id ()">gnutls_x509_crl_get_authority_key_id</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-x509.html#gnutls-x509-crl-get-authority-key-gn-serial" title="gnutls_x509_crl_get_authority_key_gn_serial ()">gnutls_x509_crl_get_authority_key_gn_serial</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-x509.html#gnutls-x509-crl-get-number" title="gnutls_x509_crl_get_number ()">gnutls_x509_crl_get_number</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-x509.html#gnutls-x509-crl-get-extension-oid" title="gnutls_x509_crl_get_extension_oid ()">gnutls_x509_crl_get_extension_oid</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-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()">gnutls_x509_crl_get_extension_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-x509.html#gnutls-x509-crl-get-extension-data" title="gnutls_x509_crl_get_extension_data ()">gnutls_x509_crl_get_extension_data</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-x509.html#gnutls-x509-crl-get-extension-data2" title="gnutls_x509_crl_get_extension_data2 ()">gnutls_x509_crl_get_extension_data2</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-x509.html#gnutls-x509-crl-set-authority-key-id" title="gnutls_x509_crl_set_authority_key_id ()">gnutls_x509_crl_set_authority_key_id</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-x509.html#gnutls-x509-crl-set-number" title="gnutls_x509_crl_set_number ()">gnutls_x509_crl_set_number</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#GNUTLS-PROFILE-TO-VFLAGS:CAPS" title="GNUTLS_PROFILE_TO_VFLAGS()">GNUTLS_PROFILE_TO_VFLAGS</a><span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#GNUTLS-VFLAGS-TO-PROFILE:CAPS" title="GNUTLS_VFLAGS_TO_PROFILE()">GNUTLS_VFLAGS_TO_PROFILE</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-x509.html#gnutls-certificate-verification-profile-get-name" title="gnutls_certificate_verification_profile_get_name ()">gnutls_certificate_verification_profile_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-x509.html#gnutls-x509-crt-list-verify" title="gnutls_x509_crt_list_verify ()">gnutls_x509_crt_list_verify</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-x509.html#gnutls-x509-crt-verify" title="gnutls_x509_crt_verify ()">gnutls_x509_crt_verify</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-x509.html#gnutls-x509-crl-verify" title="gnutls_x509_crl_verify ()">gnutls_x509_crl_verify</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-x509.html#gnutls-x509-crt-verify-data2" title="gnutls_x509_crt_verify_data2 ()">gnutls_x509_crt_verify_data2</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-x509.html#gnutls-x509-crt-check-revocation" title="gnutls_x509_crt_check_revocation ()">gnutls_x509_crt_check_revocation</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-x509.html#gnutls-x509-crt-get-fingerprint" title="gnutls_x509_crt_get_fingerprint ()">gnutls_x509_crt_get_fingerprint</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-x509.html#gnutls-x509-crt-get-key-purpose-oid" title="gnutls_x509_crt_get_key_purpose_oid ()">gnutls_x509_crt_get_key_purpose_oid</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-x509.html#gnutls-x509-crt-set-key-purpose-oid" title="gnutls_x509_crt_set_key_purpose_oid ()">gnutls_x509_crt_set_key_purpose_oid</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-x509.html#gnutls-x509-crt-check-key-purpose" title="gnutls_x509_crt_check_key_purpose ()">gnutls_x509_crt_check_key_purpose</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#GNUTLS-PKCS-CIPHER-MASK:CAPS" title="GNUTLS_PKCS_CIPHER_MASK()">GNUTLS_PKCS_CIPHER_MASK</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-x509.html#gnutls-pkcs-schema-get-name" title="gnutls_pkcs_schema_get_name ()">gnutls_pkcs_schema_get_name</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-x509.html#gnutls-pkcs-schema-get-oid" title="gnutls_pkcs_schema_get_oid ()">gnutls_pkcs_schema_get_oid</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-x509.html#gnutls-x509-privkey-init" title="gnutls_x509_privkey_init ()">gnutls_x509_privkey_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-x509.html#gnutls-x509-privkey-deinit" title="gnutls_x509_privkey_deinit ()">gnutls_x509_privkey_deinit</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gnutls-x509.html#gnutls-x509-privkey-sec-param" title="gnutls_x509_privkey_sec_param ()">gnutls_x509_privkey_sec_param</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-x509.html#gnutls-x509-privkey-set-pin-function" title="gnutls_x509_privkey_set_pin_function ()">gnutls_x509_privkey_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-x509.html#gnutls-x509-privkey-cpy" title="gnutls_x509_privkey_cpy ()">gnutls_x509_privkey_cpy</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-x509.html#gnutls-x509-privkey-import" title="gnutls_x509_privkey_import ()">gnutls_x509_privkey_import</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-x509.html#gnutls-x509-privkey-import-pkcs8" title="gnutls_x509_privkey_import_pkcs8 ()">gnutls_x509_privkey_import_pkcs8</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-x509.html#gnutls-x509-privkey-import-openssl" title="gnutls_x509_privkey_import_openssl ()">gnutls_x509_privkey_import_openssl</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-x509.html#gnutls-pkcs8-info" title="gnutls_pkcs8_info ()">gnutls_pkcs8_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-x509.html#gnutls-x509-privkey-import2" title="gnutls_x509_privkey_import2 ()">gnutls_x509_privkey_import2</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-x509.html#gnutls-x509-privkey-import-rsa-raw" title="gnutls_x509_privkey_import_rsa_raw ()">gnutls_x509_privkey_import_rsa_raw</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-x509.html#gnutls-x509-privkey-import-rsa-raw2" title="gnutls_x509_privkey_import_rsa_raw2 ()">gnutls_x509_privkey_import_rsa_raw2</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-x509.html#gnutls-x509-privkey-import-ecc-raw" title="gnutls_x509_privkey_import_ecc_raw ()">gnutls_x509_privkey_import_ecc_raw</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-x509.html#gnutls-x509-privkey-import-gost-raw" title="gnutls_x509_privkey_import_gost_raw ()">gnutls_x509_privkey_import_gost_raw</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-x509.html#gnutls-x509-privkey-fix" title="gnutls_x509_privkey_fix ()">gnutls_x509_privkey_fix</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-x509.html#gnutls-x509-privkey-export-dsa-raw" title="gnutls_x509_privkey_export_dsa_raw ()">gnutls_x509_privkey_export_dsa_raw</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-x509.html#gnutls-x509-privkey-import-dsa-raw" title="gnutls_x509_privkey_import_dsa_raw ()">gnutls_x509_privkey_import_dsa_raw</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-x509.html#gnutls-x509-privkey-get-pk-algorithm" title="gnutls_x509_privkey_get_pk_algorithm ()">gnutls_x509_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-x509.html#gnutls-x509-privkey-get-pk-algorithm2" title="gnutls_x509_privkey_get_pk_algorithm2 ()">gnutls_x509_privkey_get_pk_algorithm2</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-x509.html#gnutls-x509-privkey-get-spki" title="gnutls_x509_privkey_get_spki ()">gnutls_x509_privkey_get_spki</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-x509.html#gnutls-x509-privkey-set-spki" title="gnutls_x509_privkey_set_spki ()">gnutls_x509_privkey_set_spki</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-x509.html#gnutls-x509-privkey-get-key-id" title="gnutls_x509_privkey_get_key_id ()">gnutls_x509_privkey_get_key_id</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-x509.html#gnutls-x509-privkey-generate" title="gnutls_x509_privkey_generate ()">gnutls_x509_privkey_generate</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-x509.html#gnutls-x509-privkey-set-flags" title="gnutls_x509_privkey_set_flags ()">gnutls_x509_privkey_set_flags</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-x509.html#gnutls-x509-privkey-generate2" title="gnutls_x509_privkey_generate2 ()">gnutls_x509_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-x509.html#gnutls-x509-privkey-verify-seed" title="gnutls_x509_privkey_verify_seed ()">gnutls_x509_privkey_verify_seed</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-x509.html#gnutls-x509-privkey-get-seed" title="gnutls_x509_privkey_get_seed ()">gnutls_x509_privkey_get_seed</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-x509.html#gnutls-x509-privkey-verify-params" title="gnutls_x509_privkey_verify_params ()">gnutls_x509_privkey_verify_params</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-x509.html#gnutls-x509-privkey-export" title="gnutls_x509_privkey_export ()">gnutls_x509_privkey_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-x509.html#gnutls-x509-privkey-export2" title="gnutls_x509_privkey_export2 ()">gnutls_x509_privkey_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-x509.html#gnutls-x509-privkey-export-pkcs8" title="gnutls_x509_privkey_export_pkcs8 ()">gnutls_x509_privkey_export_pkcs8</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-x509.html#gnutls-x509-privkey-export2-pkcs8" title="gnutls_x509_privkey_export2_pkcs8 ()">gnutls_x509_privkey_export2_pkcs8</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-x509.html#gnutls-x509-privkey-export-rsa-raw2" title="gnutls_x509_privkey_export_rsa_raw2 ()">gnutls_x509_privkey_export_rsa_raw2</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-x509.html#gnutls-x509-privkey-export-rsa-raw" title="gnutls_x509_privkey_export_rsa_raw ()">gnutls_x509_privkey_export_rsa_raw</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-x509.html#gnutls-x509-privkey-export-ecc-raw" title="gnutls_x509_privkey_export_ecc_raw ()">gnutls_x509_privkey_export_ecc_raw</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-x509.html#gnutls-x509-privkey-export-gost-raw" title="gnutls_x509_privkey_export_gost_raw ()">gnutls_x509_privkey_export_gost_raw</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-x509.html#gnutls-x509-privkey-sign-data" title="gnutls_x509_privkey_sign_data ()">gnutls_x509_privkey_sign_data</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-x509.html#gnutls-x509-crq-sign" title="gnutls_x509_crq_sign ()">gnutls_x509_crq_sign</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-x509.html#gnutls-x509-crq-sign2" title="gnutls_x509_crq_sign2 ()">gnutls_x509_crq_sign2</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-x509.html#gnutls-x509-crq-print" title="gnutls_x509_crq_print ()">gnutls_x509_crq_print</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-x509.html#gnutls-x509-crq-verify" title="gnutls_x509_crq_verify ()">gnutls_x509_crq_verify</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-x509.html#gnutls-x509-crq-init" title="gnutls_x509_crq_init ()">gnutls_x509_crq_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-x509.html#gnutls-x509-crq-deinit" title="gnutls_x509_crq_deinit ()">gnutls_x509_crq_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-x509.html#gnutls-x509-crq-import" title="gnutls_x509_crq_import ()">gnutls_x509_crq_import</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-x509.html#gnutls-x509-crq-get-private-key-usage-period" title="gnutls_x509_crq_get_private_key_usage_period ()">gnutls_x509_crq_get_private_key_usage_period</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-x509.html#gnutls-x509-crq-get-dn" title="gnutls_x509_crq_get_dn ()">gnutls_x509_crq_get_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-x509.html#gnutls-x509-crq-get-dn2" title="gnutls_x509_crq_get_dn2 ()">gnutls_x509_crq_get_dn2</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-x509.html#gnutls-x509-crq-get-dn3" title="gnutls_x509_crq_get_dn3 ()">gnutls_x509_crq_get_dn3</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-x509.html#gnutls-x509-crq-get-dn-oid" title="gnutls_x509_crq_get_dn_oid ()">gnutls_x509_crq_get_dn_oid</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-x509.html#gnutls-x509-crq-get-dn-by-oid" title="gnutls_x509_crq_get_dn_by_oid ()">gnutls_x509_crq_get_dn_by_oid</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-x509.html#gnutls-x509-crq-set-dn" title="gnutls_x509_crq_set_dn ()">gnutls_x509_crq_set_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-x509.html#gnutls-x509-crq-set-dn-by-oid" title="gnutls_x509_crq_set_dn_by_oid ()">gnutls_x509_crq_set_dn_by_oid</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-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()">gnutls_x509_crq_set_version</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-x509.html#gnutls-x509-crq-get-version" title="gnutls_x509_crq_get_version ()">gnutls_x509_crq_get_version</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-x509.html#gnutls-x509-crq-set-key" title="gnutls_x509_crq_set_key ()">gnutls_x509_crq_set_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-x509.html#gnutls-x509-crq-set-extension-by-oid" title="gnutls_x509_crq_set_extension_by_oid ()">gnutls_x509_crq_set_extension_by_oid</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-x509.html#gnutls-x509-crq-set-challenge-password" title="gnutls_x509_crq_set_challenge_password ()">gnutls_x509_crq_set_challenge_password</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-x509.html#gnutls-x509-crq-get-challenge-password" title="gnutls_x509_crq_get_challenge_password ()">gnutls_x509_crq_get_challenge_password</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-x509.html#gnutls-x509-crq-set-attribute-by-oid" title="gnutls_x509_crq_set_attribute_by_oid ()">gnutls_x509_crq_set_attribute_by_oid</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-x509.html#gnutls-x509-crq-get-attribute-by-oid" title="gnutls_x509_crq_get_attribute_by_oid ()">gnutls_x509_crq_get_attribute_by_oid</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-x509.html#gnutls-x509-crq-export" title="gnutls_x509_crq_export ()">gnutls_x509_crq_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-x509.html#gnutls-x509-crq-export2" title="gnutls_x509_crq_export2 ()">gnutls_x509_crq_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-x509.html#gnutls-x509-crt-set-crq" title="gnutls_x509_crt_set_crq ()">gnutls_x509_crt_set_crq</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-x509.html#gnutls-x509-crt-set-crq-extensions" title="gnutls_x509_crt_set_crq_extensions ()">gnutls_x509_crt_set_crq_extensions</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-x509.html#gnutls-x509-crt-set-crq-extension-by-oid" title="gnutls_x509_crt_set_crq_extension_by_oid ()">gnutls_x509_crt_set_crq_extension_by_oid</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-x509.html#gnutls-x509-crq-set-private-key-usage-period" title="gnutls_x509_crq_set_private_key_usage_period ()">gnutls_x509_crq_set_private_key_usage_period</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-x509.html#gnutls-x509-crq-set-key-rsa-raw" title="gnutls_x509_crq_set_key_rsa_raw ()">gnutls_x509_crq_set_key_rsa_raw</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-x509.html#gnutls-x509-crq-set-subject-alt-name" title="gnutls_x509_crq_set_subject_alt_name ()">gnutls_x509_crq_set_subject_alt_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-x509.html#gnutls-x509-crq-set-subject-alt-othername" title="gnutls_x509_crq_set_subject_alt_othername ()">gnutls_x509_crq_set_subject_alt_othername</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-x509.html#gnutls-x509-crq-set-key-usage" title="gnutls_x509_crq_set_key_usage ()">gnutls_x509_crq_set_key_usage</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-x509.html#gnutls-x509-crq-set-basic-constraints" title="gnutls_x509_crq_set_basic_constraints ()">gnutls_x509_crq_set_basic_constraints</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-x509.html#gnutls-x509-crq-set-key-purpose-oid" title="gnutls_x509_crq_set_key_purpose_oid ()">gnutls_x509_crq_set_key_purpose_oid</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-x509.html#gnutls-x509-crq-get-key-purpose-oid" title="gnutls_x509_crq_get_key_purpose_oid ()">gnutls_x509_crq_get_key_purpose_oid</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-x509.html#gnutls-x509-crq-get-extension-data" title="gnutls_x509_crq_get_extension_data ()">gnutls_x509_crq_get_extension_data</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-x509.html#gnutls-x509-crq-get-extension-data2" title="gnutls_x509_crq_get_extension_data2 ()">gnutls_x509_crq_get_extension_data2</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-x509.html#gnutls-x509-crq-get-extension-info" title="gnutls_x509_crq_get_extension_info ()">gnutls_x509_crq_get_extension_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-x509.html#gnutls-x509-crq-get-attribute-data" title="gnutls_x509_crq_get_attribute_data ()">gnutls_x509_crq_get_attribute_data</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-x509.html#gnutls-x509-crq-get-attribute-info" title="gnutls_x509_crq_get_attribute_info ()">gnutls_x509_crq_get_attribute_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-x509.html#gnutls-x509-crq-get-pk-algorithm" title="gnutls_x509_crq_get_pk_algorithm ()">gnutls_x509_crq_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-x509.html#gnutls-x509-crq-get-spki" title="gnutls_x509_crq_get_spki ()">gnutls_x509_crq_get_spki</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-x509.html#gnutls-x509-crq-set-spki" title="gnutls_x509_crq_set_spki ()">gnutls_x509_crq_set_spki</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-x509.html#gnutls-x509-crq-get-signature-oid" title="gnutls_x509_crq_get_signature_oid ()">gnutls_x509_crq_get_signature_oid</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-x509.html#gnutls-x509-crq-get-pk-oid" title="gnutls_x509_crq_get_pk_oid ()">gnutls_x509_crq_get_pk_oid</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-x509.html#gnutls-x509-crq-get-key-id" title="gnutls_x509_crq_get_key_id ()">gnutls_x509_crq_get_key_id</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-x509.html#gnutls-x509-crq-get-key-rsa-raw" title="gnutls_x509_crq_get_key_rsa_raw ()">gnutls_x509_crq_get_key_rsa_raw</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-x509.html#gnutls-x509-crq-get-key-usage" title="gnutls_x509_crq_get_key_usage ()">gnutls_x509_crq_get_key_usage</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-x509.html#gnutls-x509-crq-get-basic-constraints" title="gnutls_x509_crq_get_basic_constraints ()">gnutls_x509_crq_get_basic_constraints</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-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()">gnutls_x509_crq_get_subject_alt_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-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid" title="gnutls_x509_crq_get_subject_alt_othername_oid ()">gnutls_x509_crq_get_subject_alt_othername_oid</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-x509.html#gnutls-x509-crq-get-extension-by-oid" title="gnutls_x509_crq_get_extension_by_oid ()">gnutls_x509_crq_get_extension_by_oid</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-x509.html#gnutls-x509-crq-get-tlsfeatures" title="gnutls_x509_crq_get_tlsfeatures ()">gnutls_x509_crq_get_tlsfeatures</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-x509.html#gnutls-x509-crq-set-tlsfeatures" title="gnutls_x509_crq_set_tlsfeatures ()">gnutls_x509_crq_set_tlsfeatures</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-x509.html#gnutls-x509-crt-get-extension-by-oid2" title="gnutls_x509_crt_get_extension_by_oid2 ()">gnutls_x509_crt_get_extension_by_oid2</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-x509.html#gnutls-x509-trust-list-init" title="gnutls_x509_trust_list_init ()">gnutls_x509_trust_list_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-x509.html#gnutls-x509-trust-list-deinit" title="gnutls_x509_trust_list_deinit ()">gnutls_x509_trust_list_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-x509.html#gnutls-x509-trust-list-get-issuer" title="gnutls_x509_trust_list_get_issuer ()">gnutls_x509_trust_list_get_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-x509.html#gnutls-x509-trust-list-get-issuer-by-dn" title="gnutls_x509_trust_list_get_issuer_by_dn ()">gnutls_x509_trust_list_get_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-x509.html#gnutls-x509-trust-list-get-issuer-by-subject-key-id" title="gnutls_x509_trust_list_get_issuer_by_subject_key_id ()">gnutls_x509_trust_list_get_issuer_by_subject_key_id</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-x509.html#gnutls-x509-trust-list-add-cas" title="gnutls_x509_trust_list_add_cas ()">gnutls_x509_trust_list_add_cas</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-x509.html#gnutls-x509-trust-list-remove-cas" title="gnutls_x509_trust_list_remove_cas ()">gnutls_x509_trust_list_remove_cas</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-x509.html#gnutls-x509-trust-list-add-named-crt" title="gnutls_x509_trust_list_add_named_crt ()">gnutls_x509_trust_list_add_named_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-x509.html#gnutls-x509-trust-list-add-crls" title="gnutls_x509_trust_list_add_crls ()">gnutls_x509_trust_list_add_crls</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-x509.html#gnutls-x509-trust-list-iter-get-ca" title="gnutls_x509_trust_list_iter_get_ca ()">gnutls_x509_trust_list_iter_get_ca</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-x509.html#gnutls-x509-trust-list-iter-deinit" title="gnutls_x509_trust_list_iter_deinit ()">gnutls_x509_trust_list_iter_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-x509.html#gnutls-session-set-verify-output-function" title="gnutls_session_set_verify_output_function ()">gnutls_session_set_verify_output_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-x509.html#gnutls-x509-trust-list-verify-named-crt" title="gnutls_x509_trust_list_verify_named_crt ()">gnutls_x509_trust_list_verify_named_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-x509.html#gnutls-x509-trust-list-verify-crt2" title="gnutls_x509_trust_list_verify_crt2 ()">gnutls_x509_trust_list_verify_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-x509.html#gnutls-x509-trust-list-verify-crt" title="gnutls_x509_trust_list_verify_crt ()">gnutls_x509_trust_list_verify_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-x509.html#gnutls-x509-trust-list-add-trust-mem" title="gnutls_x509_trust_list_add_trust_mem ()">gnutls_x509_trust_list_add_trust_mem</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-x509.html#gnutls-x509-trust-list-add-trust-file" title="gnutls_x509_trust_list_add_trust_file ()">gnutls_x509_trust_list_add_trust_file</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-x509.html#gnutls-x509-trust-list-add-trust-dir" title="gnutls_x509_trust_list_add_trust_dir ()">gnutls_x509_trust_list_add_trust_dir</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-x509.html#gnutls-x509-trust-list-remove-trust-file" title="gnutls_x509_trust_list_remove_trust_file ()">gnutls_x509_trust_list_remove_trust_file</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-x509.html#gnutls-x509-trust-list-remove-trust-mem" title="gnutls_x509_trust_list_remove_trust_mem ()">gnutls_x509_trust_list_remove_trust_mem</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-x509.html#gnutls-x509-trust-list-add-system-trust" title="gnutls_x509_trust_list_add_system_trust ()">gnutls_x509_trust_list_add_system_trust</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-x509.html#gnutls-x509-trust-list-set-getissuer-function" title="gnutls_x509_trust_list_set_getissuer_function ()">gnutls_x509_trust_list_set_getissuer_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-x509.html#gnutls-x509-trust-list-set-ptr" title="gnutls_x509_trust_list_set_ptr ()">gnutls_x509_trust_list_set_ptr</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-x509.html#gnutls-x509-trust-list-get-ptr" title="gnutls_x509_trust_list_get_ptr ()">gnutls_x509_trust_list_get_ptr</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-x509.html#gnutls-certificate-set-trust-list" title="gnutls_certificate_set_trust_list ()">gnutls_certificate_set_trust_list</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-x509.html#gnutls-certificate-get-trust-list" title="gnutls_certificate_get_trust_list ()">gnutls_certificate_get_trust_list</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-x509.html#gnutls-x509-ext-deinit" title="gnutls_x509_ext_deinit ()">gnutls_x509_ext_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-x509.html#gnutls-x509-ext-print" title="gnutls_x509_ext_print ()">gnutls_x509_ext_print</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-x509.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-x509.html#GNUTLS-OID-X520-COUNTRY-NAME:CAPS" title="GNUTLS_OID_X520_COUNTRY_NAME">GNUTLS_OID_X520_COUNTRY_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATION_NAME">GNUTLS_OID_X520_ORGANIZATION_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS" title="GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME">GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-COMMON-NAME:CAPS" title="GNUTLS_OID_X520_COMMON_NAME">GNUTLS_OID_X520_COMMON_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-LOCALITY-NAME:CAPS" title="GNUTLS_OID_X520_LOCALITY_NAME">GNUTLS_OID_X520_LOCALITY_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS" title="GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME">GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-INITIALS:CAPS" title="GNUTLS_OID_X520_INITIALS">GNUTLS_OID_X520_INITIALS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS" title="GNUTLS_OID_X520_GENERATION_QUALIFIER">GNUTLS_OID_X520_GENERATION_QUALIFIER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-SURNAME:CAPS" title="GNUTLS_OID_X520_SURNAME">GNUTLS_OID_X520_SURNAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-GIVEN-NAME:CAPS" title="GNUTLS_OID_X520_GIVEN_NAME">GNUTLS_OID_X520_GIVEN_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-TITLE:CAPS" title="GNUTLS_OID_X520_TITLE">GNUTLS_OID_X520_TITLE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-DN-QUALIFIER:CAPS" title="GNUTLS_OID_X520_DN_QUALIFIER">GNUTLS_OID_X520_DN_QUALIFIER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-PSEUDONYM:CAPS" title="GNUTLS_OID_X520_PSEUDONYM">GNUTLS_OID_X520_PSEUDONYM</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-POSTALCODE:CAPS" title="GNUTLS_OID_X520_POSTALCODE">GNUTLS_OID_X520_POSTALCODE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-X520-NAME:CAPS" title="GNUTLS_OID_X520_NAME">GNUTLS_OID_X520_NAME</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-DC:CAPS" title="GNUTLS_OID_LDAP_DC">GNUTLS_OID_LDAP_DC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-LDAP-UID:CAPS" title="GNUTLS_OID_LDAP_UID">GNUTLS_OID_LDAP_UID</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-PKCS9-EMAIL:CAPS" title="GNUTLS_OID_PKCS9_EMAIL">GNUTLS_OID_PKCS9_EMAIL</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_DATE_OF_BIRTH">GNUTLS_OID_PKIX_DATE_OF_BIRTH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS" title="GNUTLS_OID_PKIX_PLACE_OF_BIRTH">GNUTLS_OID_PKIX_PLACE_OF_BIRTH</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-GENDER:CAPS" title="GNUTLS_OID_PKIX_GENDER">GNUTLS_OID_PKIX_GENDER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP">GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS" title="GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE">GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS" title="GNUTLS_KP_TLS_WWW_SERVER">GNUTLS_KP_TLS_WWW_SERVER</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-CLIENT:CAPS" title="GNUTLS_KP_TLS_WWW_CLIENT">GNUTLS_KP_TLS_WWW_CLIENT</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS" title="GNUTLS_KP_CODE_SIGNING">GNUTLS_KP_CODE_SIGNING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-MS-SMART-CARD-LOGON:CAPS" title="GNUTLS_KP_MS_SMART_CARD_LOGON">GNUTLS_KP_MS_SMART_CARD_LOGON</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-EMAIL-PROTECTION:CAPS" title="GNUTLS_KP_EMAIL_PROTECTION">GNUTLS_KP_EMAIL_PROTECTION</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-TIME-STAMPING:CAPS" title="GNUTLS_KP_TIME_STAMPING">GNUTLS_KP_TIME_STAMPING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-OCSP-SIGNING:CAPS" title="GNUTLS_KP_OCSP_SIGNING">GNUTLS_KP_OCSP_SIGNING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-IPSEC-IKE:CAPS" title="GNUTLS_KP_IPSEC_IKE">GNUTLS_KP_IPSEC_IKE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-ANY:CAPS" title="GNUTLS_KP_ANY">GNUTLS_KP_ANY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-KP-FLAG-DISALLOW-ANY:CAPS" title="GNUTLS_KP_FLAG_DISALLOW_ANY">GNUTLS_KP_FLAG_DISALLOW_ANY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-AIA:CAPS" title="GNUTLS_OID_AIA">GNUTLS_OID_AIA</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-AD-OCSP:CAPS" title="GNUTLS_OID_AD_OCSP">GNUTLS_OID_AD_OCSP</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-OID-AD-CAISSUERS:CAPS" title="GNUTLS_OID_AD_CAISSUERS">GNUTLS_OID_AD_CAISSUERS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS" title="GNUTLS_FSAN_SET">GNUTLS_FSAN_SET</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS" title="GNUTLS_FSAN_APPEND">GNUTLS_FSAN_APPEND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-OCTET-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_OCTET_STRING">GNUTLS_FSAN_ENCODE_OCTET_STRING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-UTF8-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_UTF8_STRING">GNUTLS_FSAN_ENCODE_UTF8_STRING</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-SUBJECT-KEY-ID:CAPS" title="GNUTLS_X509EXT_OID_SUBJECT_KEY_ID">GNUTLS_X509EXT_OID_SUBJECT_KEY_ID</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-KEY-USAGE:CAPS" title="GNUTLS_X509EXT_OID_KEY_USAGE">GNUTLS_X509EXT_OID_KEY_USAGE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-PRIVATE-KEY-USAGE-PERIOD:CAPS" title="GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD">GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-SAN:CAPS" title="GNUTLS_X509EXT_OID_SAN">GNUTLS_X509EXT_OID_SAN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-IAN:CAPS" title="GNUTLS_X509EXT_OID_IAN">GNUTLS_X509EXT_OID_IAN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-BASIC-CONSTRAINTS:CAPS" title="GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS">GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-NAME-CONSTRAINTS:CAPS" title="GNUTLS_X509EXT_OID_NAME_CONSTRAINTS">GNUTLS_X509EXT_OID_NAME_CONSTRAINTS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-CRL-DIST-POINTS:CAPS" title="GNUTLS_X509EXT_OID_CRL_DIST_POINTS">GNUTLS_X509EXT_OID_CRL_DIST_POINTS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-CRT-POLICY:CAPS" title="GNUTLS_X509EXT_OID_CRT_POLICY">GNUTLS_X509EXT_OID_CRT_POLICY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-AUTHORITY-KEY-ID:CAPS" title="GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID">GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-EXTENDED-KEY-USAGE:CAPS" title="GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE">GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-INHIBIT-ANYPOLICY:CAPS" title="GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY">GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-AUTHORITY-INFO-ACCESS:CAPS" title="GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS">GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-PROXY-CRT-INFO:CAPS" title="GNUTLS_X509EXT_OID_PROXY_CRT_INFO">GNUTLS_X509EXT_OID_PROXY_CRT_INFO</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-TLSFEATURES:CAPS" title="GNUTLS_X509EXT_OID_TLSFEATURES">GNUTLS_X509EXT_OID_TLSFEATURES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509EXT-OID-CT-SCT-V1:CAPS" title="GNUTLS_X509EXT_OID_CT_SCT_V1">GNUTLS_X509EXT_OID_CT_SCT_V1</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509-OID-POLICY-ANY:CAPS" title="GNUTLS_X509_OID_POLICY_ANY">GNUTLS_X509_OID_POLICY_ANY</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-certificate-import-flags" title="enum gnutls_certificate_import_flags">gnutls_certificate_import_flags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-crt-flags" title="enum gnutls_x509_crt_flags">gnutls_x509_crt_flags</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-keyid-flags-t" title="enum gnutls_keyid_flags_t">gnutls_keyid_flags_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-info-access-what-t" title="enum gnutls_info_access_what_t">gnutls_info_access_what_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t">gnutls_x509_name_constraints_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND">GNUTLS_EXT_FLAG_APPEND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-NAME-CONSTRAINTS-FLAG-APPEND:CAPS" title="GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND">GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS" title="GNUTLS_CRL_REASON_SUPERSEEDED">GNUTLS_CRL_REASON_SUPERSEEDED</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-crl-reason-flags-t" title="enum gnutls_x509_crl_reason_flags_t">gnutls_x509_crl_reason_flags_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509-NO-WELL-DEFINED-EXPIRATION:CAPS" title="GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION">GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t">gnutls_x509_spki_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t">gnutls_x509_tlsfeatures_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-MAX-QUALIFIERS:CAPS" title="GNUTLS_MAX_QUALIFIERS">GNUTLS_MAX_QUALIFIERS</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-qualifier-t" title="enum gnutls_x509_qualifier_t">gnutls_x509_qualifier_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-policy-st" title="gnutls_x509_policy_st">gnutls_x509_policy_st</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-OID-RETURN-OID:CAPS" title="GNUTLS_X509_DN_OID_RETURN_OID">GNUTLS_X509_DN_OID_RETURN_OID</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t">gnutls_x509_dn_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-ava-st" title="gnutls_x509_ava_st">gnutls_x509_ava_st</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT">GNUTLS_X509_DN_FLAG_COMPAT</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-t" title="gnutls_x509_crl_iter_t">gnutls_x509_crl_iter_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate-count" title="gnutls_x509_crl_get_certificate_count">gnutls_x509_crl_get_certificate_count</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-certificate" title="gnutls_x509_crl_get_certificate">gnutls_x509_crl_get_certificate</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags">gnutls_certificate_verify_flags</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-BROKEN:CAPS" title="GNUTLS_VERIFY_ALLOW_BROKEN">GNUTLS_VERIFY_ALLOW_BROKEN</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-certificate-verification-profiles-t" title="enum gnutls_certificate_verification_profiles_t">gnutls_certificate_verification_profiles_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-VFLAGS-PROFILE-MASK:CAPS" title="GNUTLS_VFLAGS_PROFILE_MASK">GNUTLS_VFLAGS_PROFILE_MASK</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-PLAIN:CAPS" title="GNUTLS_PKCS8_PLAIN">GNUTLS_PKCS8_PLAIN</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS" title="GNUTLS_PKCS8_USE_PKCS12_3DES">GNUTLS_PKCS8_USE_PKCS12_3DES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS" title="GNUTLS_PKCS8_USE_PKCS12_ARCFOUR">GNUTLS_PKCS8_USE_PKCS12_ARCFOUR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS" title="GNUTLS_PKCS8_USE_PKCS12_RC2_40">GNUTLS_PKCS8_USE_PKCS12_RC2_40</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t">gnutls_pkcs_encrypt_flags_t</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-3DES:CAPS" title="GNUTLS_PKCS_USE_PKCS12_3DES">GNUTLS_PKCS_USE_PKCS12_3DES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS" title="GNUTLS_PKCS_USE_PKCS12_ARCFOUR">GNUTLS_PKCS_USE_PKCS12_ARCFOUR</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS" title="GNUTLS_PKCS_USE_PKCS12_RC2_40">GNUTLS_PKCS_USE_PKCS12_RC2_40</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-3DES:CAPS" title="GNUTLS_PKCS_USE_PBES2_3DES">GNUTLS_PKCS_USE_PBES2_3DES</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-128:CAPS" title="GNUTLS_PKCS_USE_PBES2_AES_128">GNUTLS_PKCS_USE_PBES2_AES_128</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-192:CAPS" title="GNUTLS_PKCS_USE_PBES2_AES_192">GNUTLS_PKCS_USE_PBES2_AES_192</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-256:CAPS" title="GNUTLS_PKCS_USE_PBES2_AES_256">GNUTLS_PKCS_USE_PBES2_AES_256</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-TC26Z:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_TC26Z">GNUTLS_PKCS_USE_PBES2_GOST_TC26Z</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPA:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPA">GNUTLS_PKCS_USE_PBES2_GOST_CPA</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPB:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPB">GNUTLS_PKCS_USE_PBES2_GOST_CPB</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPC:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPC">GNUTLS_PKCS_USE_PBES2_GOST_CPC</a></td>
+</tr>
+<tr>
+<td class="define_keyword">#define</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPD:CAPS" title="GNUTLS_PKCS_USE_PBES2_GOST_CPD">GNUTLS_PKCS_USE_PBES2_GOST_CPD</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-keygen-types-t" title="enum gnutls_keygen_types_t">gnutls_keygen_types_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-keygen-data-st" title="gnutls_keygen_data_st">gnutls_keygen_data_st</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t">gnutls_x509_trust_list_t</a></td>
+</tr>
+<tr>
+<td class="typedef_keyword">typedef</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-iter-t" title="gnutls_x509_trust_list_iter_t">gnutls_x509_trust_list_iter_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t">gnutls_trust_list_flags_t</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gnutls-x509.html#gnutls-x509-ext-st" title="gnutls_x509_ext_st">gnutls_x509_ext_st</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gnutls-x509.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gnutls-x509.functions_details"></a><h2>Functions</h2>
+<div class="refsect2">
+<a name="gnutls-x509-crt-init"></a><h3>gnutls_x509_crt_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_init (<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>);</pre>
+<p>This function will initialize an X.509 certificate structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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>cert</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-x509-crt-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-x509-crt-deinit"></a><h3>gnutls_x509_crt_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_crt_deinit (<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>);</pre>
+<p>This function will deinitialize a certificate structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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>cert</p></td>
+<td class="parameter_description"><p>The data to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-flags"></a><h3>gnutls_x509_crt_set_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_crt_set_flags (<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><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will set flags for the specified certificate.
+Currently this is useful for the <a class="link" href="gnutls-x509.html#GNUTLS-X509-CRT-FLAG-IGNORE-SANITY:CAPS"><code class="literal">GNUTLS_X509_CRT_FLAG_IGNORE_SANITY</code></a>
+which allows importing certificates even if they have known issues.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>cert</p></td>
+<td class="parameter_description"><p>A 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>flags</p></td>
+<td class="parameter_description"><p>flags from the <a class="link" href="gnutls-x509.html#gnutls-x509-crt-flags" title="enum gnutls_x509_crt_flags"><code class="literal">gnutls_x509_crt_flags</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-equals"></a><h3>gnutls_x509_crt_equals ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crt_equals (<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> cert1</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> cert2</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-equals2"></a><h3>gnutls_x509_crt_equals2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crt_equals2 (<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> cert1</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> *der</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-import"></a><h3>gnutls_x509_crt_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_import (<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>const <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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>This function will convert the given DER or PEM encoded Certificate
+to the native gnutls_x509_crt_t format. The output will be stored
+in <em class="parameter"><code>cert</code></em>
+.</p>
+<p>If the Certificate is PEM encoded it should have a header of "X509
+CERTIFICATE", or "CERTIFICATE".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-import.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>cert</p></td>
+<td class="parameter_description"><p>The data to store the parsed certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-import.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-x509-crt-list-import2"></a><h3>gnutls_x509_crt_list_import2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_list_import2 (<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> *size</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> *data</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will convert the given PEM encoded certificate list
+to the native gnutls_x509_crt_t format. The output will be stored
+in <em class="parameter"><code>certs</code></em>
+ which will be allocated and initialized.</p>
+<p>If the Certificate is PEM encoded it should have a header of "X509
+CERTIFICATE", or "CERTIFICATE".</p>
+<p>To deinitialize <em class="parameter"><code>certs</code></em>
+, you need to deinitialize each crt structure
+independently, and use <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a> at <em class="parameter"><code>certs</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-import2.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>Will hold the parsed certificate list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</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>data</p></td>
+<td class="parameter_description"><p>The PEM encoded certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be (0) or an OR'd sequence of gnutls_certificate_import_flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-import2.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-list-import"></a><h3>gnutls_x509_crt_list_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_list_import (<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>const <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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will convert the given PEM encoded certificate list
+to the native gnutls_x509_crt_t format. The output will be stored
+in <em class="parameter"><code>certs</code></em>
+. They will be automatically initialized.</p>
+<p>The flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS"><code class="literal">GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED</code></a> will cause
+import to fail if the certificates in the provided buffer are more
+than the available structures. The <a class="link" href="gnutls-x509.html#GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS"><code class="literal">GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED</code></a>
+flag will cause the function to fail if the provided list is not
+sorted from subject to issuer.</p>
+<p>If the Certificate is PEM encoded it should have a header of "X509
+CERTIFICATE", or "CERTIFICATE".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-import.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>Indicates where the parsed list will be copied to. Must not be initialized.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_max</p></td>
+<td class="parameter_description"><p>Initially must hold the maximum number of certs. It will be updated with the number of certs available.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The PEM encoded certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be (0) or an OR'd sequence of gnutls_certificate_import_flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-import.returns"></a><h4>Returns</h4>
+<p> the number of certificates read or a negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-import-url"></a><h3>gnutls_x509_crt_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_import_url (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+ <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 certificate present in a PKCS<span class="type">11</span> token
+or any type of back-end that supports URLs.</p>
+<p>In previous versions of gnutls this function was named
+gnutls_x509_crt_import_pkcs11_url, and the old name is
+an alias to this one.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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>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>url</p></td>
+<td class="parameter_description"><p>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>One of GNUTLS_PKCS11_OBJ_* flags for PKCS<span class="type">11</span> URLs or zero otherwise</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-list-import-url"></a><h3>gnutls_x509_crt_list_import_url ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_list_import_url (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> **certs</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *size</code></em>,
+ <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-pin-callback-t" title="gnutls_pin_callback_t ()"><span class="type">gnutls_pin_callback_t</span></a> pin_fn</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *pin_fn_userdata</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import a certificate chain present in a PKCS<span class="type">11</span> token
+or any type of back-end that supports URLs. The certificates
+must be deinitialized afterwards using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a>
+and the returned pointer must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p>
+<p>The URI provided must be the first certificate in the chain; subsequent
+certificates will be retrieved using <a class="link" href="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer" title="gnutls_pkcs11_get_raw_issuer ()"><code class="function">gnutls_pkcs11_get_raw_issuer()</code></a> or
+equivalent functionality for the supported URI.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-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>certs</p></td>
+<td class="parameter_description"><p>Will hold the allocated certificate list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</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</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pin_fn</p></td>
+<td class="parameter_description"><p>a PIN callback if not globally set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pin_fn_userdata</p></td>
+<td class="parameter_description"><p>parameter for the PIN callback</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 for PKCS<span class="type">11</span> URLs or zero otherwise</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-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: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-export"></a><h3>gnutls_x509_crt_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_export (<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-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</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 certificate to DER or PEM format.</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>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN CERTIFICATE".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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>cert</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</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 a certificate PEM or DER encoded</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-x509-crt-export.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-export2"></a><h3>gnutls_x509_crt_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_export2 (<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-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</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 certificate to DER or PEM format.
+The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN CERTIFICATE".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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>cert</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a certificate PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-export2.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+<p class="since">Since: 3.1.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-private-key-usage-period"></a><h3>gnutls_x509_crt_get_private_key_usage_period ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_private_key_usage_period
+ (<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><span class="type">time_t</span> *activation</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> *expiration</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the expiration and activation
+times of the private key of the certificate. It relies on
+the PKIX extension 2.5.29.16 being present.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-private-key-usage-period.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>activation</p></td>
+<td class="parameter_description"><p>The activation time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>expiration</p></td>
+<td class="parameter_description"><p>The expiration time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>the extension status</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-private-key-usage-period.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 extension is not present, otherwise a negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn"></a><h3>gnutls_x509_crt_get_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_dn (<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><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>This function will copy the name of the Certificate issuer in the
+provided buffer. The name will be in the form
+"C=xxxx,O=yyyy,CN=zzzz" as described in RFC4514. The output string
+will be ASCII or UTF-8 encoded, depending on the certificate data.</p>
+<p>If <em class="parameter"><code>buf</code></em>
+ is null then only the size will be filled.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn3" title="gnutls_x509_crt_get_issuer_dn3 ()"><code class="function">gnutls_x509_crt_get_issuer_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em>
+will be updated
+with the required size. <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 DN does not exist, or another error value on error. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn2"></a><h3>gnutls_x509_crt_get_issuer_dn2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_dn2 (<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> *dn</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of issuer of the Certificate.
+The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn3" title="gnutls_x509_crt_get_issuer_dn3 ()"><code class="function">gnutls_x509_crt_get_issuer_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn2.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn2.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.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn3"></a><h3>gnutls_x509_crt_get_issuer_dn3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_dn3 (<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> *dn</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of issuer of the Certificate.
+The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a> is specified, the output
+format will match the format output by previous to 3.5.6 versions of GnuTLS
+which was not not fully RFC4514-compliant.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn3.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn3.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.5.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn-oid"></a><h3>gnutls_x509_crt_get_issuer_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_dn_oid (<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><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will extract the OIDs of the name of the Certificate
+issuer specified by the given index.</p>
+<p>If <em class="parameter"><code>oid</code></em>
+ is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em>
+ will not
+account for the trailing null.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>This specifies which OID to return. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em>
+will be updated with
+the required size. <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 there
+are no data in the current index. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-dn-by-oid"></a><h3>gnutls_x509_crt_get_issuer_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_dn_by_oid (<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>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>This function will extract the part of the name of the Certificate
+issuer specified by the given OID. The output, if the raw flag is not
+used, will be encoded as described in RFC4514. Thus a string that is
+ASCII or UTF-8 encoded, depending on the certificate data.</p>
+<p>Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC4514 --
+in hex format with a '#' prefix. You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.</p>
+<p>If <em class="parameter"><code>buf</code></em>
+ is null then only the size will be filled. If the <em class="parameter"><code>raw_flag</code></em>
+
+is not specified the output is always null terminated, although the
+<em class="parameter"><code>buf_size</code></em>
+ will not include the null character.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn-by-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identified in null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the RDN, this specifies which to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>If non-zero returns the raw DER data of the DN part.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-dn-by-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em>
+will be updated with
+the required size. <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 there
+are no data in the current index. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn"></a><h3>gnutls_x509_crt_get_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_dn (<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><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>This function will copy the name of the Certificate in the provided
+buffer. The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>The <em class="parameter"><code>buf</code></em>
+ returned will be null terminated and the <em class="parameter"><code>buf_size</code></em>
+ will account
+for the trailing null. If <em class="parameter"><code>buf</code></em>
+ is null then only the size will be filled.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn3" title="gnutls_x509_crt_get_dn3 ()"><code class="function">gnutls_x509_crt_get_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em>
+will be updated
+with the required size. <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 DN does not exist, or another error value on error. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn2"></a><h3>gnutls_x509_crt_get_dn2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_dn2 (<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> *dn</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of the Certificate.
+The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-dn3" title="gnutls_x509_crt_get_dn3 ()"><code class="function">gnutls_x509_crt_get_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn2.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn2.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.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn3"></a><h3>gnutls_x509_crt_get_dn3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_dn3 (<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> *dn</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of the Certificate.
+The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a> is specified, the output
+format will match the format output by previous to 3.5.6 versions of GnuTLS
+which was not not fully RFC4514-compliant.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn3.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn3.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.5.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn-oid"></a><h3>gnutls_x509_crt_get_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_dn_oid (<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><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will extract the OIDs of the name of the Certificate
+subject specified by the given index.</p>
+<p>If <em class="parameter"><code>oid</code></em>
+ is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em>
+ will not
+account for the trailing null.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>This specifies which OID to return. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em>
+will be updated with
+the required size. <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 there
+are no data in the current index. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-dn-by-oid"></a><h3>gnutls_x509_crt_get_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_dn_by_oid (<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>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>This function will extract the part of the name of the Certificate
+subject specified by the given OID. The output, if the raw flag is
+not used, will be encoded as described in RFC4514. Thus a string
+that is ASCII or UTF-8 encoded, depending on the certificate data.</p>
+<p>Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC4514 --
+in hex format with a '#' prefix. You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.</p>
+<p>If <em class="parameter"><code>buf</code></em>
+ is null then only the size will be filled. If the <em class="parameter"><code>raw_flag</code></em>
+
+is not specified the output is always null terminated, although the
+<em class="parameter"><code>buf_size</code></em>
+ will not include the null character.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn-by-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identified in null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the RDN, this specifies which to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>If non-zero returns the raw DER data of the DN part.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer where the DN part will be copied (may be null).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-dn-by-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is not
+long enough, and in that case the <em class="parameter"><code>buf_size</code></em>
+will be updated with
+the required size. <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 there
+are no data in the current index. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-hostname"></a><h3>gnutls_x509_crt_check_hostname ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crt_check_hostname (<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>const <span class="type">char</span> *hostname</code></em>);</pre>
+<p>This function will check if the given certificate's subject matches
+the given hostname. This is a basic implementation of the matching
+described in RFC6125, and takes into account wildcards,
+and the DNSName/IPAddress subject alternative name PKIX extension.</p>
+<p>For details see also <a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-hostname2" title="gnutls_x509_crt_check_hostname2 ()"><code class="function">gnutls_x509_crt_check_hostname2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-hostname.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>cert</p></td>
+<td class="parameter_description"><p>should contain an gnutls_x509_crt_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hostname</p></td>
+<td class="parameter_description"><p>A null terminated string that contains a DNS name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-hostname.returns"></a><h4>Returns</h4>
+<p> non-zero for a successful match, and zero on failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-hostname2"></a><h3>gnutls_x509_crt_check_hostname2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crt_check_hostname2 (<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>const <span class="type">char</span> *hostname</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will check if the given certificate's subject matches
+the given hostname. This is a basic implementation of the matching
+described in RFC6125, and takes into account wildcards,
+and the DNSName/IPAddress subject alternative name PKIX extension.</p>
+<p>IPv4 addresses are accepted by this function in the dotted-decimal
+format (e.g, ddd.ddd.ddd.ddd), and IPv6 addresses in the hexadecimal
+x:x:x:x:x:x:x:x format. For them the IPAddress subject alternative
+name extension is consulted. Previous versions to 3.6.0 of GnuTLS
+in case of a non-match would consult (in a non-standard extension)
+the DNSname and CN fields. This is no longer the case.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-WILDCARDS:CAPS"><code class="literal">GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS</code></a> is specified no
+wildcards are considered. Otherwise they are only considered if the
+domain name consists of three components or more, and the wildcard
+starts at the leftmost position.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-IP-MATCHES:CAPS"><code class="literal">GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES</code></a> is specified,
+the input will be treated as a DNS name, and matching of textual IP addresses
+against the IPAddress part of the alternative name will not be allowed.</p>
+<p>The function <a class="link" href="gnutls-x509.html#gnutls-x509-crt-check-ip" title="gnutls_x509_crt_check_ip ()"><code class="function">gnutls_x509_crt_check_ip()</code></a> is available for matching
+IP addresses.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-hostname2.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>cert</p></td>
+<td class="parameter_description"><p>should contain an gnutls_x509_crt_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>hostname</p></td>
+<td class="parameter_description"><p>A null terminated string that contains a DNS name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>gnutls_certificate_verify_flags</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-hostname2.returns"></a><h4>Returns</h4>
+<p> non-zero for a successful match, and zero on failure.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-email"></a><h3>gnutls_x509_crt_check_email ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crt_check_email (<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>const <span class="type">char</span> *email</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will check if the given certificate's subject matches
+the given email address.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-email.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>cert</p></td>
+<td class="parameter_description"><p>should contain an gnutls_x509_crt_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>email</p></td>
+<td class="parameter_description"><p>A null terminated string that contains an email address (RFC822)</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-x509-crt-check-email.returns"></a><h4>Returns</h4>
+<p> non-zero for a successful match, and zero on failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-ip"></a><h3>gnutls_x509_crt_check_ip ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crt_check_ip (<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>const unsigned <span class="type">char</span> *ip</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> ip_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will check if the IP allowed IP addresses in
+the certificate's subject alternative name match the provided
+IP address.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-ip.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>cert</p></td>
+<td class="parameter_description"><p>should contain an gnutls_x509_crt_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ip</p></td>
+<td class="parameter_description"><p>A pointer to the raw IP address</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ip_size</p></td>
+<td class="parameter_description"><p>the number of bytes in ip (4 or 16)</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-x509-crt-check-ip.returns"></a><h4>Returns</h4>
+<p> non-zero for a successful match, and zero on failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-signature-algorithm"></a><h3>gnutls_x509_crt_get_signature_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_signature_algorithm
+ (<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>);</pre>
+<p>This function will return a value of the <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a>
+enumeration that is the signature algorithm that has been used to
+sign this certificate.</p>
+<p>Since 3.6.0 this function never returns a negative error code.
+Error cases and unknown/unsupported signature algorithms are
+mapped to <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-signature-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-signature-algorithm.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> value</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-signature"></a><h3>gnutls_x509_crt_get_signature ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_signature (<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><span class="type">char</span> *sig</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_sig</code></em>);</pre>
+<p>This function will extract the signature field of a certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-signature.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sig</p></td>
+<td class="parameter_description"><p>a pointer where the signature part will be copied (may be null).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sig_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>sig</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-signature.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-x509-crt-get-version"></a><h3>gnutls_x509_crt_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_version (<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>);</pre>
+<p>This function will return the version of the specified Certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-version.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-version.returns"></a><h4>Returns</h4>
+<p> version of certificate, or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-oid"></a><h3>gnutls_x509_crt_get_pk_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_pk_oid (<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><span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will return the OID of the public key algorithm
+on that certificate. This is function
+is useful in the case <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-pk-algorithm" title="gnutls_x509_crt_get_pk_algorithm ()"><code class="function">gnutls_x509_crt_get_pk_algorithm()</code></a>
+returned <a class="link" href="gnutls-gnutls.html#GNUTLS-PK-UNKNOWN:CAPS"><code class="literal">GNUTLS_PK_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-oid.returns"></a><h4>Returns</h4>
+<p> zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-signature-oid"></a><h3>gnutls_x509_crt_get_signature_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_signature_oid (<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><span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will return the OID of the signature algorithm
+that has been used to sign this certificate. This is function
+is useful in the case <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-signature-algorithm" title="gnutls_x509_crt_get_signature_algorithm ()"><code class="function">gnutls_x509_crt_get_signature_algorithm()</code></a>
+returned <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-signature-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-signature-oid.returns"></a><h4>Returns</h4>
+<p> zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-key-id"></a><h3>gnutls_x509_crt_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_key_id (<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>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</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 return a unique ID that depends on the public
+key parameters. This ID can be used in checking whether a
+certificate corresponds to the given private key.</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. The output will normally be a SHA-1 hash output,
+which is 20 bytes.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-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>crt</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be one of the flags from <a class="link" href="gnutls-x509.html#gnutls-keyid-flags-t" title="enum gnutls_keyid_flags_t"><code class="literal">gnutls_keyid_flags_t</code></a></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 key ID</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-x509-crt-get-key-id.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-private-key-usage-period"></a><h3>gnutls_x509_crt_set_private_key_usage_period ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_private_key_usage_period
+ (<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><span class="type">time_t</span> activation</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> expiration</code></em>);</pre>
+<p>This function will set the private key usage period extension (2.5.29.16).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-private-key-usage-period.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>activation</p></td>
+<td class="parameter_description"><p>The activation time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>expiration</p></td>
+<td class="parameter_description"><p>The expiration time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-private-key-usage-period.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-x509-crt-set-authority-key-id"></a><h3>gnutls_x509_crt_set_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_authority_key_id (<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>const <span class="type">void</span> *id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>This function will set the X.509 certificate's authority key ID extension.
+Only the keyIdentifier field can be set with this function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-authority-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>cert</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>id</p></td>
+<td class="parameter_description"><p>The key ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id_size</p></td>
+<td class="parameter_description"><p>Holds the size of the key ID field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-authority-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-authority-key-id"></a><h3>gnutls_x509_crt_get_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_authority_key_id (<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><span class="type">void</span> *id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *id_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the X.509v3 certificate authority's key
+identifier. This is obtained by the X.509 Authority Key
+identifier extension field (2.5.29.35). Note that this function
+only returns the keyIdentifier field of the extension and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-EXTENSION:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_EXTENSION"><code class="literal">GNUTLS_E_X509_UNSUPPORTED_EXTENSION</code></a>, if the extension contains
+the name and serial number of the certificate. In that case
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-key-gn-serial" title="gnutls_x509_crt_get_authority_key_gn_serial ()"><code class="function">gnutls_x509_crt_get_authority_key_gn_serial()</code></a> may be used.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-authority-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>The place where the identifier will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id_size</p></td>
+<td class="parameter_description"><p>Holds the size of the id field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-authority-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, <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 extension is not present, otherwise a negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-authority-key-gn-serial"></a><h3>gnutls_x509_crt_get_authority_key_gn_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_authority_key_gn_serial
+ (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *alt</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *alt_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *alt_type</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *serial</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *serial_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the X.509 authority key
+identifier when stored as a general name (authorityCertIssuer)
+and serial number.</p>
+<p>Because more than one general names might be stored
+<em class="parameter"><code>seq</code></em>
+ can be used as a counter to request them all until
+<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> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-authority-key-gn-serial.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alt</p></td>
+<td class="parameter_description"><p>is the place where the alternative name will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alt_size</p></td>
+<td class="parameter_description"><p>holds the size of alt.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alt_type</p></td>
+<td class="parameter_description"><p>holds the type of the alternative name (one of gnutls_x509_subject_alt_name_t).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial</p></td>
+<td class="parameter_description"><p>buffer to store the serial number (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial_size</p></td>
+<td class="parameter_description"><p>Holds the size of the serial field (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-authority-key-gn-serial.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 extension is not present, otherwise a negative error value.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-key-id"></a><h3>gnutls_x509_crt_get_subject_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_subject_key_id (<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><span class="type">void</span> *ret</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the X.509v3 certificate's subject key
+identifier. This is obtained by the X.509 Subject Key identifier
+extension field (2.5.29.14).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret</p></td>
+<td class="parameter_description"><p>The place where the identifier will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret_size</p></td>
+<td class="parameter_description"><p>Holds the size of the result field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-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, <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 extension is not present, otherwise a negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-unique-id"></a><h3>gnutls_x509_crt_get_subject_unique_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_subject_unique_id (<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><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>This function will extract the subjectUniqueID value (if present) for
+the given certificate.</p>
+<p>If the user allocated memory buffer is not large enough to hold the
+full subjectUniqueID, then a GNUTLS_E_SHORT_MEMORY_BUFFER error will be
+returned, and buf_size will be set to the actual length.</p>
+<p>This function had a bug prior to 3.4.8 that prevented the setting
+of <code class="literal">NULL</code> <em class="parameter"><code>buf</code></em>
+ to discover the <em class="parameter"><code>buf_size</code></em>
+. To use this function safely
+with the older versions the <em class="parameter"><code>buf</code></em>
+ must be a valid buffer that can hold
+at least a single byte if <em class="parameter"><code>buf_size</code></em>
+ is zero.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-unique-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>crt</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>user allocated memory buffer, will hold the unique id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>size of user allocated memory buffer (on input), will hold
+actual size of the unique ID on return.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-unique-id.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> on success, otherwise a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-unique-id"></a><h3>gnutls_x509_crt_get_issuer_unique_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_unique_id (<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><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>This function will extract the issuerUniqueID value (if present) for
+the given certificate.</p>
+<p>If the user allocated memory buffer is not large enough to hold the
+full subjectUniqueID, then a GNUTLS_E_SHORT_MEMORY_BUFFER error will be
+returned, and buf_size will be set to the actual length.</p>
+<p>This function had a bug prior to 3.4.8 that prevented the setting
+of <code class="literal">NULL</code> <em class="parameter"><code>buf</code></em>
+ to discover the <em class="parameter"><code>buf_size</code></em>
+. To use this function safely
+with the older versions the <em class="parameter"><code>buf</code></em>
+ must be a valid buffer that can hold
+at least a single byte if <em class="parameter"><code>buf_size</code></em>
+ is zero.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-unique-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>crt</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>user allocated memory buffer, will hold the unique id</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>size of user allocated memory buffer (on input), will hold
+actual size of the unique ID on return.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-unique-id.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-pin-function"></a><h3>gnutls_x509_crt_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_crt_set_pin_function (<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-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
+it is required to access a protected object. This function overrides
+the global 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>
+<p>Note that this callback is currently used only during the import
+of a PKCS <span class="type">11</span> certificate with <a class="link" href="gnutls-x509.html#gnutls-x509-crt-import-url" title="gnutls_x509_crt_import_url ()"><code class="function">gnutls_x509_crt_import_url()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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>crt</p></td>
+<td class="parameter_description"><p>The certificate 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-x509-crt-get-authority-info-access"></a><h3>gnutls_x509_crt_get_authority_info_access ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_authority_info_access
+ (<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>unsigned <span class="type">int</span> seq</code></em>,
+ <em class="parameter"><code><span class="type">int</span> what</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>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>Note that a simpler API to access the authority info data is provided
+by <code class="function">gnutls_x509_aia_get()</code> and <code class="function">gnutls_x509_ext_import_aia()</code>.</p>
+<p>This function extracts the Authority Information Access (AIA)
+extension, see RFC 5280 section 4.2.2.1 for more information. The
+AIA extension holds a sequence of AccessDescription (AD) data.</p>
+<p>The <em class="parameter"><code>seq</code></em>
+ input parameter is used to indicate which member of the
+sequence the caller is interested in. The first member is 0, the
+second member 1 and so on. When the <em class="parameter"><code>seq</code></em>
+ value is out of bounds,
+<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> is returned.</p>
+<p>The type of data returned in <em class="parameter"><code>data</code></em>
+ is specified via <em class="parameter"><code>what</code></em>
+ which
+should be <a class="link" href="gnutls-x509.html#gnutls-info-access-what-t" title="enum gnutls_info_access_what_t"><span class="type">gnutls_info_access_what_t</span></a> values.</p>
+<p>If <em class="parameter"><code>what</code></em>
+ is <a class="link" href="gnutls-x509.html#GNUTLS-IA-ACCESSMETHOD-OID:CAPS"><code class="literal">GNUTLS_IA_ACCESSMETHOD_OID</code></a> then <em class="parameter"><code>data</code></em>
+ will hold the
+accessMethod OID (e.g., "1.3.6.1.5.5.7.48.1").</p>
+<p>If <em class="parameter"><code>what</code></em>
+ is <a class="link" href="gnutls-x509.html#GNUTLS-IA-ACCESSLOCATION-GENERALNAME-TYPE:CAPS"><code class="literal">GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE</code></a>, <em class="parameter"><code>data</code></em>
+ will
+hold the accessLocation GeneralName type (e.g.,
+"uniformResourceIdentifier").</p>
+<p>If <em class="parameter"><code>what</code></em>
+ is <a class="link" href="gnutls-x509.html#GNUTLS-IA-URI:CAPS"><code class="literal">GNUTLS_IA_URI</code></a>, <em class="parameter"><code>data</code></em>
+ will hold the accessLocation URI
+data. Requesting this <em class="parameter"><code>what</code></em>
+ value leads to an error if the
+accessLocation is not of the "uniformResourceIdentifier" type.</p>
+<p>If <em class="parameter"><code>what</code></em>
+ is <a class="link" href="gnutls-x509.html#GNUTLS-IA-OCSP-URI:CAPS"><code class="literal">GNUTLS_IA_OCSP_URI</code></a>, <em class="parameter"><code>data</code></em>
+ will hold the OCSP URI.
+Requesting this <em class="parameter"><code>what</code></em>
+ value leads to an error if the accessMethod
+is not 1.3.6.1.5.5.7.48.1 aka OCSP, or if accessLocation is not of
+the "uniformResourceIdentifier" type. In that case <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_ALGORITHM"><code class="literal">GNUTLS_E_UNKNOWN_ALGORITHM</code></a>
+will be returned, and <em class="parameter"><code>seq</code></em>
+ should be increased and this function
+called again.</p>
+<p>If <em class="parameter"><code>what</code></em>
+ is <a class="link" href="gnutls-x509.html#GNUTLS-IA-CAISSUERS-URI:CAPS"><code class="literal">GNUTLS_IA_CAISSUERS_URI</code></a>, <em class="parameter"><code>data</code></em>
+ will hold the caIssuers
+URI. Requesting this <em class="parameter"><code>what</code></em>
+ value leads to an error if the
+accessMethod is not 1.3.6.1.5.5.7.48.2 aka caIssuers, or if
+accessLocation is not of the "uniformResourceIdentifier" type.
+In that case handle as in <a class="link" href="gnutls-x509.html#GNUTLS-IA-OCSP-URI:CAPS"><code class="literal">GNUTLS_IA_OCSP_URI</code></a>.</p>
+<p>More <em class="parameter"><code>what</code></em>
+ values may be allocated in the future as needed.</p>
+<p>If <em class="parameter"><code>data</code></em>
+ is NULL, the function does the same without storing the
+output data, that is, it will set <em class="parameter"><code>critical</code></em>
+ and do error checking
+as usual.</p>
+<p>The value of the critical flag is returned in *<em class="parameter"><code>critical</code></em>
+. Supply a
+NULL <em class="parameter"><code>critical</code></em>
+ if you want the function to make sure the extension
+is non-critical, as required by RFC 5280.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-authority-info-access.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>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the access descriptor (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>what</p></td>
+<td class="parameter_description"><p>what data to get, a <a class="link" href="gnutls-x509.html#gnutls-info-access-what-t" title="enum gnutls_info_access_what_t"><span class="type">gnutls_info_access_what_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>output data to be freed with <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>pointer to output integer that is set to non-zero if the extension is marked as critical (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-authority-info-access.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> on success, <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> on
+invalid <em class="parameter"><code>crt</code></em>
+, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-CONSTRAINT-ERROR:CAPS" title="GNUTLS_E_CONSTRAINT_ERROR"><code class="literal">GNUTLS_E_CONSTRAINT_ERROR</code></a> if the extension is
+incorrectly marked as critical (use a non-NULL <em class="parameter"><code>critical</code></em>
+to
+override), <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS" title="GNUTLS_E_UNKNOWN_ALGORITHM"><code class="literal">GNUTLS_E_UNKNOWN_ALGORITHM</code></a> if the requested OID does
+not match (e.g., when using <a class="link" href="gnutls-x509.html#GNUTLS-IA-OCSP-URI:CAPS"><code class="literal">GNUTLS_IA_OCSP_URI</code></a>), otherwise a
+negative error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-check"></a><h3>gnutls_x509_name_constraints_check ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_name_constraints_check (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</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> *name</code></em>);</pre>
+<p>This function will check the provided name against the constraints in
+<em class="parameter"><code>nc</code></em>
+ using the RFC5280 rules. Currently this function is limited to DNS
+names, emails and IP addresses (of type <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a> and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"><code class="literal">GNUTLS_SAN_IPADDRESS</code></a>).</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-check.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>nc</p></td>
+<td class="parameter_description"><p>the extracted name constraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type of the constraint to check (of type gnutls_x509_subject_alt_name_t)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>the name to be checked</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-check.returns"></a><h4>Returns</h4>
+<p> zero if the provided name is not acceptable, and non-zero otherwise.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-check-crt"></a><h3>gnutls_x509_name_constraints_check_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_name_constraints_check_crt
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</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>);</pre>
+<p>This function will check the provided certificate names against the constraints in
+<em class="parameter"><code>nc</code></em>
+ using the RFC5280 rules. It will traverse all the certificate's names and
+alternative names.</p>
+<p>Currently this function is limited to DNS
+names and emails (of type <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a> and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>).</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-check-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>nc</p></td>
+<td class="parameter_description"><p>the extracted name constraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type of the constraint to check (of type gnutls_x509_subject_alt_name_t)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>the certificate to be checked</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-check-crt.returns"></a><h4>Returns</h4>
+<p> zero if the provided name is not acceptable, and non-zero otherwise.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-init"></a><h3>gnutls_x509_name_constraints_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_name_constraints_init (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> *nc</code></em>);</pre>
+<p>This function will initialize a name constraints type.</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-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>nc</p></td>
+<td class="parameter_description"><p>The nameconstraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-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: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-deinit"></a><h3>gnutls_x509_name_constraints_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_name_constraints_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>);</pre>
+<p>This function will deinitialize a name constraints type.</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-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>nc</p></td>
+<td class="parameter_description"><p>The nameconstraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-name-constraints"></a><h3>gnutls_x509_crt_get_name_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_name_constraints (<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-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return an intermediate type containing
+the name constraints of the provided CA certificate. That
+structure can be used in combination with <a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-check" title="gnutls_x509_name_constraints_check ()"><code class="function">gnutls_x509_name_constraints_check()</code></a>
+to verify whether a server's name is in accordance with the constraints.</p>
+<p>When the <em class="parameter"><code>flags</code></em>
+ is set to <a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND"><code class="literal">GNUTLS_EXT_FLAG_APPEND</code></a>,
+then if the <em class="parameter"><code>nc</code></em>
+ structure is empty this function will behave
+identically as if the flag was not set.
+Otherwise if there are elements in the <em class="parameter"><code>nc</code></em>
+ structure then the
+constraints will be merged with the existing constraints following
+RFC5280 p6.1.4 (excluded constraints will be appended, permitted
+will be intersected).</p>
+<p>Note that <em class="parameter"><code>nc</code></em>
+ must be initialized prior to calling this function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-name-constraints.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>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nc</p></td>
+<td class="parameter_description"><p>The nameconstraints intermediate type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND"><code class="literal">GNUTLS_EXT_FLAG_APPEND</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>the extension status</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-name-constraints.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 extension is not present, otherwise a negative error value.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-add-permitted"></a><h3>gnutls_x509_name_constraints_add_permitted ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_name_constraints_add_permitted
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</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> *name</code></em>);</pre>
+<p>This function will add a name constraint to the list of permitted
+constraints. The constraints <em class="parameter"><code>type</code></em>
+ can be any of the following types:
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DN:CAPS"><code class="literal">GNUTLS_SAN_DN</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"><code class="literal">GNUTLS_SAN_URI</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"><code class="literal">GNUTLS_SAN_IPADDRESS</code></a>. For the latter, an IP address
+in network byte order is expected, followed by its network mask.</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-add-permitted.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>nc</p></td>
+<td class="parameter_description"><p>The nameconstraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The type of the constraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>The data of the constraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-add-permitted.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-add-excluded"></a><h3>gnutls_x509_name_constraints_add_excluded ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_name_constraints_add_excluded
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</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> *name</code></em>);</pre>
+<p>This function will add a name constraint to the list of excluded
+constraints. The constraints <em class="parameter"><code>type</code></em>
+ can be any of the following types:
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DN:CAPS"><code class="literal">GNUTLS_SAN_DN</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"><code class="literal">GNUTLS_SAN_URI</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"><code class="literal">GNUTLS_SAN_IPADDRESS</code></a>. For the latter, an IP address
+in network byte order is expected, followed by its network mask (which is
+4 bytes in IPv4 or 16-bytes in IPv6).</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-add-excluded.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>nc</p></td>
+<td class="parameter_description"><p>The nameconstraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The type of the constraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>The data of the constraints</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-add-excluded.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-name-constraints"></a><h3>gnutls_x509_crt_set_name_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_name_constraints (<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-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>This function will set the provided name constraints to
+the certificate extension list. This extension is always
+marked as critical.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-name-constraints.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>The certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nc</p></td>
+<td class="parameter_description"><p>The nameconstraints structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>whether this extension will be critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-name-constraints.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-get-permitted"></a><h3>gnutls_x509_name_constraints_get_permitted ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_name_constraints_get_permitted
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</code></em>,
+ <em class="parameter"><code><span class="type">unsigned</span> *type</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> *name</code></em>);</pre>
+<p>This function will return an intermediate type containing
+the name constraints of the provided CA certificate. That
+structure can be used in combination with <a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-check" title="gnutls_x509_name_constraints_check ()"><code class="function">gnutls_x509_name_constraints_check()</code></a>
+to verify whether a server's name is in accordance with the constraints.</p>
+<p>The name should be treated as constant and valid for the lifetime of <em class="parameter"><code>nc</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-get-permitted.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>nc</p></td>
+<td class="parameter_description"><p>the extracted name constraints</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 constraint</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type of the constraint (of type gnutls_x509_subject_alt_name_t)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>the name in the constraint (of the specific type)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-get-permitted.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 extension is not present, otherwise a negative error value.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-get-excluded"></a><h3>gnutls_x509_name_constraints_get_excluded ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_name_constraints_get_excluded
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-t" title="gnutls_x509_name_constraints_t"><span class="type">gnutls_x509_name_constraints_t</span></a> nc</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</code></em>,
+ <em class="parameter"><code><span class="type">unsigned</span> *type</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> *name</code></em>);</pre>
+<p>This function will return an intermediate type containing
+the name constraints of the provided CA certificate. That
+structure can be used in combination with <a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-check" title="gnutls_x509_name_constraints_check ()"><code class="function">gnutls_x509_name_constraints_check()</code></a>
+to verify whether a server's name is in accordance with the constraints.</p>
+<p>The name should be treated as constant and valid for the lifetime of <em class="parameter"><code>nc</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-get-excluded.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>nc</p></td>
+<td class="parameter_description"><p>the extracted name constraints</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 constraint</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>the type of the constraint (of type gnutls_x509_subject_alt_name_t)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>the name in the constraint (of the specific type)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-name-constraints-get-excluded.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 extension is not present, otherwise a negative error value.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-cidr-to-rfc5280"></a><h3>gnutls_x509_cidr_to_rfc5280 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_cidr_to_rfc5280 (<em class="parameter"><code>const <span class="type">char</span> *cidr</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> *cidr_rfc5280</code></em>);</pre>
+<p>This function will convert text CIDR range with prefix (such as '10.0.0.0/8')
+to RFC5280 (IP address in network byte order followed by its network mask).
+Works for both IPv4 and IPv6.</p>
+<p>The resulting object is directly usable for IP name constraints usage,
+for example in functions <a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-add-permitted" title="gnutls_x509_name_constraints_add_permitted ()"><code class="literal">gnutls_x509_name_constraints_add_permitted</code></a>
+or <a class="link" href="gnutls-x509.html#gnutls-x509-name-constraints-add-excluded" title="gnutls_x509_name_constraints_add_excluded ()"><code class="literal">gnutls_x509_name_constraints_add_excluded</code></a>.</p>
+<p>The data in datum 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-x509-cidr-to-rfc5280.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>cidr</p></td>
+<td class="parameter_description"><p>CIDR in RFC4632 format (IP/prefix), null-terminated</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cidr_rfc5280</p></td>
+<td class="parameter_description"><p>CIDR range converted to RFC5280 format</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-cidr-to-rfc5280.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.5.4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-crl-dist-points"></a><h3>gnutls_x509_crt_get_crl_dist_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_crl_dist_points (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *reason_flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function retrieves the CRL distribution points (2.5.29.31),
+contained in the given certificate in the X509v3 Certificate
+Extensions.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-crl-dist-points.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the distribution point (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>san</p></td>
+<td class="parameter_description"><p>is the place where the distribution point will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>san_size</p></td>
+<td class="parameter_description"><p>holds the size of ret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>reason_flags</p></td>
+<td class="parameter_description"><p>Revocation reasons. An ORed sequence of flags from <a class="link" href="gnutls-x509.html#gnutls-x509-crl-reason-flags-t" title="enum gnutls_x509_crl_reason_flags_t"><code class="literal">gnutls_x509_crl_reason_flags_t</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-crl-dist-points.returns"></a><h4>Returns</h4>
+<p> <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> and updates <em class="parameter"><code>ret_size</code></em>
+if
+<em class="parameter"><code>ret_size</code></em>
+is not enough to hold the distribution point, or the
+type of the distribution point if everything was ok. The type is
+one of the enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><code class="literal">gnutls_x509_subject_alt_name_t</code></a>. If the
+certificate does not have an Alternative name with the specified
+sequence number then <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> is
+returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crl-dist-points2"></a><h3>gnutls_x509_crt_set_crl_dist_points2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_crl_dist_points2 (<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-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> reason_flags</code></em>);</pre>
+<p>This function will set the CRL distribution points certificate extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crl-dist-points2.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>type</p></td>
+<td class="parameter_description"><p>is one of the gnutls_x509_subject_alt_name_t enumerations</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 be 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 data size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>reason_flags</p></td>
+<td class="parameter_description"><p>revocation reasons</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crl-dist-points2.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crl-dist-points"></a><h3>gnutls_x509_crt_set_crl_dist_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_crl_dist_points (<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-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data_string</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> reason_flags</code></em>);</pre>
+<p>This function will set the CRL distribution points certificate extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crl-dist-points.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>type</p></td>
+<td class="parameter_description"><p>is one of the gnutls_x509_subject_alt_name_t enumerations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_string</p></td>
+<td class="parameter_description"><p>The data to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>reason_flags</p></td>
+<td class="parameter_description"><p>revocation reasons</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crl-dist-points.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-x509-crt-cpy-crl-dist-points"></a><h3>gnutls_x509_crt_cpy_crl_dist_points ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_cpy_crl_dist_points (<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> dst</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> src</code></em>);</pre>
+<p>This function will copy the CRL distribution points certificate
+extension, from the source to the destination certificate.
+This may be useful to copy from a CA certificate to issued ones.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-cpy-crl-dist-points.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>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>src</p></td>
+<td class="parameter_description"><p>the certificate where the dist points will be copied from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-cpy-crl-dist-points.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-x509-crl-sign"></a><h3>gnutls_x509_crl_sign ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_sign (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+ <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> issuer_key</code></em>);</pre>
+<p>This function is the same a <a class="link" href="gnutls-x509.html#gnutls-x509-crl-sign2" title="gnutls_x509_crl_sign2 ()"><code class="function">gnutls_x509_crl_sign2()</code></a> with no flags,
+and an appropriate hash algorithm. The hash algorithm used may
+vary between versions of GnuTLS, and it is tied to the security
+level of the issuer's public key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-sign.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer</p></td>
+<td class="parameter_description"><p>is the certificate of the certificate issuer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer_key</p></td>
+<td class="parameter_description"><p>holds the issuer's private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-sign.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-x509-crl-sign2"></a><h3>gnutls_x509_crl_sign2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_sign2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+ <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> issuer_key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will sign the CRL with the issuer's private key, and
+will copy the issuer's information into the CRL.</p>
+<p>This must be the last step in a certificate CRL since all
+the previously set parameters are now signed.</p>
+<p>A known limitation of this function is, that a newly-signed CRL will not
+be fully functional (e.g., for signature verification), until it
+is exported an re-imported.</p>
+<p>After GnuTLS 3.6.1 the value of <em class="parameter"><code>dig</code></em>
+ may be <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"><code class="literal">GNUTLS_DIG_UNKNOWN</code></a>,
+and in that case, a suitable but reasonable for the key algorithm will be selected.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-sign2.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer</p></td>
+<td class="parameter_description"><p>is the certificate of the certificate issuer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer_key</p></td>
+<td class="parameter_description"><p>holds the issuer's private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>The message digest to use. GNUTLS_DIG_SHA256 is the safe choice unless you know what you're doing.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-sign2.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-x509-crt-get-activation-time"></a><h3>gnutls_x509_crt_get_activation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_x509_crt_get_activation_time (<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>);</pre>
+<p>This function will return the time this Certificate was or will be
+activated.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-activation-time.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-activation-time.returns"></a><h4>Returns</h4>
+<p> activation time, or (time_t)-1 on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-expiration-time"></a><h3>gnutls_x509_crt_get_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_x509_crt_get_expiration_time (<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>);</pre>
+<p>This function will return the time this certificate was or will be
+expired.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-expiration-time.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-expiration-time.returns"></a><h4>Returns</h4>
+<p> expiration time, or (time_t)-1 on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-serial"></a><h3>gnutls_x509_crt_get_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_serial (<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><span class="type">void</span> *result</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *result_size</code></em>);</pre>
+<p>This function will return the X.509 certificate's serial number.
+This is obtained by the X509 Certificate serialNumber field. Serial
+is not always a 32 or 64bit number. Some CAs use large serial
+numbers, thus it may be wise to handle it as something uint8_t.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-serial.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result</p></td>
+<td class="parameter_description"><p>The place where the serial number will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>result_size</p></td>
+<td class="parameter_description"><p>Holds the size of the result field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-serial.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-x509-spki-init"></a><h3>gnutls_x509_spki_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_spki_init (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> *spki</code></em>);</pre>
+<p>This function will initialize a SubjectPublicKeyInfo structure used
+in PKIX. The structure is used to set additional parameters
+in the public key information field of a certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-spki-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>spki</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-x509-spki-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: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-spki-deinit"></a><h3>gnutls_x509_spki_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_spki_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>);</pre>
+<p>This function will deinitialize a SubjectPublicKeyInfo structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-spki-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>spki</p></td>
+<td class="parameter_description"><p>the SubjectPublicKeyInfo structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-spki-get-rsa-pss-params"></a><h3>gnutls_x509_spki_get_rsa_pss_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_spki_get_rsa_pss_params (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *salt_size</code></em>);</pre>
+<p>This function will get the public key algorithm parameters
+of RSA-PSS type.</p>
+<div class="refsect3">
+<a name="gnutls-x509-spki-get-rsa-pss-params.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>spki</p></td>
+<td class="parameter_description"><p>the SubjectPublicKeyInfo structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>if non-NULL, it will hold the digest algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt_size</p></td>
+<td class="parameter_description"><p>if non-NULL, it will hold the salt size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-spki-get-rsa-pss-params.returns"></a><h4>Returns</h4>
+<p> zero if the parameters are present or a negative
+value on error.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-spki-set-rsa-pss-params"></a><h3>gnutls_x509_spki_set_rsa_pss_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_spki_set_rsa_pss_params (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> salt_size</code></em>);</pre>
+<p>This function will set the public key parameters for
+an RSA-PSS algorithm, in the SubjectPublicKeyInfo structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-spki-set-rsa-pss-params.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>spki</p></td>
+<td class="parameter_description"><p>the SubjectPublicKeyInfo structure</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>a digest algorithm of type <a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt_size</p></td>
+<td class="parameter_description"><p>the size of salt string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-algorithm"></a><h3>gnutls_x509_crt_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_pk_algorithm (<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> *bits</code></em>);</pre>
+<p>This function will return the public key algorithm of an X.509
+certificate.</p>
+<p>If bits is non null, it should have enough size to hold the parameters
+size in bits. For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public
+exponent.</p>
+<p>Unknown/unsupported algorithms are mapped to <a class="link" href="gnutls-gnutls.html#GNUTLS-PK-UNKNOWN:CAPS"><code class="literal">GNUTLS_PK_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> 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-x509-crt-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-x509-crt-set-spki"></a><h3>gnutls_x509_crt_set_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_spki (<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 <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the certificate's subject public key
+information explicitly. This is intended to be used in the cases
+where a single public key (e.g., RSA) can be used for multiple
+signature algorithms (RSA PKCS1-1.5, and RSA-PSS).</p>
+<p>To export the public key (i.e., the SubjectPublicKeyInfo part), check
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()"><code class="function">gnutls_pubkey_import_x509()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-spki.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>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a></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-x509-crt-set-spki.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-spki"></a><h3>gnutls_x509_crt_get_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_spki (<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-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the public key information of an X.509
+certificate. The provided <em class="parameter"><code>spki</code></em>
+ must be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-spki.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>cert</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>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a></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>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-rsa-raw"></a><h3>gnutls_x509_crt_get_pk_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_pk_rsa_raw (<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> *m</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> *e</code></em>);</pre>
+<p>This function will export the RSA public key's parameters found in
+the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-rsa-raw.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>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-rsa-raw.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> on success, otherwise a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-dsa-raw"></a><h3>gnutls_x509_crt_get_pk_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_pk_dsa_raw (<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> *p</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> *q</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> *g</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> *y</code></em>);</pre>
+<p>This function will export the DSA public key's parameters found in
+the given certificate. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-dsa-raw.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>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the p</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the q</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>will hold the g</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-dsa-raw.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> on success, otherwise a negative error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-ecc-raw"></a><h3>gnutls_x509_crt_get_pk_ecc_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_pk_ecc_raw (<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-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</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> *x</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> *y</code></em>);</pre>
+<p>This function will export the ECC public key's parameters found in
+the given certificate. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter will be <code class="literal">NULL</code> and the other parameters
+will be in the native format for the curve.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-ecc-raw.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>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-ecc-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.4.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-pk-gost-raw"></a><h3>gnutls_x509_crt_get_pk_gost_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_pk_gost_raw (<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-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *digest</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t"><span class="type">gnutls_gost_paramset_t</span></a> *paramset</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> *x</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> *y</code></em>);</pre>
+<p>This function will export the GOST public key's parameters found in
+the given certificate. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-gost-raw.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>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>will hold the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>paramset</p></td>
+<td class="parameter_description"><p>will hold the GOST parameter set ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-pk-gost-raw.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> on success, otherwise a negative error code.</p>
+</div>
+<p class="since">Since: 3.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-alt-name"></a><h3>gnutls_x509_crt_get_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_subject_alt_name (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *san</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *san_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function retrieves the Alternative Name (2.5.29.17), contained
+in the given certificate in the X509v3 Certificate Extensions.</p>
+<p>When the SAN type is otherName, it will extract the data in the
+otherName's value field, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> is returned.
+You may use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()"><code class="function">gnutls_x509_crt_get_subject_alt_othername_oid()</code></a> to get
+the corresponding OID and the "virtual" SAN types (e.g.,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>).</p>
+<p>If an otherName OID is known, the data will be decoded. Otherwise
+the returned data will be DER encoded, and you will have to decode
+it yourself. Currently, only the RFC 3920 id-on-xmppAddr SAN is
+recognized.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-alt-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>san</p></td>
+<td class="parameter_description"><p>is the place where the alternative name will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>san_size</p></td>
+<td class="parameter_description"><p>holds the size of san.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-alt-name.returns"></a><h4>Returns</h4>
+<p> the alternative subject name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>. It will 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> if <em class="parameter"><code>san_size</code></em>
+is not large enough to
+hold the value. In that case <em class="parameter"><code>san_size</code></em>
+will be updated with the
+required size. If the certificate does not have an Alternative
+name with the specified sequence number then
+<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> is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-alt-name2"></a><h3>gnutls_x509_crt_get_subject_alt_name2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_subject_alt_name2 (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *san</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *san_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *san_type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the alternative names, contained in the
+given certificate. It is the same as
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()"><code class="function">gnutls_x509_crt_get_subject_alt_name()</code></a> except for the fact that it
+will return the type of the alternative name in <em class="parameter"><code>san_type</code></em>
+ even if
+the function fails for some reason (i.e. the buffer provided is
+not enough).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-alt-name2.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>san</p></td>
+<td class="parameter_description"><p>is the place where the alternative name will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>san_size</p></td>
+<td class="parameter_description"><p>holds the size of ret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>san_type</p></td>
+<td class="parameter_description"><p>holds the type of the alternative name (one of gnutls_x509_subject_alt_name_t).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-alt-name2.returns"></a><h4>Returns</h4>
+<p> the alternative subject name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>. It will 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> if <em class="parameter"><code>san_size</code></em>
+is not large enough
+to hold the value. In that case <em class="parameter"><code>san_size</code></em>
+will be updated with
+the required size. If the certificate does not have an
+Alternative name with the specified sequence number then
+<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> is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject-alt-othername-oid"></a><h3>gnutls_x509_crt_get_subject_alt_othername_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_subject_alt_othername_oid
+ (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will extract the type OID of an otherName Subject
+Alternative Name, contained in the given certificate, and return
+the type as an enumerated element.</p>
+<p>This function is only useful if
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()"><code class="function">gnutls_x509_crt_get_subject_alt_name()</code></a> returned
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a>.</p>
+<p>If <em class="parameter"><code>oid</code></em>
+ is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em>
+ will not
+account for the trailing null.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-alt-othername-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>is the place where the otherName OID will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>holds the size of ret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject-alt-othername-oid.returns"></a><h4>Returns</h4>
+<p> the alternative subject name type on success, one of the
+enumerated gnutls_x509_subject_alt_name_t. For supported OIDs, it
+will return one of the virtual (GNUTLS_SAN_OTHERNAME_*) types,
+e.g. <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> for
+unknown OIDs. It will 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> if
+<em class="parameter"><code>ian_size</code></em>
+is not large enough to hold the value. In that case
+<em class="parameter"><code>ian_size</code></em>
+will be updated with the required size. If the
+certificate does not have an Alternative name with the specified
+sequence number and with the otherName type then
+<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> is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-alt-name"></a><h3>gnutls_x509_crt_get_issuer_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_alt_name (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ian</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ian_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function retrieves the Issuer Alternative Name (2.5.29.18),
+contained in the given certificate in the X509v3 Certificate
+Extensions.</p>
+<p>When the SAN type is otherName, it will extract the data in the
+otherName's value field, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> is returned.
+You may use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid" title="gnutls_x509_crt_get_subject_alt_othername_oid ()"><code class="function">gnutls_x509_crt_get_subject_alt_othername_oid()</code></a> to get
+the corresponding OID and the "virtual" SAN types (e.g.,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>).</p>
+<p>If an otherName OID is known, the data will be decoded. Otherwise
+the returned data will be DER encoded, and you will have to decode
+it yourself. Currently, only the RFC 3920 id-on-xmppAddr Issuer
+AltName is recognized.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-alt-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ian</p></td>
+<td class="parameter_description"><p>is the place where the alternative name will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ian_size</p></td>
+<td class="parameter_description"><p>holds the size of ian.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-alt-name.returns"></a><h4>Returns</h4>
+<p> the alternative issuer name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>. It will 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> if <em class="parameter"><code>ian_size</code></em>
+is not large enough
+to hold the value. In that case <em class="parameter"><code>ian_size</code></em>
+will be updated with
+the required size. If the certificate does not have an
+Alternative name with the specified sequence number then
+<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> is returned.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-alt-name2"></a><h3>gnutls_x509_crt_get_issuer_alt_name2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_alt_name2 (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ian</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ian_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *ian_type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the alternative names, contained in the
+given certificate. It is the same as
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()"><code class="function">gnutls_x509_crt_get_issuer_alt_name()</code></a> except for the fact that it
+will return the type of the alternative name in <em class="parameter"><code>ian_type</code></em>
+ even if
+the function fails for some reason (i.e. the buffer provided is
+not enough).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-alt-name2.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ian</p></td>
+<td class="parameter_description"><p>is the place where the alternative name will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ian_size</p></td>
+<td class="parameter_description"><p>holds the size of ret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ian_type</p></td>
+<td class="parameter_description"><p>holds the type of the alternative name (one of gnutls_x509_subject_alt_name_t).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-alt-name2.returns"></a><h4>Returns</h4>
+<p> the alternative issuer name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>. It will 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> if <em class="parameter"><code>ian_size</code></em>
+is not large enough
+to hold the value. In that case <em class="parameter"><code>ian_size</code></em>
+will be updated with
+the required size. If the certificate does not have an
+Alternative name with the specified sequence number then
+<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> is returned.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer-alt-othername-oid"></a><h3>gnutls_x509_crt_get_issuer_alt_othername_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer_alt_othername_oid
+ (<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> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>);</pre>
+<p>This function will extract the type OID of an otherName Subject
+Alternative Name, contained in the given certificate, and return
+the type as an enumerated element.</p>
+<p>If <em class="parameter"><code>oid</code></em>
+ is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em>
+ will not
+account for the trailing null.</p>
+<p>This function is only useful if
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" title="gnutls_x509_crt_get_issuer_alt_name ()"><code class="function">gnutls_x509_crt_get_issuer_alt_name()</code></a> returned
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-alt-othername-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret</p></td>
+<td class="parameter_description"><p>is the place where the otherName OID will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret_size</p></td>
+<td class="parameter_description"><p>holds the size of ret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer-alt-othername-oid.returns"></a><h4>Returns</h4>
+<p> the alternative issuer name type on success, one of the
+enumerated gnutls_x509_subject_alt_name_t. For supported OIDs, it
+will return one of the virtual (GNUTLS_SAN_OTHERNAME_*) types,
+e.g. <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> for
+unknown OIDs. It will 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> if
+<em class="parameter"><code>ret_size</code></em>
+is not large enough to hold the value. In that case
+<em class="parameter"><code>ret_size</code></em>
+will be updated with the required size. If the
+certificate does not have an Alternative name with the specified
+sequence number and with the otherName type then
+<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> is returned.</p>
+</div>
+<p class="since">Since: 2.10.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-ca-status"></a><h3>gnutls_x509_crt_get_ca_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_ca_status (<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> *critical</code></em>);</pre>
+<p>This function will return certificates CA status, by reading the
+basicConstraints X.509 extension (2.5.29.19). If the certificate is
+a CA a positive value will be returned, or (0) if the certificate
+does not have CA flag set.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-basic-constraints" title="gnutls_x509_crt_get_basic_constraints ()"><code class="function">gnutls_x509_crt_get_basic_constraints()</code></a> if you want to read the
+pathLenConstraint field too.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-ca-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-ca-status.returns"></a><h4>Returns</h4>
+<p> If the certificate is a CA a positive value will be
+returned, or (0) if the certificate does not have CA flag set. A
+negative error code may be returned in case of errors. If the
+certificate does not contain the basicConstraints extension
+GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-basic-constraints"></a><h3>gnutls_x509_crt_get_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_basic_constraints (<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> *critical</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *ca</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>);</pre>
+<p>This function will read the certificate's basic constraints, and
+return the certificates CA status. It reads the basicConstraints
+X.509 extension (2.5.29.19).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-basic-constraints.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca</p></td>
+<td class="parameter_description"><p>pointer to output integer indicating CA status, may be NULL,
+value is 1 if the certificate CA flag is set, 0 otherwise.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pathlen</p></td>
+<td class="parameter_description"><p>pointer to output integer indicating path length (may be
+NULL), non-negative error codes indicate a present pathLenConstraint
+field and the actual value, -1 indicate that the field is absent.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-basic-constraints.returns"></a><h4>Returns</h4>
+<p> If the certificate is a CA a positive value will be
+returned, or (0) if the certificate does not have CA flag set. A
+negative error code may be returned in case of errors. If the
+certificate does not contain the basicConstraints extension
+GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-key-usage"></a><h3>gnutls_x509_crt_get_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_key_usage (<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> *key_usage</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return certificate's key usage, by reading the
+keyUsage X.509 extension (2.5.29.15). The key usage value will ORed
+values of the: <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION"><code class="literal">GNUTLS_KEY_NON_REPUDIATION</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_DATA_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_DATA_ENCIPHERMENT</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS" title="GNUTLS_KEY_KEY_AGREEMENT"><code class="literal">GNUTLS_KEY_KEY_AGREEMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS" title="GNUTLS_KEY_KEY_CERT_SIGN"><code class="literal">GNUTLS_KEY_KEY_CERT_SIGN</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN"><code class="literal">GNUTLS_KEY_CRL_SIGN</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY"><code class="literal">GNUTLS_KEY_ENCIPHER_ONLY</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY"><code class="literal">GNUTLS_KEY_DECIPHER_ONLY</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-key-usage.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>where the key usage bits will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-key-usage.returns"></a><h4>Returns</h4>
+<p> zero on success, or a negative error code in case of
+parsing error. If the certificate does not contain the keyUsage
+extension <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be
+returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-key-usage"></a><h3>gnutls_x509_crt_set_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_key_usage (<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>unsigned <span class="type">int</span> usage</code></em>);</pre>
+<p>This function will set the keyUsage certificate extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-key-usage.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>usage</p></td>
+<td class="parameter_description"><p>an ORed sequence of the GNUTLS_KEY_* elements.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-key-usage.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-x509-crt-set-authority-info-access"></a><h3>gnutls_x509_crt_set_authority_info_access ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_authority_info_access
+ (<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><span class="type">int</span> what</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>);</pre>
+<p>This function sets the Authority Information Access (AIA)
+extension, see RFC 5280 section 4.2.2.1 for more information. </p>
+<p>The type of data stored in <em class="parameter"><code>data</code></em>
+ is specified via <em class="parameter"><code>what</code></em>
+ which
+should be <a class="link" href="gnutls-x509.html#gnutls-info-access-what-t" title="enum gnutls_info_access_what_t"><span class="type">gnutls_info_access_what_t</span></a> values.</p>
+<p>If <em class="parameter"><code>what</code></em>
+ is <a class="link" href="gnutls-x509.html#GNUTLS-IA-OCSP-URI:CAPS"><code class="literal">GNUTLS_IA_OCSP_URI</code></a>, <em class="parameter"><code>data</code></em>
+ will hold the OCSP URI.
+If <em class="parameter"><code>what</code></em>
+ is <a class="link" href="gnutls-x509.html#GNUTLS-IA-CAISSUERS-URI:CAPS"><code class="literal">GNUTLS_IA_CAISSUERS_URI</code></a>, <em class="parameter"><code>data</code></em>
+ will hold the caIssuers
+URI.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-authority-info-access.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>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>what</p></td>
+<td class="parameter_description"><p>what data to get, a <a class="link" href="gnutls-x509.html#gnutls-info-access-what-t" title="enum gnutls_info_access_what_t"><span class="type">gnutls_info_access_what_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>output data to be freed with <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-authority-info-access.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-x509-crt-get-inhibit-anypolicy"></a><h3>gnutls_x509_crt_get_inhibit_anypolicy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_inhibit_anypolicy (<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> *skipcerts</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return certificate's value of the SkipCerts, i.e.,
+the Inhibit anyPolicy X.509 extension (2.5.29.54).</p>
+<p>The returned value is the number of additional certificates that
+may appear in the path before the anyPolicy is no longer acceptable.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-inhibit-anypolicy.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>skipcerts</p></td>
+<td class="parameter_description"><p>will hold the number of certificates after which anypolicy is no longer acceptable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-inhibit-anypolicy.returns"></a><h4>Returns</h4>
+<p> zero on success, or a negative error code in case of
+parsing error. If the certificate does not contain the Inhibit anyPolicy
+extension <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be
+returned.</p>
+</div>
+<p class="since">Since: 3.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-inhibit-anypolicy"></a><h3>gnutls_x509_crt_set_inhibit_anypolicy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_inhibit_anypolicy (<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>unsigned <span class="type">int</span> skipcerts</code></em>);</pre>
+<p>This function will set the Inhibit anyPolicy certificate extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-inhibit-anypolicy.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>skipcerts</p></td>
+<td class="parameter_description"><p>number of certificates after which anypolicy is no longer acceptable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-inhibit-anypolicy.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-x509-crt-get-proxy"></a><h3>gnutls_x509_crt_get_proxy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_proxy (<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> *critical</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>,
+ <em class="parameter"><code><span class="type">char</span> **policyLanguage</code></em>,
+ <em class="parameter"><code><span class="type">char</span> **policy</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_policy</code></em>);</pre>
+<p>This function will get information from a proxy certificate. It
+reads the ProxyCertInfo X.509 extension (1.3.6.1.5.5.7.1.14).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-proxy.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pathlen</p></td>
+<td class="parameter_description"><p>pointer to output integer indicating path length (may be
+NULL), non-negative error codes indicate a present pCPathLenConstraint
+field and the actual value, -1 indicate that the field is absent.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>policyLanguage</p></td>
+<td class="parameter_description"><p>output variable with OID of policy language</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>policy</p></td>
+<td class="parameter_description"><p>output variable with policy data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_policy</p></td>
+<td class="parameter_description"><p>output variable size of policy data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-proxy.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-tlsfeatures-init"></a><h3>gnutls_x509_tlsfeatures_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_tlsfeatures_init (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> *features</code></em>);</pre>
+<p>This function will initialize a X.509 TLS features extension structure</p>
+<div class="refsect3">
+<a name="gnutls-x509-tlsfeatures-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>f</p></td>
+<td class="parameter_description"><p>The TLS features</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-tlsfeatures-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: 3.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-tlsfeatures-deinit"></a><h3>gnutls_x509_tlsfeatures_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_tlsfeatures_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> Param1</code></em>);</pre>
+<p>This function will deinitialize a X.509 TLS features extension structure</p>
+<div class="refsect3">
+<a name="gnutls-x509-tlsfeatures-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>f</p></td>
+<td class="parameter_description"><p>The TLS features</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-tlsfeatures-get"></a><h3>gnutls_x509_tlsfeatures_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_tlsfeatures_get (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> f</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> idx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *feature</code></em>);</pre>
+<p>This function will get a feature from the X.509 TLS features
+extension structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-tlsfeatures-get.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>f</p></td>
+<td class="parameter_description"><p>The TLS features</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 feature to get</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>feature</p></td>
+<td class="parameter_description"><p>If the function succeeds, the feature will be stored in this variable</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-tlsfeatures-get.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.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-tlsfeatures"></a><h3>gnutls_x509_crt_set_tlsfeatures ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_tlsfeatures (<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-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> features</code></em>);</pre>
+<p>This function will set the certificates
+X.509 TLS extension from the given structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-tlsfeatures.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 X.509 certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>features</p></td>
+<td class="parameter_description"><p>If the function succeeds, the
+features will be added to the certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-tlsfeatures.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.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-tlsfeatures"></a><h3>gnutls_x509_crt_get_tlsfeatures ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_tlsfeatures (<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-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> features</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will get the X.509 TLS features
+extension structure from the certificate. The
+returned structure needs to be freed using
+<a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-deinit" title="gnutls_x509_tlsfeatures_deinit ()"><code class="function">gnutls_x509_tlsfeatures_deinit()</code></a>.</p>
+<p>When the <em class="parameter"><code>flags</code></em>
+ is set to <a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND"><code class="literal">GNUTLS_EXT_FLAG_APPEND</code></a>,
+then if the <em class="parameter"><code>features</code></em>
+ structure is empty this function will behave
+identically as if the flag was not set. Otherwise if there are elements
+in the <em class="parameter"><code>features</code></em>
+ structure then they will be merged with.</p>
+<p>Note that <em class="parameter"><code>features</code></em>
+ must be initialized prior to calling this function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-tlsfeatures.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 X.509 certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>features</p></td>
+<td class="parameter_description"><p>If the function succeeds, the
+features will be stored in this variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND"><code class="literal">GNUTLS_EXT_FLAG_APPEND</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>the extension status</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-tlsfeatures.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.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-tlsfeatures-check-crt"></a><h3>gnutls_x509_tlsfeatures_check_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_tlsfeatures_check_crt (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> feat</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>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-policy-release"></a><h3>gnutls_x509_policy_release ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_policy_release (<em class="parameter"><code><span class="type">struct gnutls_x509_policy_st</span> *policy</code></em>);</pre>
+<p>This function will deinitialize all memory associated with the provided
+<em class="parameter"><code>policy</code></em>
+. The policy is allocated using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-policy" title="gnutls_x509_crt_get_policy ()"><code class="function">gnutls_x509_crt_get_policy()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-policy-release.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>policy</p></td>
+<td class="parameter_description"><p>a certificate policy</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.1.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-policy"></a><h3>gnutls_x509_crt_get_policy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_policy (<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><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">struct gnutls_x509_policy_st</span> *policy</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will extract the certificate policy (extension 2.5.29.32)
+specified by the given index.</p>
+<p>The policy returned by this function must be deinitialized by using
+<a class="link" href="gnutls-x509.html#gnutls-x509-policy-release" title="gnutls_x509_policy_release ()"><code class="function">gnutls_x509_policy_release()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-policy.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>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>This specifies which policy to return. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>policy</p></td>
+<td class="parameter_description"><p>A pointer to a policy structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-policy.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 extension is not present, otherwise a negative error value.</p>
+</div>
+<p class="since">Since: 3.1.5</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-policy"></a><h3>gnutls_x509_crt_set_policy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_policy (<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">struct gnutls_x509_policy_st</span> *policy</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>This function will set the certificate policy extension (2.5.29.32).
+Multiple calls to this function append a new policy.</p>
+<p>Note the maximum text size for the qualifier <a class="link" href="gnutls-x509.html#GNUTLS-X509-QUALIFIER-NOTICE:CAPS"><code class="literal">GNUTLS_X509_QUALIFIER_NOTICE</code></a>
+is 200 characters. This function will fail with <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>
+if this is exceeded.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-policy.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>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>policy</p></td>
+<td class="parameter_description"><p>A pointer to a policy</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>use non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-policy.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-x509-dn-oid-known"></a><h3>gnutls_x509_dn_oid_known ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_oid_known (<em class="parameter"><code>const <span class="type">char</span> *oid</code></em>);</pre>
+<p>This function will inform about known DN OIDs. This is useful since
+functions like <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()"><code class="function">gnutls_x509_crt_set_dn_by_oid()</code></a> use the information
+on known OIDs to properly encode their input. Object Identifiers
+that are not known are not encoded by these functions, and their
+input is stored directly into the ASN.1 structure. In that case of
+unknown OIDs, you have the responsibility of DER encoding your
+data.</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-oid-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>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-oid-known.returns"></a><h4>Returns</h4>
+<p> 1 on known OIDs and 0 otherwise.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-oid-name"></a><h3>gnutls_x509_dn_oid_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_x509_dn_oid_name (<em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the name of a known DN OID. If
+<a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-OID-RETURN-OID:CAPS" title="GNUTLS_X509_DN_OID_RETURN_OID"><code class="literal">GNUTLS_X509_DN_OID_RETURN_OID</code></a> is specified this function
+will return the given OID if no descriptive name has been
+found.</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-oid-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>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>0 or GNUTLS_X509_DN_OID_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-oid-name.returns"></a><h4>Returns</h4>
+<p> A null terminated string or NULL otherwise.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-oid"></a><h3>gnutls_x509_crt_get_extension_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_extension_oid (<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><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will return the requested extension OID in the certificate.
+The extension OID will be stored as a string in the provided buffer.</p>
+<p>The <em class="parameter"><code>oid</code></em>
+ returned will be null terminated, although <em class="parameter"><code>oid_size</code></em>
+ will not
+account for the trailing null.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-oid.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 code is returned. If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-by-oid"></a><h3>gnutls_x509_crt_get_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_extension_by_oid (<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>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the extension specified by the OID in the
+certificate. The extensions will be returned as binary data DER
+encoded, in the provided buffer.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-by-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identified in null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the extensions, this specifies which to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-by-oid.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 code is returned. If the certificate does not
+contain the specified extension
+GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-signature-algorithm"></a><h3>gnutls_x509_crq_get_signature_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_signature_algorithm
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>This function will return a value of the <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a>
+enumeration that is the signature algorithm that has been used to
+sign this certificate request.</p>
+<p>Since 3.6.0 this function never returns a negative error code.
+Error cases and unknown/unsupported signature algorithms are
+mapped to <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-signature-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <span class="type">gnutls_x509_cr_t</span> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-signature-algorithm.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> value</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-by-oid2"></a><h3>gnutls_x509_crq_get_extension_by_oid2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_extension_by_oid2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</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> *output</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the extension specified by the OID in
+the certificate. The extensions will be returned as binary data
+DER encoded, in the provided buffer.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-by-oid2.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the extensions, this
+specifies which to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>will hold the allocated extension data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-by-oid2.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 code in case of an error. If the certificate does not
+contain the specified extension
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</p>
+</div>
+<p class="since">Since: 3.3.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-info"></a><h3>gnutls_x509_crt_get_extension_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_extension_info (<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><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the requested extension OID in the
+certificate, and the critical flag for it. The extension OID will
+be stored as a string in the provided buffer. Use
+<code class="function">gnutls_x509_crt_get_extension()</code> to extract the data.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+<em class="parameter"><code>oid_size</code></em>
+ is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned. The <em class="parameter"><code>oid</code></em>
+ returned will be null terminated, although
+<em class="parameter"><code>oid_size</code></em>
+ will not account for the trailing null (the latter is not
+true for GnuTLS prior to 3.6.0).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the maximum size of <em class="parameter"><code>oid</code></em>
+, on return
+holds actual size of <em class="parameter"><code>oid</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>output variable with critical flag, may be NULL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-info.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 code is returned. If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-data"></a><h3>gnutls_x509_crt_get_extension_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_extension_data (<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><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>This function will return the requested extension data in the
+certificate. The extension data will be stored in the
+provided buffer.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()"><code class="function">gnutls_x509_crt_get_extension_info()</code></a> to extract the OID and
+critical flag. Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid" title="gnutls_x509_crt_get_extension_by_oid ()"><code class="function">gnutls_x509_crt_get_extension_by_oid()</code></a> instead,
+if you want to get data indexed by the extension OID rather than
+sequence.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-data.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the data (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_data</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>data</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-data.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 code is returned. If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-data2"></a><h3>gnutls_x509_crt_get_extension_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_extension_data2 (<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><span class="type">unsigned </span> indx</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>);</pre>
+<p>This function will return the requested by the index extension data in the
+certificate. The extension data will be allocated using
+<code class="function">gnutls_malloc()</code>.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()"><code class="function">gnutls_x509_crt_get_extension_info()</code></a> to extract the OID.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-data2.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to read. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>will contain the extension DER-encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-data2.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 code is returned. If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-extension-by-oid"></a><h3>gnutls_x509_crt_set_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_extension_by_oid (<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> *oid</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> sizeof_buf</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>This function will set an the extension, by the specified OID, in
+the certificate. The extension data should be binary data DER
+encoded.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-extension-by-oid.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>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a DER encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_buf</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>should be non-zero if the extension is to be marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-extension-by-oid.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-x509-crt-set-dn"></a><h3>gnutls_x509_crt_set_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_dn (<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> *dn</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err</code></em>);</pre>
+<p>This function will set the DN on the provided certificate.
+The input string should be plain ASCII or UTF-8 encoded. On
+DN parsing error <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR"><code class="literal">GNUTLS_E_PARSING_ERROR</code></a> is returned.</p>
+<p>Note that DNs are not expected to hold DNS information, and thus
+no automatic IDNA conversions are attempted when using this function.
+If that is required (e.g., store a domain in CN), process the corresponding
+input with <a class="link" href="gnutls-gnutls.html#gnutls-idna-map" title="gnutls_idna_map ()"><code class="function">gnutls_idna_map()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>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>dn</p></td>
+<td class="parameter_description"><p>a comma separated DN string (RFC4514)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err</p></td>
+<td class="parameter_description"><p>indicates the error position (if any)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-dn-by-oid"></a><h3>gnutls_x509_crt_set_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_dn_by_oid (<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> *oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);</pre>
+<p>This function will set the part of the name of the Certificate
+subject, specified by the given OID. The input string should be
+ASCII or UTF-8 encoded.</p>
+<p>Some helper macros with popular OIDs can be found in gnutls/x509.h
+With this function you can only set the known OIDs. You can test
+for known OIDs using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>. For OIDs that are
+not known (by gnutls) you should properly DER encode your data,
+and call this function with <em class="parameter"><code>raw_flag</code></em>
+ set.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-dn-by-oid.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>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>must be 0, or 1 if the data are DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>a pointer to the name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_name</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>name</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-dn-by-oid.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-x509-crt-set-issuer-dn-by-oid"></a><h3>gnutls_x509_crt_set_issuer_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_issuer_dn_by_oid (<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> *oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);</pre>
+<p>This function will set the part of the name of the Certificate
+issuer, specified by the given OID. The input string should be
+ASCII or UTF-8 encoded.</p>
+<p>Some helper macros with popular OIDs can be found in gnutls/x509.h
+With this function you can only set the known OIDs. You can test
+for known OIDs using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>. For OIDs that are
+not known (by gnutls) you should properly DER encode your data,
+and call this function with <em class="parameter"><code>raw_flag</code></em>
+ set.</p>
+<p>Normally you do not need to call this function, since the signing
+operation will copy the signer's name as the issuer of the
+certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-dn-by-oid.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>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>must be 0, or 1 if the data are DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>a pointer to the name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_name</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>name</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-dn-by-oid.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-x509-crt-set-issuer-dn"></a><h3>gnutls_x509_crt_set_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_issuer_dn (<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> *dn</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err</code></em>);</pre>
+<p>This function will set the DN on the provided certificate.
+The input string should be plain ASCII or UTF-8 encoded. On
+DN parsing error <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR"><code class="literal">GNUTLS_E_PARSING_ERROR</code></a> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-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>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>dn</p></td>
+<td class="parameter_description"><p>a comma separated DN string (RFC4514)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err</p></td>
+<td class="parameter_description"><p>indicates the error position (if any)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-version"></a><h3>gnutls_x509_crt_set_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_version (<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>unsigned <span class="type">int</span> version</code></em>);</pre>
+<p>This function will set the version of the certificate. This must
+be one for X.509 version 1, and so on. Plain certificates without
+extensions must have version set to one.</p>
+<p>To create well-formed certificates, you must specify version 3 if
+you use any certificate extensions. Extensions are created by
+functions such as <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()"><code class="function">gnutls_x509_crt_set_subject_alt_name()</code></a>
+or <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key-usage" title="gnutls_x509_crt_set_key_usage ()"><code class="function">gnutls_x509_crt_set_key_usage()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-version.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>version</p></td>
+<td class="parameter_description"><p>holds the version number. For X.509v1 certificates must be 1.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-version.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-x509-crt-set-key"></a><h3>gnutls_x509_crt_set_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_key (<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-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> key</code></em>);</pre>
+<p>This function will set the public parameters from the given
+private key to the certificate.</p>
+<p>To export the public key (i.e., the SubjectPublicKeyInfo part), check
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()"><code class="function">gnutls_pubkey_import_x509()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>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>key</p></td>
+<td class="parameter_description"><p>holds a private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-ca-status"></a><h3>gnutls_x509_crt_set_ca_status ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_ca_status (<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>unsigned <span class="type">int</span> ca</code></em>);</pre>
+<p>This function will set the basicConstraints certificate extension.
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-basic-constraints" title="gnutls_x509_crt_set_basic_constraints ()"><code class="function">gnutls_x509_crt_set_basic_constraints()</code></a> if you want to control
+the pathLenConstraint field too.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-ca-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>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>ca</p></td>
+<td class="parameter_description"><p>true(1) or false(0). Depending on the Certificate authority status.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-ca-status.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-x509-crt-set-basic-constraints"></a><h3>gnutls_x509_crt_set_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_basic_constraints (<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>unsigned <span class="type">int</span> ca</code></em>,
+ <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>);</pre>
+<p>This function will set the basicConstraints certificate extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-basic-constraints.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>ca</p></td>
+<td class="parameter_description"><p>true(1) or false(0). Depending on the Certificate authority status.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pathLenConstraint</p></td>
+<td class="parameter_description"><p>non-negative error codes indicate maximum length of path,
+and negative error codes indicate that the pathLenConstraints field should
+not be present.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-basic-constraints.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-x509-crt-set-subject-unique-id"></a><h3>gnutls_x509_crt_set_subject_unique_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_subject_unique_id (<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>const <span class="type">void</span> *id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>This function will set the X.509 certificate's subject unique ID field.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-unique-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>cert</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>id</p></td>
+<td class="parameter_description"><p>The unique ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id_size</p></td>
+<td class="parameter_description"><p>Holds the size of the unique ID.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-unique-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.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-issuer-unique-id"></a><h3>gnutls_x509_crt_set_issuer_unique_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_issuer_unique_id (<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>const <span class="type">void</span> *id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>This function will set the X.509 certificate's issuer unique ID field.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-unique-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>cert</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>id</p></td>
+<td class="parameter_description"><p>The unique ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id_size</p></td>
+<td class="parameter_description"><p>Holds the size of the unique ID.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-unique-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.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-subject-alternative-name"></a><h3>gnutls_x509_crt_set_subject_alternative_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_subject_alternative_name
+ (<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-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *data_string</code></em>);</pre>
+<p>This function will set the subject alternative name certificate
+extension. This function assumes that data can be expressed as a null
+terminated string.</p>
+<p>The name of the function is unfortunate since it is inconsistent with
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name" title="gnutls_x509_crt_get_subject_alt_name ()"><code class="function">gnutls_x509_crt_get_subject_alt_name()</code></a>.</p>
+<p>See <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()"><code class="function">gnutls_x509_crt_set_subject_alt_name()</code></a> for more information.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-alternative-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>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>type</p></td>
+<td class="parameter_description"><p>is one of the gnutls_x509_subject_alt_name_t enumerations</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_string</p></td>
+<td class="parameter_description"><p>The data to be set, a (0) terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-alternative-name.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-x509-crt-set-subject-alt-name"></a><h3>gnutls_x509_crt_set_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_subject_alt_name (<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-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the subject alternative name certificate
+extension. It can set the following types: <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a> as a text string,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a> as a text string, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"><code class="literal">GNUTLS_SAN_URI</code></a> as a text string,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"><code class="literal">GNUTLS_SAN_IPADDRESS</code></a> as a binary IP address (4 or 16 bytes),
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a> as a UTF8 string (since 3.5.0).</p>
+<p>Since version 3.5.7 the <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>, and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a> are converted to ACE format when necessary.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-alt-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>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>type</p></td>
+<td class="parameter_description"><p>is one of the gnutls_x509_subject_alt_name_t enumerations</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 be 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 to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>GNUTLS_FSAN_SET to clear previous data or GNUTLS_FSAN_APPEND to append. </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-alt-name.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-subject-alt-othername"></a><h3>gnutls_x509_crt_set_subject_alt_othername ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_subject_alt_othername
+ (<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> *oid</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set an "othername" to the subject alternative name certificate
+extension.</p>
+<p>The values set are set as binary values and are expected to have the proper DER encoding.
+For convenience the flags <a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-OCTET-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_OCTET_STRING"><code class="literal">GNUTLS_FSAN_ENCODE_OCTET_STRING</code></a> and <a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-UTF8-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_UTF8_STRING"><code class="literal">GNUTLS_FSAN_ENCODE_UTF8_STRING</code></a>
+can be used to encode the provided data.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-alt-othername.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>oid</p></td>
+<td class="parameter_description"><p>The other name OID</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 be 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 to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>GNUTLS_FSAN_SET to clear previous data or GNUTLS_FSAN_APPEND to append. </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-subject-alt-othername.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.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-issuer-alt-name"></a><h3>gnutls_x509_crt_set_issuer_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_issuer_alt_name (<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-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> type</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the issuer alternative name certificate
+extension. It can set the same types as <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" title="gnutls_x509_crt_set_subject_alt_name ()"><code class="function">gnutls_x509_crt_set_subject_alt_name()</code></a>.</p>
+<p>Since version 3.5.7 the <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>, and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a> are converted to ACE format when necessary.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-alt-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>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>type</p></td>
+<td class="parameter_description"><p>is one of the gnutls_x509_subject_alt_name_t enumerations</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 be 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 to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>GNUTLS_FSAN_SET to clear previous data or GNUTLS_FSAN_APPEND to append. </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-alt-name.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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-issuer-alt-othername"></a><h3>gnutls_x509_crt_set_issuer_alt_othername ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_issuer_alt_othername
+ (<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> *oid</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set an "othername" to the issuer alternative name certificate
+extension.</p>
+<p>The values set are set as binary values and are expected to have the proper DER encoding.
+For convenience the flags <a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-OCTET-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_OCTET_STRING"><code class="literal">GNUTLS_FSAN_ENCODE_OCTET_STRING</code></a> and <a class="link" href="gnutls-x509.html#GNUTLS-FSAN-ENCODE-UTF8-STRING:CAPS" title="GNUTLS_FSAN_ENCODE_UTF8_STRING"><code class="literal">GNUTLS_FSAN_ENCODE_UTF8_STRING</code></a>
+can be used to encode the provided data.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-alt-othername.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>oid</p></td>
+<td class="parameter_description"><p>The other name OID</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 be 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 to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>GNUTLS_FSAN_SET to clear previous data or GNUTLS_FSAN_APPEND to append. </p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-issuer-alt-othername.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.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-sign"></a><h3>gnutls_x509_crt_sign ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_sign (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> crt</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>,
+ <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> issuer_key</code></em>);</pre>
+<p>This function is the same a <a class="link" href="gnutls-x509.html#gnutls-x509-crt-sign2" title="gnutls_x509_crt_sign2 ()"><code class="function">gnutls_x509_crt_sign2()</code></a> with no flags,
+and an appropriate hash algorithm. The hash algorithm used may
+vary between versions of GnuTLS, and it is tied to the security
+level of the issuer's public key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-sign.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>issuer</p></td>
+<td class="parameter_description"><p>is the certificate of the certificate issuer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer_key</p></td>
+<td class="parameter_description"><p>holds the issuer's private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-sign.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-x509-crt-sign2"></a><h3>gnutls_x509_crt_sign2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_sign2 (<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-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</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> issuer_key</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will sign the certificate with the issuer's private key, and
+will copy the issuer's information into the certificate.</p>
+<p>This must be the last step in a certificate generation since all
+the previously set parameters are now signed.</p>
+<p>A known limitation of this function is, that a newly-signed certificate will not
+be fully functional (e.g., for signature verification), until it
+is exported an re-imported.</p>
+<p>After GnuTLS 3.6.1 the value of <em class="parameter"><code>dig</code></em>
+ may be <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"><code class="literal">GNUTLS_DIG_UNKNOWN</code></a>,
+and in that case, a suitable but reasonable for the key algorithm will be selected.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-sign2.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>issuer</p></td>
+<td class="parameter_description"><p>is the certificate of the certificate issuer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer_key</p></td>
+<td class="parameter_description"><p>holds the issuer's private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>The message digest to use, <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA256:CAPS"><code class="literal">GNUTLS_DIG_SHA256</code></a> is a safe choice</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-sign2.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-x509-crt-set-activation-time"></a><h3>gnutls_x509_crt_set_activation_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_activation_time (<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><span class="type">time_t</span> act_time</code></em>);</pre>
+<p>This function will set the time this certificate was or will be
+activated.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-activation-time.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>cert</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>act_time</p></td>
+<td class="parameter_description"><p>The actual time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-activation-time.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-x509-crt-set-expiration-time"></a><h3>gnutls_x509_crt_set_expiration_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_expiration_time (<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><span class="type">time_t</span> exp_time</code></em>);</pre>
+<p>This function will set the time this Certificate will expire.
+Setting an expiration time to (time_t)-1 will set
+to the no well-defined expiration date value.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-expiration-time.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>cert</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>exp_time</p></td>
+<td class="parameter_description"><p>The actual time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-expiration-time.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-x509-crt-set-serial"></a><h3>gnutls_x509_crt_set_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_serial (<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>const <span class="type">void</span> *serial</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> serial_size</code></em>);</pre>
+<p>This function will set the X.509 certificate's serial number.
+While the serial number is an integer, it is often handled
+as an opaque field by several CAs. For this reason this function
+accepts any kind of data as a serial number. To be consistent
+with the X.509/PKIX specifications the provided <em class="parameter"><code>serial</code></em>
+ should be
+a big-endian positive number (i.e. its leftmost bit should be zero).</p>
+<p>The size of the serial is restricted to 20 bytes maximum by RFC5280.
+This function allows writing more than 20 bytes but the generated
+certificates in that case may be rejected by other implementations.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-serial.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>cert</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>serial</p></td>
+<td class="parameter_description"><p>The serial number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial_size</p></td>
+<td class="parameter_description"><p>Holds the size of the serial field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-serial.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-x509-crt-set-subject-key-id"></a><h3>gnutls_x509_crt_set_subject_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_subject_key_id (<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>const <span class="type">void</span> *id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>This function will set the X.509 certificate's subject key ID
+extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>cert</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>id</p></td>
+<td class="parameter_description"><p>The key ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id_size</p></td>
+<td class="parameter_description"><p>Holds the size of the subject key ID field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-proxy-dn"></a><h3>gnutls_x509_crt_set_proxy_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_proxy_dn (<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-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> eecrt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *name</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_name</code></em>);</pre>
+<p>This function will set the subject in <em class="parameter"><code>crt</code></em>
+ to the end entity's
+<em class="parameter"><code>eecrt</code></em>
+ subject name, and add a single Common Name component <em class="parameter"><code>name</code></em>
+
+of size <em class="parameter"><code>sizeof_name</code></em>
+. This corresponds to the required proxy
+certificate naming style. Note that if <em class="parameter"><code>name</code></em>
+ is <code class="literal">NULL</code>, you MUST
+set it later by using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid" title="gnutls_x509_crt_set_dn_by_oid ()"><code class="function">gnutls_x509_crt_set_dn_by_oid()</code></a> or similar.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-proxy-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>crt</p></td>
+<td class="parameter_description"><p>a gnutls_x509_crt_t type with the new proxy cert</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>eecrt</p></td>
+<td class="parameter_description"><p>the end entity certificate that will be issuing the proxy</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>must be 0, or 1 if the CN is DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>a pointer to the CN name, may be NULL (but MUST then be added later)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_name</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>name</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-proxy-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-proxy"></a><h3>gnutls_x509_crt_set_proxy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_proxy (<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><span class="type">int</span> pathLenConstraint</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *policyLanguage</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *policy</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> sizeof_policy</code></em>);</pre>
+<p>This function will set the proxyCertInfo extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-proxy.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>pathLenConstraint</p></td>
+<td class="parameter_description"><p>non-negative error codes indicate maximum length of path,
+and negative error codes indicate that the pathLenConstraints field should
+not be present.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>policyLanguage</p></td>
+<td class="parameter_description"><p>OID describing the language of <em class="parameter"><code>policy</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>policy</p></td>
+<td class="parameter_description"><p>uint8_t byte array with policy language, can be <code class="literal">NULL</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_policy</p></td>
+<td class="parameter_description"><p>size of <em class="parameter"><code>policy</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-proxy.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-x509-crt-print"></a><h3>gnutls_x509_crt_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_print (<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-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</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 pretty print a X.509 certificate, suitable for
+display to a human.</p>
+<p>If the format is <a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL:CAPS"><code class="literal">GNUTLS_CRT_PRINT_FULL</code></a> then all fields of the
+certificate will be output, on multiple lines. The
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CRT-PRINT-ONELINE:CAPS"><code class="literal">GNUTLS_CRT_PRINT_ONELINE</code></a> format will generate one line with some
+selected fields, which is useful for logging purposes.</p>
+<p>The output <em class="parameter"><code>out</code></em>
+ 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-x509-crt-print.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>cert</p></td>
+<td class="parameter_description"><p>The data to be printed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>Indicate the format to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>Newly allocated datum with null terminated string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-print.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-x509-crl-print"></a><h3>gnutls_x509_crl_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_print (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+ <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 pretty print a X.509 certificate revocation
+list, suitable for display to a human.</p>
+<p>The output <em class="parameter"><code>out</code></em>
+ 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-x509-crl-print.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>crl</p></td>
+<td class="parameter_description"><p>The data to be printed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>Indicate the format to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>Newly allocated datum with null terminated string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-print.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-x509-crt-get-raw-issuer-dn"></a><h3>gnutls_x509_crt_get_raw_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_raw_issuer_dn (<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> *start</code></em>);</pre>
+<p>This function will return a pointer to the DER encoded DN structure
+and the length. This points to allocated data that must be free'd 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-x509-crt-get-raw-issuer-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>will hold the starting point of the DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-raw-issuer-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.or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-raw-dn"></a><h3>gnutls_x509_crt_get_raw_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_raw_dn (<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> *start</code></em>);</pre>
+<p>This function will return a pointer to the DER encoded DN structure and
+the length. This points to allocated data that must be free'd 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-x509-crt-get-raw-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>will hold the starting point of the DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-raw-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. or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-rdn-get"></a><h3>gnutls_x509_rdn_get ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_rdn_get (<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> *idn</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will return the name of the given RDN sequence. The
+name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as described in
+RFC4514.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-rdn-get2" title="gnutls_x509_rdn_get2 ()"><code class="function">gnutls_x509_rdn_get2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get.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>idn</p></td>
+<td class="parameter_description"><p>should contain a DER encoded RDN sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the peer's name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get.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, or
+<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> is returned and *<em class="parameter"><code>buf_size</code></em>
+is
+updated if the provided buffer is not long enough, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-rdn-get2"></a><h3>gnutls_x509_rdn_get2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_rdn_get2 (<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> *idn</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> *str</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will return the name of the given RDN sequence. The
+name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as described in
+RFC4514.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a> is specified, the output
+format will match the format output by previous to 3.5.6 versions of GnuTLS
+which was not not fully RFC4514-compliant.</p>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get2.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>idn</p></td>
+<td class="parameter_description"><p>should contain a DER encoded RDN sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>str</p></td>
+<td class="parameter_description"><p>a datum that will hold the name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero of <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get2.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, or
+<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> is returned and *<em class="parameter"><code>buf_size</code></em>
+is
+updated if the provided buffer is not long enough, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-rdn-get-oid"></a><h3>gnutls_x509_rdn_get_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_rdn_get_oid (<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> *idn</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will return the specified Object identifier, of the
+RDN sequence.</p>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get-oid.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>idn</p></td>
+<td class="parameter_description"><p>should contain a DER encoded RDN sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Indicates which OID to return. Use 0 for the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the peer's name OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get-oid.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, or
+<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> is returned and *<em class="parameter"><code>buf_size</code></em>
+is
+updated if the provided buffer is not long enough, otherwise a
+negative error value.</p>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-rdn-get-by-oid"></a><h3>gnutls_x509_rdn_get_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_rdn_get_by_oid (<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> *idn</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will return the name of the given Object identifier,
+of the RDN sequence. The name will be encoded using the rules
+from RFC4514.</p>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get-by-oid.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>idn</p></td>
+<td class="parameter_description"><p>should contain a DER encoded RDN sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>an Object Identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the RDN indicates which
+to send. Use 0 for the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>If non-zero then the raw DER data are returned.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the peer's name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-rdn-get-by-oid.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, or
+<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> is returned and *<em class="parameter"><code>buf_size</code></em>
+is
+updated if the provided buffer is not long enough, otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-subject"></a><h3>gnutls_x509_crt_get_subject ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_subject (<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-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);</pre>
+<p>Return the Certificate's Subject DN as a <a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><code class="literal">gnutls_x509_dn_t</code></a> data type,
+that can be decoded using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()"><code class="function">gnutls_x509_dn_get_rdn_ava()</code></a>.</p>
+<p>Note that <em class="parameter"><code>dn</code></em>
+ should be treated as constant. Because it points
+into the <em class="parameter"><code>cert</code></em>
+ object, you should not use <em class="parameter"><code>dn</code></em>
+ after <em class="parameter"><code>cert</code></em>
+ is
+deallocated.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>output variable with pointer to uint8_t DN.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-subject.returns"></a><h4>Returns</h4>
+<p> Returns 0 on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-issuer"></a><h3>gnutls_x509_crt_get_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_issuer (<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-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);</pre>
+<p>Return the Certificate's Issuer DN as a <a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><code class="literal">gnutls_x509_dn_t</code></a> data type,
+that can be decoded using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()"><code class="function">gnutls_x509_dn_get_rdn_ava()</code></a>.</p>
+<p>Note that <em class="parameter"><code>dn</code></em>
+ should be treated as constant. Because it points
+into the <em class="parameter"><code>cert</code></em>
+ object, you should not use <em class="parameter"><code>dn</code></em>
+ after <em class="parameter"><code>cert</code></em>
+ is
+deallocated.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>output variable with pointer to uint8_t DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-issuer.returns"></a><h4>Returns</h4>
+<p> Returns 0 on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-get-rdn-ava"></a><h3>gnutls_x509_dn_get_rdn_ava ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_get_rdn_ava (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+ <em class="parameter"><code><span class="type">int</span> irdn</code></em>,
+ <em class="parameter"><code><span class="type">int</span> iava</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-ava-st" title="gnutls_x509_ava_st"><span class="type">gnutls_x509_ava_st</span></a> *ava</code></em>);</pre>
+<p>Get pointers to data within the DN. The format of the <em class="parameter"><code>ava</code></em>
+ structure
+is shown below.</p>
+<p> struct gnutls_x509_ava_st {
+ gnutls_datum_t oid;
+ gnutls_datum_t value;
+ unsigned long value_tag;
+ };</p>
+<p>The X.509 distinguished name is a sequence of sequences of strings
+and this is what the <em class="parameter"><code>irdn</code></em>
+ and <em class="parameter"><code>iava</code></em>
+ indexes model.</p>
+<p>Note that <em class="parameter"><code>ava</code></em>
+ will contain pointers into the <em class="parameter"><code>dn</code></em>
+ structure which
+in turns points to the original certificate. Thus you should not
+modify any data or deallocate any of those.</p>
+<p>This is a low-level function that requires the caller to do the
+value conversions when necessary (e.g. from UCS-2).</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-get-rdn-ava.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>dn</p></td>
+<td class="parameter_description"><p>a pointer to DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>irdn</p></td>
+<td class="parameter_description"><p>index of RDN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iava</p></td>
+<td class="parameter_description"><p>index of AVA.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ava</p></td>
+<td class="parameter_description"><p>Pointer to structure which will hold output information.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-get-rdn-ava.returns"></a><h4>Returns</h4>
+<p> Returns 0 on success, or an error code.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-get-str"></a><h3>gnutls_x509_dn_get_str ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_get_str (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_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> *str</code></em>);</pre>
+<p>This function will allocate buffer and copy the name in the provided DN.
+The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a> is specified, the output
+format will match the format output by previous to 3.5.6 versions of GnuTLS
+which was not not fully RFC4514-compliant.</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-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>dn</p></td>
+<td class="parameter_description"><p>a pointer to DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>str</p></td>
+<td class="parameter_description"><p>a datum that will hold the name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-get-str.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.5.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-get-str2"></a><h3>gnutls_x509_dn_get_str2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_get_str2 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_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> *str</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-set-str"></a><h3>gnutls_x509_dn_set_str ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_set_str (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *str</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err</code></em>);</pre>
+<p>This function will set the DN on the provided DN structure.
+The input string should be plain ASCII or UTF-8 encoded. On
+DN parsing error <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR"><code class="literal">GNUTLS_E_PARSING_ERROR</code></a> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-set-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>dn</p></td>
+<td class="parameter_description"><p>a pointer to DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>str</p></td>
+<td class="parameter_description"><p>a comma separated DN string (RFC4514)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err</p></td>
+<td class="parameter_description"><p>indicates the error position (if any)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-set-str.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.5.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-init"></a><h3>gnutls_x509_dn_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_init (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> *dn</code></em>);</pre>
+<p>This function initializes a <a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> type.</p>
+<p>The object returned must be deallocated using
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-deinit" title="gnutls_x509_dn_deinit ()"><code class="function">gnutls_x509_dn_deinit()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-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>dn</p></td>
+<td class="parameter_description"><p>the object to be initialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-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.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-import"></a><h3>gnutls_x509_dn_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_import (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_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> *data</code></em>);</pre>
+<p>This function parses an RDN sequence and stores the result to a
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> type. The data must have been initialized
+with <a class="link" href="gnutls-x509.html#gnutls-x509-dn-init" title="gnutls_x509_dn_init ()"><code class="function">gnutls_x509_dn_init()</code></a>. You may use <a class="link" href="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava" title="gnutls_x509_dn_get_rdn_ava ()"><code class="function">gnutls_x509_dn_get_rdn_ava()</code></a> to
+decode the DN.</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-import.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>dn</p></td>
+<td class="parameter_description"><p>the structure that will hold the imported DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>should contain a DER encoded RDN sequence</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-import.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.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-export"></a><h3>gnutls_x509_dn_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_export (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</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> format</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 DN to DER or PEM format.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em>
+ is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a>
+will be returned.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN NAME".</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-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>dn</p></td>
+<td class="parameter_description"><p>Holds the uint8_t DN object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</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 a DN PEM or DER encoded</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-x509-dn-export.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-x509-dn-export2"></a><h3>gnutls_x509_dn_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_dn_export2 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</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> format</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 DN to DER or PEM format.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN NAME".</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-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>dn</p></td>
+<td class="parameter_description"><p>Holds the uint8_t DN object</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a DN PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-dn-export2.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.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-deinit"></a><h3>gnutls_x509_dn_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_dn_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-dn-t" title="gnutls_x509_dn_t"><span class="type">gnutls_x509_dn_t</span></a> dn</code></em>);</pre>
+<p>This function deallocates the DN object as returned by
+<a class="link" href="gnutls-x509.html#gnutls-x509-dn-import" title="gnutls_x509_dn_import ()"><code class="function">gnutls_x509_dn_import()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-dn-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>dn</p></td>
+<td class="parameter_description"><p>a DN uint8_t object pointer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 2.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-init"></a><h3>gnutls_x509_crl_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl</code></em>);</pre>
+<p>This function will initialize a CRL structure. CRL stands for
+Certificate Revocation List. A revocation list usually contains
+lists of certificate serial numbers that have been revoked by an
+Authority. The revocation lists are always signed with the
+authority's private key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-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>crl</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-x509-crl-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-x509-crl-deinit"></a><h3>gnutls_x509_crl_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_crl_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>This function will deinitialize a CRL structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-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>crl</p></td>
+<td class="parameter_description"><p>The data to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-import"></a><h3>gnutls_x509_crl_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_import (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <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> *data</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> format</code></em>);</pre>
+<p>This function will convert the given DER or PEM encoded CRL
+to the native <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> format. The output will be stored in 'crl'.</p>
+<p>If the CRL is PEM encoded it should have a header of "X509 CRL".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-import.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>crl</p></td>
+<td class="parameter_description"><p>The data to store the parsed CRL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded CRL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-import.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-x509-crl-export"></a><h3>gnutls_x509_crl_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_export (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <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 revocation list to DER or PEM format.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be returned.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN X509 CRL".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-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>crl</p></td>
+<td class="parameter_description"><p>Holds the revocation list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</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 a private key PEM or DER encoded</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-x509-crl-export.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-x509-crl-export2"></a><h3>gnutls_x509_crl_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_export2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <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 revocation list to DER or PEM format.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN X509 CRL".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-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>crl</p></td>
+<td class="parameter_description"><p>Holds the revocation list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a private key PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-export2.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>
+<p>Since 3.1.3</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-raw-issuer-dn"></a><h3>gnutls_x509_crl_get_raw_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_raw_issuer_dn (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <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> *dn</code></em>);</pre>
+<p>This function will return a pointer to the DER encoded DN structure
+and the length.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-raw-issuer-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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>will hold the starting point of the DN</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-raw-issuer-dn.returns"></a><h4>Returns</h4>
+<p> a negative error code on error, and (0) on success.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-issuer-dn"></a><h3>gnutls_x509_crl_get_issuer_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_issuer_dn (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will copy the name of the CRL issuer in the provided
+buffer. The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>If buf is <code class="literal">NULL</code> then only the size will be filled.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn3" title="gnutls_x509_crl_get_issuer_dn3 ()"><code class="function">gnutls_x509_crl_get_issuer_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the peer's name (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_buf</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-dn.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the sizeof_buf will be updated
+with the required size, and 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-issuer-dn2"></a><h3>gnutls_x509_crl_get_issuer_dn2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_issuer_dn2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <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> *dn</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of the CRL issuer.
+The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn3" title="gnutls_x509_crl_get_issuer_dn3 ()"><code class="function">gnutls_x509_crl_get_issuer_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-dn2.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-dn2.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.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-issuer-dn3"></a><h3>gnutls_x509_crl_get_issuer_dn3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_issuer_dn3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <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> *dn</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of the CRL issuer.
+The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a> is specified, the output
+format will match the format output by previous to 3.5.6 versions of GnuTLS
+which was not not fully RFC4514-compliant.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-dn3.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-dn3.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.5.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-issuer-dn-by-oid"></a><h3>gnutls_x509_crl_get_issuer_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_issuer_dn_by_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will extract the part of the name of the CRL issuer
+specified by the given OID. The output will be encoded as described
+in RFC4514. The output string will be ASCII or UTF-8 encoded,
+depending on the certificate data.</p>
+<p>Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC4514 -- in
+hex format with a '#' prefix. You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.</p>
+<p>If buf is null then only the size will be filled.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-dn-by-oid.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identified in null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the RDN, this specifies which to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>If non-zero returns the raw DER data of the DN part.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the peer's name (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_buf</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-issuer-dn-by-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the sizeof_buf will be updated
+with the required size, and 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-dn-oid"></a><h3>gnutls_x509_crl_get_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_dn_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>This function will extract the requested OID of the name of the CRL
+issuer, specified by the given index.</p>
+<p>If oid is null then only the size will be filled.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-dn-oid.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which DN OID to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to store the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_oid</p></td>
+<td class="parameter_description"><p>initially holds the size of 'oid'</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-dn-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the sizeof_oid will be updated
+with the required size. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-signature-algorithm"></a><h3>gnutls_x509_crl_get_signature_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_signature_algorithm
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>This function will return a value of the <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a>
+enumeration that is the signature algorithm.</p>
+<p>Since 3.6.0 this function never returns a negative error code.
+Error cases and unknown/unsupported signature algorithms are
+mapped to <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-signature-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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-signature-algorithm.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gnutls-gnutls.html#gnutls-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> value</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-signature"></a><h3>gnutls_x509_crl_get_signature ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_signature (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *sig</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_sig</code></em>);</pre>
+<p>This function will extract the signature field of a CRL.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-signature.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sig</p></td>
+<td class="parameter_description"><p>a pointer where the signature part will be copied (may be null).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_sig</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>sig</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-signature.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-x509-crl-get-version"></a><h3>gnutls_x509_crl_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_version (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>This function will return the version of the specified CRL.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-version.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-version.returns"></a><h4>Returns</h4>
+<p> The version number, or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-signature-oid"></a><h3>gnutls_x509_crl_get_signature_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_signature_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will return the OID of the signature algorithm
+that has been used to sign this CRL. This is function
+is useful in the case <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-signature-algorithm" title="gnutls_x509_crl_get_signature_algorithm ()"><code class="function">gnutls_x509_crl_get_signature_algorithm()</code></a>
+returned <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-signature-oid.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-signature-oid.returns"></a><h4>Returns</h4>
+<p> zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-this-update"></a><h3>gnutls_x509_crl_get_this_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_x509_crl_get_this_update (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>This function will return the time this CRL was issued.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-this-update.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-this-update.returns"></a><h4>Returns</h4>
+<p> when the CRL was issued, or (time_t)-1 on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-next-update"></a><h3>gnutls_x509_crl_get_next_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">time_t</span>
+gnutls_x509_crl_get_next_update (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>This function will return the time the next CRL will be issued.
+This field is optional in a CRL so it might be normal to get an
+error instead.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-next-update.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-next-update.returns"></a><h4>Returns</h4>
+<p> when the next CRL will be issued, or (time_t)-1 on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-crt-count"></a><h3>gnutls_x509_crl_get_crt_count ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_crt_count (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>);</pre>
+<p>This function will return the number of revoked certificates in the
+given CRL.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-crt-count.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-crt-count.returns"></a><h4>Returns</h4>
+<p> number of certificates, a negative error code on failure.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-crt-serial"></a><h3>gnutls_x509_crl_get_crt_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_crt_serial (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *serial</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *serial_size</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> *t</code></em>);</pre>
+<p>This function will retrieve the serial number of the specified, by
+the index, revoked certificate.</p>
+<p>Note that this function will have performance issues in large sequences
+of revoked certificates. In that case use <a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-crt-serial" title="gnutls_x509_crl_iter_crt_serial ()"><code class="function">gnutls_x509_crl_iter_crt_serial()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-crt-serial.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>the index of the certificate to extract (starting from 0)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial</p></td>
+<td class="parameter_description"><p>where the serial number will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial_size</p></td>
+<td class="parameter_description"><p>initially holds the size of serial</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>t</p></td>
+<td class="parameter_description"><p>if non null, will hold the time this certificate was revoked</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-crt-serial.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-x509-crl-iter-crt-serial"></a><h3>gnutls_x509_crl_iter_crt_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_iter_crt_serial (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-t" title="gnutls_x509_crl_iter_t"><span class="type">gnutls_x509_crl_iter_t</span></a> *Param2</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</span> *serial</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *serial_size</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> *t</code></em>);</pre>
+<p>This function performs the same as <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-crt-serial" title="gnutls_x509_crl_get_crt_serial ()"><code class="function">gnutls_x509_crl_get_crt_serial()</code></a>,
+but reads sequentially and keeps state in the iterator
+between calls. That allows it to provide better performance in sequences
+with many elements (50000+).</p>
+<p>When past the last element is accessed <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>
+is returned and the iterator is reset.</p>
+<p>After use, the iterator must be deinitialized using <a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-deinit" title="gnutls_x509_crl_iter_deinit ()"><code class="function">gnutls_x509_crl_iter_deinit()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-iter-crt-serial.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iter</p></td>
+<td class="parameter_description"><p>A pointer to an iterator (initially the iterator should be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial</p></td>
+<td class="parameter_description"><p>where the serial number will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial_size</p></td>
+<td class="parameter_description"><p>initially holds the size of serial</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>t</p></td>
+<td class="parameter_description"><p>if non null, will hold the time this certificate was revoked</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-iter-crt-serial.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-x509-crl-iter-deinit"></a><h3>gnutls_x509_crl_iter_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_crl_iter_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-crl-iter-t" title="gnutls_x509_crl_iter_t"><span class="type">gnutls_x509_crl_iter_t</span></a> Param1</code></em>);</pre>
+<p>This function will deinitialize an iterator type.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-iter-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>iter</p></td>
+<td class="parameter_description"><p>The iterator to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-check-issuer"></a><h3>gnutls_x509_crl_check_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crl_check_issuer (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> issuer</code></em>);</pre>
+<p>This function will check if the given CRL was issued by the given
+issuer certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-check-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>crl</p></td>
+<td class="parameter_description"><p>is the CRL to be checked</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>issuer</p></td>
+<td class="parameter_description"><p>is the certificate of a possible issuer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-check-issuer.returns"></a><h4>Returns</h4>
+<p> true (1) if the given CRL was issued by the given issuer,
+and false (0) if not.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-list-import2"></a><h3>gnutls_x509_crl_list_import2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_list_import2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> **crls</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *size</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> *data</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will convert the given PEM encoded CRL list
+to the native gnutls_x509_crl_t format. The output will be stored
+in <em class="parameter"><code>crls</code></em>
+. They will be automatically initialized.</p>
+<p>If the Certificate is PEM encoded it should have a header of "X509
+CRL".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-list-import2.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>crls</p></td>
+<td class="parameter_description"><p>Will contain the parsed crl list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</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>data</p></td>
+<td class="parameter_description"><p>The PEM encoded CRL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be (0) or an OR'd sequence of gnutls_certificate_import_flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-list-import2.returns"></a><h4>Returns</h4>
+<p> the number of certificates read or a negative error value.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-list-import"></a><h3>gnutls_x509_crl_list_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_list_import (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crls</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *crl_max</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> *data</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will convert the given PEM encoded CRL list
+to the native gnutls_x509_crl_t format. The output will be stored
+in <em class="parameter"><code>crls</code></em>
+. They will be automatically initialized.</p>
+<p>If the Certificate is PEM encoded it should have a header of "X509 CRL".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-list-import.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>crls</p></td>
+<td class="parameter_description"><p>Indicates where the parsed CRLs will be copied to. Must not be initialized.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_max</p></td>
+<td class="parameter_description"><p>Initially must hold the maximum number of crls. It will be updated with the number of crls available.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The PEM encoded CRLs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be (0) or an OR'd sequence of gnutls_certificate_import_flags.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-list-import.returns"></a><h4>Returns</h4>
+<p> the number of certificates read or a negative error value.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-version"></a><h3>gnutls_x509_crl_set_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_set_version (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);</pre>
+<p>This function will set the version of the CRL. This
+must be one for CRL version 1, and so on. The CRLs generated
+by gnutls should have a version number of 2.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-version.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>version</p></td>
+<td class="parameter_description"><p>holds the version number. For CRLv1 crls must be 1.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-version.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-x509-crl-set-this-update"></a><h3>gnutls_x509_crl_set_this_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_set_this_update (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> act_time</code></em>);</pre>
+<p>This function will set the time this CRL was issued.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-this-update.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>act_time</p></td>
+<td class="parameter_description"><p>The actual time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-this-update.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-x509-crl-set-next-update"></a><h3>gnutls_x509_crl_set_next_update ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_set_next_update (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> exp_time</code></em>);</pre>
+<p>This function will set the time this CRL will be updated.
+This is an optional value to be set on a CRL and this call
+can be omitted when generating a CRL.</p>
+<p>Prior to GnuTLS 3.5.7, setting a nextUpdate field was required
+in order to generate a CRL.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-next-update.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>exp_time</p></td>
+<td class="parameter_description"><p>The actual time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-next-update.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-x509-crl-set-crt-serial"></a><h3>gnutls_x509_crl_set_crt_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_set_crt_serial (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *serial</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> serial_size</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> revocation_time</code></em>);</pre>
+<p>This function will set a revoked certificate's serial number to the CRL.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-crt-serial.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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial</p></td>
+<td class="parameter_description"><p>The revoked certificate's serial number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial_size</p></td>
+<td class="parameter_description"><p>Holds the size of the serial field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>revocation_time</p></td>
+<td class="parameter_description"><p>The time this certificate was revoked</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-crt-serial.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-x509-crl-set-crt"></a><h3>gnutls_x509_crl_set_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_set_crt (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <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><span class="type">time_t</span> revocation_time</code></em>);</pre>
+<p>This function will set a revoked certificate's serial number to the CRL.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-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>crl</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crl_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<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> with the revoked certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>revocation_time</p></td>
+<td class="parameter_description"><p>The time this certificate was revoked</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-authority-key-id"></a><h3>gnutls_x509_crl_get_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_authority_key_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *id_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the CRL authority's key identifier. This
+is obtained by the X.509 Authority Key identifier extension field
+(2.5.29.35). Note that this function
+only returns the keyIdentifier field of the extension and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-EXTENSION:CAPS" title="GNUTLS_E_X509_UNSUPPORTED_EXTENSION"><code class="literal">GNUTLS_E_X509_UNSUPPORTED_EXTENSION</code></a>, if the extension contains
+the name and serial number of the certificate. In that case
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-authority-key-gn-serial" title="gnutls_x509_crl_get_authority_key_gn_serial ()"><code class="function">gnutls_x509_crl_get_authority_key_gn_serial()</code></a> may be used.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-authority-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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>The place where the identifier will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id_size</p></td>
+<td class="parameter_description"><p>Holds the size of the result field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical
+(may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-authority-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 code in case of an error.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-authority-key-gn-serial"></a><h3>gnutls_x509_crl_get_authority_key_gn_serial ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_authority_key_gn_serial
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *alt</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *alt_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *alt_type</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *serial</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *serial_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the X.509 authority key
+identifier when stored as a general name (authorityCertIssuer)
+and serial number.</p>
+<p>Because more than one general names might be stored
+<em class="parameter"><code>seq</code></em>
+ can be used as a counter to request them all until
+<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> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-authority-key-gn-serial.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alt</p></td>
+<td class="parameter_description"><p>is the place where the alternative name will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alt_size</p></td>
+<td class="parameter_description"><p>holds the size of alt.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>alt_type</p></td>
+<td class="parameter_description"><p>holds the type of the alternative name (one of gnutls_x509_subject_alt_name_t).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial</p></td>
+<td class="parameter_description"><p>buffer to store the serial number (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>serial_size</p></td>
+<td class="parameter_description"><p>Holds the size of the serial field (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-authority-key-gn-serial.returns"></a><h4>Returns</h4>
+<p> Returns 0 on success, or an error code.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-number"></a><h3>gnutls_x509_crl_get_number ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_number (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the CRL number extension. This is
+obtained by the CRL Number extension field (2.5.29.20).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-number.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret</p></td>
+<td class="parameter_description"><p>The place where the number will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret_size</p></td>
+<td class="parameter_description"><p>Holds the size of the result field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical
+(may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-number.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 code in case of an error.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-extension-oid"></a><h3>gnutls_x509_crl_get_extension_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_extension_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>This function will return the requested extension OID in the CRL.
+The extension OID will be stored as a string in the provided
+buffer.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-oid.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to send, use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to store the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_oid</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-oid.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 code in case of an error. If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-extension-info"></a><h3>gnutls_x509_crl_get_extension_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_extension_info (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the requested extension OID in the CRL,
+and the critical flag for it. The extension OID will be stored as
+a string in the provided buffer. Use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-data" title="gnutls_x509_crl_get_extension_data ()"><code class="function">gnutls_x509_crl_get_extension_data()</code></a> to extract the data.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>sizeof_oid</code></em>
+ is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to send, use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to store the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_oid</p></td>
+<td class="parameter_description"><p>initially holds the maximum size of <em class="parameter"><code>oid</code></em>
+, on return
+holds actual size of <em class="parameter"><code>oid</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>output variable with critical flag, may be NULL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-info.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 code in case of an error. If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-extension-data"></a><h3>gnutls_x509_crl_get_extension_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_extension_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>This function will return the requested extension data in the CRL.
+The extension data will be stored as a string in the provided
+buffer.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()"><code class="function">gnutls_x509_crl_get_extension_info()</code></a> to extract the OID and
+critical flag. Use <a class="link" href="gnutls-x509.html#gnutls-x509-crl-get-extension-info" title="gnutls_x509_crl_get_extension_info ()"><code class="function">gnutls_x509_crl_get_extension_info()</code></a> instead,
+if you want to get data indexed by the extension OID rather than
+sequence.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-data.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the data (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_data</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-data.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 code in case of an error. If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-extension-data2"></a><h3>gnutls_x509_crl_get_extension_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_get_extension_data2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</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>);</pre>
+<p>This function will return the requested by the index extension data in the
+certificate revocation list. The extension data will be allocated using
+<code class="function">gnutls_malloc()</code>.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-extension-info" title="gnutls_x509_crt_get_extension_info ()"><code class="function">gnutls_x509_crt_get_extension_info()</code></a> to extract the OID.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-data2.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>crl</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to read. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>will contain the extension DER-encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-get-extension-data2.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 code is returned. If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-authority-key-id"></a><h3>gnutls_x509_crl_set_authority_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_set_authority_key_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *id</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> id_size</code></em>);</pre>
+<p>This function will set the CRL's authority key ID extension. Only
+the keyIdentifier field can be set with this function. This may
+be used by an authority that holds multiple private keys, to distinguish
+the used key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-authority-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>crl</p></td>
+<td class="parameter_description"><p>a CRL of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id</p></td>
+<td class="parameter_description"><p>The key ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>id_size</p></td>
+<td class="parameter_description"><p>Holds the size of the serial field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-authority-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: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-set-number"></a><h3>gnutls_x509_crl_set_number ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_set_number (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *nr</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> nr_size</code></em>);</pre>
+<p>This function will set the CRL's number extension. This
+is to be used as a unique and monotonic number assigned to
+the CRL by the authority.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-number.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>crl</p></td>
+<td class="parameter_description"><p>a CRL of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nr</p></td>
+<td class="parameter_description"><p>The CRL number</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nr_size</p></td>
+<td class="parameter_description"><p>Holds the size of the nr field.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-set-number.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PROFILE-TO-VFLAGS:CAPS"></a><h3>GNUTLS_PROFILE_TO_VFLAGS()</h3>
+<pre class="programlisting">#define GNUTLS_PROFILE_TO_VFLAGS(x)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-VFLAGS-TO-PROFILE:CAPS"></a><h3>GNUTLS_VFLAGS_TO_PROFILE()</h3>
+<pre class="programlisting">#define GNUTLS_VFLAGS_TO_PROFILE(x)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verification-profile-get-name"></a><h3>gnutls_certificate_verification_profile_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_certificate_verification_profile_get_name
+ ();</pre>
+<p>Convert a <a class="link" href="gnutls-x509.html#gnutls-certificate-verification-profiles-t" title="enum gnutls_certificate_verification_profiles_t"><span class="type">gnutls_certificate_verification_profiles_t</span></a> value to a string.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-verification-profile-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>id</p></td>
+<td class="parameter_description"><p>is a profile ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-certificate-verification-profile-get-name.returns"></a><h4>Returns</h4>
+<p> a string that contains the name of the specified profile or <code class="literal">NULL</code>.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-list-verify"></a><h3>gnutls_x509_crt_list_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_list_verify (<em class="parameter"><code>const <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_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> cert_list_length</code></em>,
+ <em class="parameter"><code>const <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> *CA_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> CA_list_length</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *CRL_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> CRL_list_length</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>This function will try to verify the given certificate list and
+return its status. The details of the verification are the same
+as in <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt2" title="gnutls_x509_trust_list_verify_crt2 ()"><code class="function">gnutls_x509_trust_list_verify_crt2()</code></a>.</p>
+<p>You must check the peer's name in order to check if the verified
+certificate belongs to the actual peer.</p>
+<p>The certificate verification output will be put in <em class="parameter"><code>verify</code></em>
+ and will
+be one or more of the gnutls_certificate_status_t enumerated
+elements bitwise or'd. For a more detailed verification status use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-verify" title="gnutls_x509_crt_verify ()"><code class="function">gnutls_x509_crt_verify()</code></a> per list element.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-verify.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>cert_list</p></td>
+<td class="parameter_description"><p>is the certificate list to be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_list_length</p></td>
+<td class="parameter_description"><p>holds the number of certificate in cert_list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>CA_list</p></td>
+<td class="parameter_description"><p>is the CA list which will be used in verification</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>CA_list_length</p></td>
+<td class="parameter_description"><p>holds the number of CA certificate in CA_list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>CRL_list</p></td>
+<td class="parameter_description"><p>holds a list of CRLs.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>CRL_list_length</p></td>
+<td class="parameter_description"><p>the length of CRL list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>verify</p></td>
+<td class="parameter_description"><p>will hold the certificate verification output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-list-verify.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-x509-crt-verify"></a><h3>gnutls_x509_crt_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_verify (<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>const <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> *CA_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> CA_list_length</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>This function will try to verify the given certificate and return
+its status. Note that a verification error does not imply a negative
+return status. In that case the <em class="parameter"><code>verify</code></em>
+ status is set.</p>
+<p>The details of the verification are the same
+as in <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt2" title="gnutls_x509_trust_list_verify_crt2 ()"><code class="function">gnutls_x509_trust_list_verify_crt2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-verify.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>cert</p></td>
+<td class="parameter_description"><p>is the certificate to be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>CA_list</p></td>
+<td class="parameter_description"><p>is one certificate that is considered to be trusted one</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>CA_list_length</p></td>
+<td class="parameter_description"><p>holds the number of CA certificate in CA_list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>verify</p></td>
+<td class="parameter_description"><p>will hold the certificate verification output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-verify.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-x509-crl-verify"></a><h3>gnutls_x509_crl_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crl_verify (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> crl</code></em>,
+ <em class="parameter"><code>const <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> *CA_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> CA_list_length</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>);</pre>
+<p>This function will try to verify the given crl and return its verification status.
+See <a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-verify" title="gnutls_x509_crt_list_verify ()"><code class="function">gnutls_x509_crt_list_verify()</code></a> for a detailed description of
+return values. Note that since GnuTLS 3.1.4 this function includes
+the time checks.</p>
+<p>Note that value in <em class="parameter"><code>verify</code></em>
+ is set only when the return value of this
+function is success (i.e, failure to trust a CRL a certificate does not imply
+a negative return value).</p>
+<p>Before GnuTLS 3.5.7 this function would return zero or a positive
+number on success.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-verify.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>crl</p></td>
+<td class="parameter_description"><p>is the crl to be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>trusted_cas</p></td>
+<td class="parameter_description"><p>is a certificate list that is considered to be trusted one</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tcas_size</p></td>
+<td class="parameter_description"><p>holds the number of CA certificates in CA_list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>verify</p></td>
+<td class="parameter_description"><p>will hold the crl verification output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crl-verify.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), otherwise a
+negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-verify-data2"></a><h3>gnutls_x509_crt_verify_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_verify_data2 (<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-sign-algorithm-t" title="enum gnutls_sign_algorithm_t"><span class="type">gnutls_sign_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *data</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> *signature</code></em>);</pre>
+<p>This function will verify the given signed data, using the
+parameters from the certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-verify-data2.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>Holds the certificate to verify with</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>The signature algorithm used</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 list of <a class="link" href="gnutls-x509.html#gnutls-certificate-verify-flags" title="enum gnutls_certificate_verify_flags"><span class="type">gnutls_certificate_verify_flags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>holds the signed data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>contains the signature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-verify-data2.returns"></a><h4>Returns</h4>
+<p> In case of a verification failure <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED"><code class="literal">GNUTLS_E_PK_SIG_VERIFY_FAILED</code></a>
+is returned, <a class="link" href="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS" title="GNUTLS_E_EXPIRED"><code class="literal">GNUTLS_E_EXPIRED</code></a> or <a class="link" href="gnutls-gnutls.html#GNUTLS-E-NOT-YET-ACTIVATED:CAPS" title="GNUTLS_E_NOT_YET_ACTIVATED"><code class="literal">GNUTLS_E_NOT_YET_ACTIVATED</code></a> on expired
+or not yet activated certificate and zero or positive code on success.</p>
+<p>Note that since GnuTLS 3.5.6 this function introduces checks in the
+end certificate (<em class="parameter"><code>crt</code></em>
+), including time checks and key usage checks.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-revocation"></a><h3>gnutls_x509_crt_check_revocation ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_check_revocation (<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>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> crl_list_length</code></em>);</pre>
+<p>This function will check if the given certificate is
+revoked. It is assumed that the CRLs have been verified before.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-revocation.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_list</p></td>
+<td class="parameter_description"><p>should contain a list of gnutls_x509_crl_t types</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_list_length</p></td>
+<td class="parameter_description"><p>the length of the crl_list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-revocation.returns"></a><h4>Returns</h4>
+<p> 0 if the certificate is NOT revoked, and 1 if it is. A
+negative error code is returned on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-fingerprint"></a><h3>gnutls_x509_crt_get_fingerprint ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_fingerprint (<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-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> algo</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *buf_size</code></em>);</pre>
+<p>This function will calculate and copy the certificate's fingerprint
+in the provided buffer. The fingerprint is a hash of the DER-encoded
+data of the certificate.</p>
+<p>If the buffer is null then only the size will be filled.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-fingerprint.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>is a digest algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the fingerprint (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-fingerprint.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the *buf_size will be updated
+with the required size. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-key-purpose-oid"></a><h3>gnutls_x509_crt_get_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_key_purpose_oid (<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><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will extract the key purpose OIDs of the Certificate
+specified by the given index. These are stored in the Extended Key
+Usage extension (2.5.29.37) See the GNUTLS_KP_* definitions for
+human readable names.</p>
+<p>If <em class="parameter"><code>oid</code></em>
+ is null then only the size will be filled. The <em class="parameter"><code>oid</code></em>
+
+returned will be null terminated, although <em class="parameter"><code>oid_size</code></em>
+ will not
+account for the trailing null.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-key-purpose-oid.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>This specifies which OID to return. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>output flag to indicate criticality of extension</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-key-purpose-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the *oid_size will be updated
+with the required size. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-key-purpose-oid"></a><h3>gnutls_x509_crt_set_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_key_purpose_oid (<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>const <span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>This function will set the key purpose OIDs of the Certificate.
+These are stored in the Extended Key Usage extension (2.5.29.37)
+See the GNUTLS_KP_* definitions for human readable names.</p>
+<p>Subsequent calls to this function will append OIDs to the OID list.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-key-purpose-oid.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>cert</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>oid</p></td>
+<td class="parameter_description"><p>a pointer to a null terminated string that holds the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>Whether this extension will be critical or not</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-key-purpose-oid.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 code is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-check-key-purpose"></a><h3>gnutls_x509_crt_check_key_purpose ()</h3>
+<pre class="programlisting"><span class="returnvalue">unsigned</span>
+gnutls_x509_crt_check_key_purpose (<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>const <span class="type">char</span> *purpose</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will check whether the given certificate matches
+the provided key purpose. If <em class="parameter"><code>flags</code></em>
+ contains <code class="literal">GNUTLS_KP_FLAG_ALLOW_ANY</code> then
+it a certificate marked for any purpose will not match.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-key-purpose.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>purpose</p></td>
+<td class="parameter_description"><p>a key purpose OID (e.g., <a class="link" href="gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS" title="GNUTLS_KP_CODE_SIGNING"><code class="literal">GNUTLS_KP_CODE_SIGNING</code></a>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-KP-FLAG-DISALLOW-ANY:CAPS" title="GNUTLS_KP_FLAG_DISALLOW_ANY"><code class="literal">GNUTLS_KP_FLAG_DISALLOW_ANY</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-check-key-purpose.returns"></a><h4>Returns</h4>
+<p> zero if the key purpose doesn't match, and non-zero otherwise.</p>
+</div>
+<p class="since">Since: 3.5.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-CIPHER-MASK:CAPS"></a><h3>GNUTLS_PKCS_CIPHER_MASK()</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_CIPHER_MASK(x) ((x)&amp;(~(GNUTLS_PKCS_NULL_PASSWORD)))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs-schema-get-name"></a><h3>gnutls_pkcs_schema_get_name ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_pkcs_schema_get_name (<em class="parameter"><code>unsigned <span class="type">int</span> schema</code></em>);</pre>
+<p>This function will return a human readable description of the
+PKCS12 or PBES2 schema.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs-schema-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>schema</p></td>
+<td class="parameter_description"><p>Holds the PKCS <span class="type">12</span> or PBES2 schema (<a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><code class="literal">gnutls_pkcs_encrypt_flags_t</code></a>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs-schema-get-name.returns"></a><h4>Returns</h4>
+<p> a constraint string or <code class="literal">NULL</code> on error.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs-schema-get-oid"></a><h3>gnutls_pkcs_schema_get_oid ()</h3>
+<pre class="programlisting">const <span class="returnvalue">char</span> *
+gnutls_pkcs_schema_get_oid (<em class="parameter"><code>unsigned <span class="type">int</span> schema</code></em>);</pre>
+<p>This function will return the object identifier of the
+PKCS12 or PBES2 schema.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs-schema-get-oid.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>schema</p></td>
+<td class="parameter_description"><p>Holds the PKCS <span class="type">12</span> or PBES2 schema (<a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><code class="literal">gnutls_pkcs_encrypt_flags_t</code></a>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs-schema-get-oid.returns"></a><h4>Returns</h4>
+<p> a constraint string or <code class="literal">NULL</code> on error.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-init"></a><h3>gnutls_x509_privkey_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_init (<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>);</pre>
+<p>This function will initialize a private key type.</p>
+<div class="refsect3">
+<a name="gnutls-x509-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-x509-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-x509-privkey-deinit"></a><h3>gnutls_x509_privkey_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_privkey_deinit (<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>);</pre>
+<p>This function will deinitialize a private key structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-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-x509-privkey-sec-param"></a><h3>gnutls_x509_privkey_sec_param ()</h3>
+<pre class="programlisting"><a class="link" href="gnutls-gnutls.html#gnutls-sec-param-t" title="enum gnutls_sec_param_t"><span class="returnvalue">gnutls_sec_param_t</span></a>
+gnutls_x509_privkey_sec_param (<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>);</pre>
+<p>This function will return the security parameter appropriate with
+this private key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-sec-param.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-sec-param.returns"></a><h4>Returns</h4>
+<p> On success, a valid security parameter is returned otherwise
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SEC-PARAM-UNKNOWN:CAPS"><code class="literal">GNUTLS_SEC_PARAM_UNKNOWN</code></a> is returned.</p>
+</div>
+<p class="since">Since: 2.12.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-set-pin-function"></a><h3>gnutls_x509_privkey_set_pin_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_privkey_set_pin_function (<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><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
+it is required to access a protected object. This function overrides
+the global 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>
+<p>Note that this callback is used when decrypting a key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-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>privkey</p></td>
+<td class="parameter_description"><p>The certificate 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.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-cpy"></a><h3>gnutls_x509_privkey_cpy ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_cpy (<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> dst</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> 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-x509-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-x509-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-import"></a><h3>gnutls_x509_privkey_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import (<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 <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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>);</pre>
+<p>This function will convert the given DER or PEM encoded key to the
+native <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> format. The output will be stored in
+<em class="parameter"><code>key</code></em>
+ .</p>
+<p>If the key is PEM encoded it should have a header that contains "PRIVATE
+KEY". Note that this function falls back to PKCS #8 decoding without
+password, if the default format fails to import.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import.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-x509-privkey-import-pkcs8"></a><h3>gnutls_x509_privkey_import_pkcs8 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import_pkcs8 (<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 <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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will convert the given DER or PEM encoded PKCS8 2.0
+encrypted key to the native gnutls_x509_privkey_t format. The
+output will be stored in <em class="parameter"><code>key</code></em>
+. Both RSA and DSA keys can be
+imported, and flags can only be used to indicate an unencrypted
+key.</p>
+<p>The <em class="parameter"><code>password</code></em>
+ can be either ASCII or UTF-8 in the default PBES2
+encryption schemas, or ASCII for the PKCS12 schemas.</p>
+<p>If the Certificate is PEM encoded it should have a header of
+"ENCRYPTED PRIVATE KEY", or "PRIVATE KEY". You only need to
+specify the flags if the key is DER encoded, since in that case
+the encryption status cannot be auto-detected.</p>
+<p>If the <a class="link" href="gnutls-x509.html#GNUTLS-PKCS-PLAIN:CAPS"><code class="literal">GNUTLS_PKCS_PLAIN</code></a> flag is specified and the supplied data
+are encrypted then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_DECRYPTION_FAILED"><code class="literal">GNUTLS_E_DECRYPTION_FAILED</code></a> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-pkcs8.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>the password to decrypt the key (if it is encrypted).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>0 if encrypted or GNUTLS_PKCS_PLAIN if not encrypted.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-pkcs8.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-x509-privkey-import-openssl"></a><h3>gnutls_x509_privkey_import_openssl ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import_openssl (<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 <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> *password</code></em>);</pre>
+<p>This function will convert the given PEM encrypted to
+the native gnutls_x509_privkey_t format. The
+output will be stored in <em class="parameter"><code>key</code></em>
+. </p>
+<p>The <em class="parameter"><code>password</code></em>
+ should be in ASCII. If the password is not provided
+or wrong then <a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_DECRYPTION_FAILED"><code class="literal">GNUTLS_E_DECRYPTION_FAILED</code></a> will be returned.</p>
+<p>If the Certificate is PEM encoded it should have a header of
+"PRIVATE KEY" and the "DEK-Info" header.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-openssl.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>the password to decrypt the key (if it is encrypted).</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-openssl.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-pkcs8-info"></a><h3>gnutls_pkcs8_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_pkcs8_info (<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> *data</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> format</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *schema</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *cipher</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *salt</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *salt_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *iter_count</code></em>,
+ <em class="parameter"><code><span class="type">char</span> **oid</code></em>);</pre>
+<p>This function will provide information on the algorithms used
+in a particular PKCS #8 structure. If the structure algorithms
+are unknown the code <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE"><code class="literal">GNUTLS_E_UNKNOWN_CIPHER_TYPE</code></a> will be returned,
+and only <em class="parameter"><code>oid</code></em>
+, will be set. That is, <em class="parameter"><code>oid</code></em>
+ will be set on encrypted PKCS #8
+structures whether supported or not. It must be deinitialized using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a>.
+The other variables are only set on supported structures.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs8-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>data</p></td>
+<td class="parameter_description"><p>Holds the PKCS #8 data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of the PKCS #8 data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>schema</p></td>
+<td class="parameter_description"><p>indicate the schema as one of <a class="link" href="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t" title="enum gnutls_pkcs_encrypt_flags_t"><code class="literal">gnutls_pkcs_encrypt_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cipher</p></td>
+<td class="parameter_description"><p>the cipher used as <a class="link" href="gnutls-gnutls.html#gnutls-cipher-algorithm-t" title="enum gnutls_cipher_algorithm_t"><code class="literal">gnutls_cipher_algorithm_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt</p></td>
+<td class="parameter_description"><p>PBKDF2 salt (if non-NULL then <em class="parameter"><code>salt_size</code></em>
+initially holds its size)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>salt_size</p></td>
+<td class="parameter_description"><p>PBKDF2 salt size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iter_count</p></td>
+<td class="parameter_description"><p>PBKDF2 iteration count</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>if non-NULL it will contain an allocated null-terminated variable with the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-pkcs8-info.returns"></a><h4>Returns</h4>
+<p> <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> if the provided structure isn't an encrypted key,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS" title="GNUTLS_E_UNKNOWN_CIPHER_TYPE"><code class="literal">GNUTLS_E_UNKNOWN_CIPHER_TYPE</code></a> if the structure's encryption isn't supported, or
+another negative error code in case of a failure. Zero on success.</p>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-import2"></a><h3>gnutls_x509_privkey_import2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import2 (<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 <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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will import the given DER or PEM encoded key, to
+the native <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> format, irrespective of the
+input format. The input format is auto-detected.</p>
+<p>The supported formats are basic unencrypted key, PKCS8, PKCS12,
+and the openssl format.</p>
+<p>If the provided key is encrypted but no password was given, then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS" title="GNUTLS_E_DECRYPTION_FAILED"><code class="literal">GNUTLS_E_DECRYPTION_FAILED</code></a> is returned. Since GnuTLS 3.4.0 this
+function will utilize the PIN callbacks if any.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import2.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>A password (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of gnutls_pkcs_encrypt_flags_t</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import2.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-x509-privkey-import-rsa-raw"></a><h3>gnutls_x509_privkey_import_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import_rsa_raw (<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 <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *m</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> *e</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> *d</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> *p</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> *q</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> *u</code></em>);</pre>
+<p>This function will convert the given RSA raw parameters to the
+native <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> format. The output will be stored in
+<em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-rsa-raw.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>holds the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>holds the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>holds the private exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>holds the first prime (p)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>holds the second prime (q)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>u</p></td>
+<td class="parameter_description"><p>holds the coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-rsa-raw.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-x509-privkey-import-rsa-raw2"></a><h3>gnutls_x509_privkey_import_rsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import_rsa_raw2 (<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 <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *m</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> *e</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> *d</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> *p</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> *q</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> *u</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> *e1</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> *e2</code></em>);</pre>
+<p>This function will convert the given RSA raw parameters to the
+native <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> format. The output will be stored in
+<em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-rsa-raw2.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>holds the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>holds the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>holds the private exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>holds the first prime (p)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>holds the second prime (q)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>u</p></td>
+<td class="parameter_description"><p>holds the coefficient (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e1</p></td>
+<td class="parameter_description"><p>holds e1 = d mod (p-1) (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e2</p></td>
+<td class="parameter_description"><p>holds e2 = d mod (q-1) (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-rsa-raw2.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-x509-privkey-import-ecc-raw"></a><h3>gnutls_x509_privkey_import_ecc_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import_ecc_raw (<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><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> curve</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> *x</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> *y</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> *k</code></em>);</pre>
+<p>This function will convert the given elliptic curve parameters to the
+native <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> format. The output will be stored
+in <em class="parameter"><code>key</code></em>
+. For EdDSA keys, the <em class="parameter"><code>x</code></em>
+ and <em class="parameter"><code>k</code></em>
+ values must be in the
+native to curve format.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-ecc-raw.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>holds the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>holds the k</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-ecc-raw.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-x509-privkey-import-gost-raw"></a><h3>gnutls_x509_privkey_import_gost_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import_gost_raw (<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><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> curve</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> digest</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t"><span class="type">gnutls_gost_paramset_t</span></a> paramset</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> *x</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> *y</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> *k</code></em>);</pre>
+<p>This function will convert the given GOST private key's parameters to the
+native <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> format. The output will be stored
+in <em class="parameter"><code>key</code></em>
+. <em class="parameter"><code>digest</code></em>
+ should be one of GNUTLS_DIG_GOSR_94,
+GNUTLS_DIG_STREEBOG_256 or GNUTLS_DIG_STREEBOG_512. If <em class="parameter"><code>paramset</code></em>
+ is set to
+GNUTLS_GOST_PARAMSET_UNKNOWN default one will be selected depending on
+<em class="parameter"><code>digest</code></em>
+.</p>
+<p>Note: parameters should be stored with least significant byte first. On
+version 3.6.3 big-endian format was used incorrectly.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-gost-raw.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>holds the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>will hold the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>paramset</p></td>
+<td class="parameter_description"><p>will hold the GOST parameter set ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>holds the k (private key)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-gost-raw.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.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-fix"></a><h3>gnutls_x509_privkey_fix ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_fix (<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>);</pre>
+<p>This function will recalculate the secondary parameters in a key.
+In RSA keys, this can be the coefficient and exponent1,2.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-fix.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-fix.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-x509-privkey-export-dsa-raw"></a><h3>gnutls_x509_privkey_export_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export_dsa_raw (<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><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *p</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> *q</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> *g</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> *y</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> *x</code></em>);</pre>
+<p>This function will export the DSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-dsa-raw.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the p</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the q</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>will hold the g</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-dsa-raw.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-x509-privkey-import-dsa-raw"></a><h3>gnutls_x509_privkey_import_dsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_import_dsa_raw (<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 <a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *p</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> *q</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> *g</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> *y</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> *x</code></em>);</pre>
+<p>This function will convert the given DSA raw parameters to the
+native <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> format. The output will be stored
+in <em class="parameter"><code>key</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-dsa-raw.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 data to store the parsed key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>holds the p</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>holds the q</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>g</p></td>
+<td class="parameter_description"><p>holds the g</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>holds the y (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>holds the x</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-import-dsa-raw.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-x509-privkey-get-pk-algorithm"></a><h3>gnutls_x509_privkey_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_get_pk_algorithm (<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>);</pre>
+<p>This function will return the public key algorithm of a private
+key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-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-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-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-x509-privkey-get-pk-algorithm2"></a><h3>gnutls_x509_privkey_get_pk_algorithm2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_get_pk_algorithm2 (<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>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-x509-privkey-get-pk-algorithm2.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-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_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>The number of bits in the public key algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-get-pk-algorithm2.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-x509-privkey-get-spki"></a><h3>gnutls_x509_privkey_get_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_get_spki (<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><a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the public key information of a private
+key. The provided <em class="parameter"><code>spki</code></em>
+ must be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-get-spki.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-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a></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-x509-privkey-get-spki.returns"></a><h4>Returns</h4>
+<p> Zero on success, or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-set-spki"></a><h3>gnutls_x509_privkey_set_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_set_spki (<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 <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will return the public key information of a private
+key. The provided <em class="parameter"><code>spki</code></em>
+ must be initialized.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-set-spki.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-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a></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-x509-privkey-set-spki.returns"></a><h4>Returns</h4>
+<p> Zero on success, or a negative error code on error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-get-key-id"></a><h3>gnutls_x509_privkey_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_get_key_id (<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>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</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 return a unique ID that depends on the public key
+parameters. This ID can be used in checking whether a certificate
+corresponds to the given key.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em>
+ is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will
+be returned. The output will normally be a SHA-1 hash output,
+which is 20 bytes.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-get-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>key</p></td>
+<td class="parameter_description"><p>a 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 one of the flags from <a class="link" href="gnutls-x509.html#gnutls-keyid-flags-t" title="enum gnutls_keyid_flags_t"><code class="literal">gnutls_keyid_flags_t</code></a></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 key ID</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-x509-privkey-get-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-generate"></a><h3>gnutls_x509_privkey_generate ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_generate (<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><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> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will generate a random private key. Note that this
+function must be called on an initialized private key.</p>
+<p>The flag <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-PROVABLE:CAPS"><code class="literal">GNUTLS_PRIVKEY_FLAG_PROVABLE</code></a>
+instructs the key generation process to use algorithms like Shawe-Taylor
+(from FIPS PUB186-4) which generate provable parameters out of a seed
+for RSA and DSA keys. See <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-generate2" title="gnutls_x509_privkey_generate2 ()"><code class="function">gnutls_x509_privkey_generate2()</code></a> for more
+information.</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. The input to the macro is any curve from
+<a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><code class="literal">gnutls_ecc_curve_t</code></a>.</p>
+<p>For DSA keys, if the subgroup size needs to be specified check
+the <a class="link" href="gnutls-abstract.html#GNUTLS-SUBGROUP-TO-BITS:CAPS" title="GNUTLS_SUBGROUP_TO_BITS()"><code class="function">GNUTLS_SUBGROUP_TO_BITS()</code></a> macro.</p>
+<p>It is recommended to do not set the number of <em class="parameter"><code>bits</code></em>
+ directly, use <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a> instead .</p>
+<p>See also <a class="link" href="gnutls-abstract.html#gnutls-privkey-generate" title="gnutls_privkey_generate ()"><code class="function">gnutls_privkey_generate()</code></a>, <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-generate2" title="gnutls_x509_privkey_generate2 ()"><code class="function">gnutls_x509_privkey_generate2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-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>key</p></td>
+<td class="parameter_description"><p>an initialized key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>is one of the algorithms in <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>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>the size of the parameters to generate</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 or flags from <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><span class="type">gnutls_privkey_flags_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-set-flags"></a><h3>gnutls_x509_privkey_set_flags ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_privkey_set_flags (<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>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set flags for the specified private key, after
+it is generated. Currently this is useful for the <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-EXPORT-COMPAT:CAPS"><code class="literal">GNUTLS_PRIVKEY_FLAG_EXPORT_COMPAT</code></a>
+to allow exporting a "provable" private key in backwards compatible way.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-set-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>key</p></td>
+<td class="parameter_description"><p>A key of type <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></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from the <code class="literal">gnutls_privkey_flags</code></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-generate2"></a><h3>gnutls_x509_privkey_generate2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_generate2 (<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><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> algo</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> bits</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-x509.html#gnutls-keygen-data-st" title="gnutls_keygen_data_st"><span class="type">gnutls_keygen_data_st</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> data_size</code></em>);</pre>
+<p>This function will generate a random private key. Note that this
+function must be called on an initialized private key.</p>
+<p>The flag <a class="link" href="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-PROVABLE:CAPS"><code class="literal">GNUTLS_PRIVKEY_FLAG_PROVABLE</code></a>
+instructs the key generation process to use algorithms like Shawe-Taylor
+(from FIPS PUB186-4) which generate provable parameters out of a seed
+for RSA and DSA keys. On DSA keys the PQG parameters are generated using the
+seed, while on RSA the two primes. To specify an explicit seed
+(by default a random seed is used), use the <em class="parameter"><code>data</code></em>
+ with a <a class="link" href="gnutls-x509.html#GNUTLS-KEYGEN-SEED:CAPS"><code class="literal">GNUTLS_KEYGEN_SEED</code></a>
+type.</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>To export the generated keys in memory or in files it is recommended to use the
+PKCS#8 form as it can handle all key types, and can store additional parameters
+such as the seed, in case of provable RSA or DSA keys.
+Generated keys can be exported in memory using <a class="link" href="gnutls-abstract.html#gnutls-privkey-export-x509" title="gnutls_privkey_export_x509 ()"><code class="function">gnutls_privkey_export_x509()</code></a>,
+and then with <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export2-pkcs8" title="gnutls_x509_privkey_export2_pkcs8 ()"><code class="function">gnutls_x509_privkey_export2_pkcs8()</code></a>.</p>
+<p>If key generation is part of your application, avoid setting the number
+of bits directly, and instead use <a class="link" href="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" title="gnutls_sec_param_to_pk_bits ()"><code class="function">gnutls_sec_param_to_pk_bits()</code></a>.
+That way the generated keys will adapt to the security levels
+of the underlying GnuTLS library.</p>
+<p>See also <a class="link" href="gnutls-abstract.html#gnutls-privkey-generate2" title="gnutls_privkey_generate2 ()"><code class="function">gnutls_privkey_generate2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-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>key</p></td>
+<td class="parameter_description"><p>a key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>algo</p></td>
+<td class="parameter_description"><p>is one of the algorithms in <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>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>bits</p></td>
+<td class="parameter_description"><p>the size of the modulus</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 or flags from <a class="link" href="gnutls-abstract.html#gnutls-privkey-flags-t" title="enum gnutls_privkey_flags_t"><span class="type">gnutls_privkey_flags_t</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>Allow specifying <a class="link" href="gnutls-x509.html#gnutls-keygen-data-st" title="gnutls_keygen_data_st"><code class="literal">gnutls_keygen_data_st</code></a> types such as the seed to be used.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data_size</p></td>
+<td class="parameter_description"><p>The number of <em class="parameter"><code>data</code></em>
+available.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-verify-seed"></a><h3>gnutls_x509_privkey_verify_seed ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_verify_seed (<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><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> Param2</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *seed</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> seed_size</code></em>);</pre>
+<p>This function will verify that the given private key was generated from
+the provided seed. If <em class="parameter"><code>seed</code></em>
+ is <code class="literal">NULL</code> then the seed stored in the <em class="parameter"><code>key</code></em>
+'s structure
+will be used for verification.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-verify-seed.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-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>it contains the digest algorithm used for key generation (if applicable)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed</p></td>
+<td class="parameter_description"><p>the seed of the key to be checked with</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed_size</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>seed</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-verify-seed.returns"></a><h4>Returns</h4>
+<p> In case of a verification failure <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PRIVKEY-VERIFICATION-ERROR:CAPS" title="GNUTLS_E_PRIVKEY_VERIFICATION_ERROR"><code class="literal">GNUTLS_E_PRIVKEY_VERIFICATION_ERROR</code></a>
+is returned, and zero or positive code on success.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-get-seed"></a><h3>gnutls_x509_privkey_get_seed ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_get_seed (<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><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *Param2</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *seed</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *seed_size</code></em>);</pre>
+<p>This function will return the seed that was used to generate the
+given private key. That function will succeed only if the key was generated
+as a provable key.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-get-seed.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-x509-privkey-t" title="gnutls_x509_privkey_t"><span class="type">gnutls_x509_privkey_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>if non-NULL it will contain the digest algorithm used for key generation (if applicable)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed</p></td>
+<td class="parameter_description"><p>where seed will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seed_size</p></td>
+<td class="parameter_description"><p>originally holds the size of <em class="parameter"><code>seed</code></em>
+, will be updated with actual size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-get-seed.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.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-verify-params"></a><h3>gnutls_x509_privkey_verify_params ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_verify_params (<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>);</pre>
+<p>This function will verify the private key parameters.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-verify-params.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-verify-params.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-x509-privkey-export"></a><h3>gnutls_x509_privkey_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export (<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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <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 private key to a PKCS#1 structure for
+RSA or RSA-PSS keys, and integer sequence for DSA keys. Other keys types
+will be exported in PKCS#8 form.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN RSA PRIVATE KEY".</p>
+<p>It is recommended to use <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export-pkcs8" title="gnutls_x509_privkey_export_pkcs8 ()"><code class="function">gnutls_x509_privkey_export_pkcs8()</code></a> instead
+of this function, when a consistent output format is required.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-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>key</p></td>
+<td class="parameter_description"><p>Holds the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</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 a private key PEM or DER encoded</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-x509-privkey-export.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-x509-privkey-export2"></a><h3>gnutls_x509_privkey_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export2 (<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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <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 private key to a PKCS#1 structure for
+RSA or RSA-PSS keys, and integer sequence for DSA keys. Other keys types
+will be exported in PKCS#8 form.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>It is recommended to use <a class="link" href="gnutls-x509.html#gnutls-x509-privkey-export2-pkcs8" title="gnutls_x509_privkey_export2_pkcs8 ()"><code class="function">gnutls_x509_privkey_export2_pkcs8()</code></a> instead
+of this function, when a consistent output format is required.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-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>key</p></td>
+<td class="parameter_description"><p>Holds the key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a private key PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export2.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>
+<p>Since 3.1.3</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export-pkcs8"></a><h3>gnutls_x509_privkey_export_pkcs8 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export_pkcs8 (<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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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 private key to a PKCS8 structure.
+Both RSA and DSA keys can be exported. For DSA keys we use
+PKCS <span class="type">11</span> definitions. If the flags do not specify the encryption
+cipher, then the default 3DES (PBES2) will be used.</p>
+<p>The <em class="parameter"><code>password</code></em>
+ can be either ASCII or UTF-8 in the default PBES2
+encryption schemas, or ASCII for the PKCS12 schemas.</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>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN ENCRYPTED PRIVATE KEY" or "BEGIN PRIVATE KEY" if
+encryption is not used.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-pkcs8.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>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>the password that will be used to encrypt the key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of gnutls_pkcs_encrypt_flags_t</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 a private key PEM or DER encoded</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-x509-privkey-export-pkcs8.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export2-pkcs8"></a><h3>gnutls_x509_privkey_export2_pkcs8 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export2_pkcs8 (<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><a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-fmt-t" title="enum gnutls_x509_crt_fmt_t"><span class="type">gnutls_x509_crt_fmt_t</span></a> format</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *password</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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 private key to a PKCS8 structure.
+Both RSA and DSA keys can be exported. For DSA keys we use
+PKCS <span class="type">11</span> definitions. If the flags do not specify the encryption
+cipher, then the default 3DES (PBES2) will be used.</p>
+<p>The <em class="parameter"><code>password</code></em>
+ can be either ASCII or UTF-8 in the default PBES2
+encryption schemas, or ASCII for the PKCS12 schemas.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header
+of "BEGIN ENCRYPTED PRIVATE KEY" or "BEGIN PRIVATE KEY" if
+encryption is not used.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export2-pkcs8.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>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>password</p></td>
+<td class="parameter_description"><p>the password that will be used to encrypt the key.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>an ORed sequence of gnutls_pkcs_encrypt_flags_t</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a private key PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export2-pkcs8.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+<p>Since 3.1.3</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-export-rsa-raw2"></a><h3>gnutls_x509_privkey_export_rsa_raw2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export_rsa_raw2 (<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><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *m</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> *e</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> *d</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> *p</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> *q</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> *u</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> *e1</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> *e2</code></em>);</pre>
+<p>This function will export the RSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-rsa-raw2.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>will hold the private exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the first prime (p)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the second prime (q)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>u</p></td>
+<td class="parameter_description"><p>will hold the coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e1</p></td>
+<td class="parameter_description"><p>will hold e1 = d mod (p-1)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e2</p></td>
+<td class="parameter_description"><p>will hold e2 = d mod (q-1)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-rsa-raw2.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-x509-privkey-export-rsa-raw"></a><h3>gnutls_x509_privkey_export_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export_rsa_raw (<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><a class="link" href="gnutls-gnutls.html#gnutls-datum-t" title="gnutls_datum_t"><span class="type">gnutls_datum_t</span></a> *m</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> *e</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> *d</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> *p</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> *q</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> *u</code></em>);</pre>
+<p>This function will export the RSA private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-rsa-raw.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>d</p></td>
+<td class="parameter_description"><p>will hold the private exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>p</p></td>
+<td class="parameter_description"><p>will hold the first prime (p)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>q</p></td>
+<td class="parameter_description"><p>will hold the second prime (q)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>u</p></td>
+<td class="parameter_description"><p>will hold the coefficient</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-rsa-raw.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-x509-privkey-export-ecc-raw"></a><h3>gnutls_x509_privkey_export_ecc_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export_ecc_raw (<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><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</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> *x</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> *y</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> *k</code></em>);</pre>
+<p>This function will export the ECC private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>In EdDSA curves the <em class="parameter"><code>y</code></em>
+ parameter will be <code class="literal">NULL</code> and the other parameters
+will be in the native format for the curve.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-ecc-raw.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>will hold the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-ecc-raw.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-x509-privkey-export-gost-raw"></a><h3>gnutls_x509_privkey_export_gost_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_export_gost_raw (<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><a class="link" href="gnutls-gnutls.html#gnutls-ecc-curve-t" title="enum gnutls_ecc_curve_t"><span class="type">gnutls_ecc_curve_t</span></a> *curve</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> *digest</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-gost-paramset-t" title="enum gnutls_gost_paramset_t"><span class="type">gnutls_gost_paramset_t</span></a> *paramset</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> *x</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> *y</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> *k</code></em>);</pre>
+<p>This function will export the GOST private key's parameters found
+in the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<p>Note: parameters will be stored with least significant byte first. On
+version 3.6.3 this was incorrectly returned in big-endian format.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-gost-raw.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>curve</p></td>
+<td class="parameter_description"><p>will hold the curve</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>will hold the digest</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>paramset</p></td>
+<td class="parameter_description"><p>will hold the GOST parameter set ID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>x</p></td>
+<td class="parameter_description"><p>will hold the x-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>y</p></td>
+<td class="parameter_description"><p>will hold the y-coordinate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>k</p></td>
+<td class="parameter_description"><p>will hold the private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-export-gost-raw.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.6.3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-privkey-sign-data"></a><h3>gnutls_x509_privkey_sign_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_privkey_sign_data (<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><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> digest</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</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> *data</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *signature</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *signature_size</code></em>);</pre>
+<p>This function will sign the given data using a signature algorithm
+supported by the private key. Signature algorithms are always used
+together with a hash functions. Different hash functions may be
+used for the RSA algorithm, but only SHA-1 for the DSA keys.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>signature_size</code></em>
+ is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will
+be returned.</p>
+<p>Use <code class="function">gnutls_x509_crt_get_preferred_hash_algorithm()</code> to determine
+the hash algorithm.</p>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-sign-data.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 key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>digest</p></td>
+<td class="parameter_description"><p>should be a digest algorithm</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be 0 for now</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>holds the data to be signed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature</p></td>
+<td class="parameter_description"><p>will contain the signature</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>signature_size</p></td>
+<td class="parameter_description"><p>holds the size of signature (and will be replaced
+by the new size)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-privkey-sign-data.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-x509-crq-sign"></a><h3>gnutls_x509_crq_sign ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_sign (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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>);</pre>
+<p>This function is the same a <a class="link" href="gnutls-x509.html#gnutls-x509-crq-sign2" title="gnutls_x509_crq_sign2 ()"><code class="function">gnutls_x509_crq_sign2()</code></a> with no flags,
+and an appropriate hash algorithm. The hash algorithm used may
+vary between versions of GnuTLS, and it is tied to the security
+level of the issuer's public key.</p>
+<p>A known limitation of this function is, that a newly-signed request will not
+be fully functional (e.g., for signature verification), until it
+is exported an re-imported.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-sign.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>holds a private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-sign.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-x509-crq-sign2"></a><h3>gnutls_x509_crq_sign2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_sign2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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><a class="link" href="gnutls-gnutls.html#gnutls-digest-algorithm-t" title="enum gnutls_digest_algorithm_t"><span class="type">gnutls_digest_algorithm_t</span></a> dig</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will sign the certificate request with a private key.
+This must be the same key as the one used in
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-set-key" title="gnutls_x509_crt_set_key ()"><code class="function">gnutls_x509_crt_set_key()</code></a> since a certificate request is self
+signed.</p>
+<p>This must be the last step in a certificate request generation
+since all the previously set parameters are now signed.</p>
+<p>A known limitation of this function is, that a newly-signed request will not
+be fully functional (e.g., for signature verification), until it
+is exported an re-imported.</p>
+<p>After GnuTLS 3.6.1 the value of <em class="parameter"><code>dig</code></em>
+ may be <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"><code class="literal">GNUTLS_DIG_UNKNOWN</code></a>,
+and in that case, a suitable but reasonable for the key algorithm will be selected.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-sign2.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>holds a private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dig</p></td>
+<td class="parameter_description"><p>The message digest to use, i.e., <a class="link" href="gnutls-gnutls.html#GNUTLS-DIG-SHA256:CAPS"><code class="literal">GNUTLS_DIG_SHA256</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>must be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-sign2.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> on success, otherwise a negative error code.
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS" title="GNUTLS_E_ASN1_VALUE_NOT_FOUND"><code class="literal">GNUTLS_E_ASN1_VALUE_NOT_FOUND</code></a> is returned if you didn't set all
+information in the certificate request (e.g., the version using
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-set-version" title="gnutls_x509_crq_set_version ()"><code class="function">gnutls_x509_crq_set_version()</code></a>).</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-print"></a><h3>gnutls_x509_crq_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_print (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+ <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 pretty print a certificate request, suitable for
+display to a human.</p>
+<p>The output <em class="parameter"><code>out</code></em>
+ 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-x509-crq-print.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>crq</p></td>
+<td class="parameter_description"><p>The data to be printed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>Indicate the format to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>Newly allocated datum with null terminated string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-print.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-verify"></a><h3>gnutls_x509_crq_verify ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_verify (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will verify self signature in the certificate
+request and return its status.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-verify.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>crq</p></td>
+<td class="parameter_description"><p>is the crq to be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-verify.returns"></a><h4>Returns</h4>
+<p> In case of a verification failure <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS" title="GNUTLS_E_PK_SIG_VERIFY_FAILED"><code class="literal">GNUTLS_E_PK_SIG_VERIFY_FAILED</code></a>
+is returned, and zero or positive code on success.</p>
+<p>Since 2.12.0</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-init"></a><h3>gnutls_x509_crq_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_init (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> *crq</code></em>);</pre>
+<p>This function will initialize a PKCS<span class="type">10</span> certificate request
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-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>crq</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-x509-crq-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-x509-crq-deinit"></a><h3>gnutls_x509_crq_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_crq_deinit (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>This function will deinitialize a PKCS<span class="type">10</span> certificate request
+structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-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>crq</p></td>
+<td class="parameter_description"><p>the type to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-import"></a><h3>gnutls_x509_crq_import ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_import (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> *data</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> format</code></em>);</pre>
+<p>This function will convert the given DER or PEM encoded certificate
+request to a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type. The output will be
+stored in <em class="parameter"><code>crq</code></em>
+.</p>
+<p>If the Certificate is PEM encoded it should have a header of "NEW
+CERTIFICATE REQUEST".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-import.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>crq</p></td>
+<td class="parameter_description"><p>The data to store the parsed certificate request.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>The DER or PEM encoded certificate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>One of DER or PEM</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-import.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-x509-crq-get-private-key-usage-period"></a><h3>gnutls_x509_crq_get_private_key_usage_period ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_private_key_usage_period
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> cert</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> *activation</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> *expiration</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the expiration and activation
+times of the private key of the certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-private-key-usage-period.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>activation</p></td>
+<td class="parameter_description"><p>The activation time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>expiration</p></td>
+<td class="parameter_description"><p>The expiration time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>the extension status</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-private-key-usage-period.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 extension is not present, otherwise a negative error value.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn"></a><h3>gnutls_x509_crq_get_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_dn (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will copy the name of the Certificate request subject
+to the provided buffer. The name will be in the form
+"C=xxxx,O=yyyy,CN=zzzz" as described in RFC 2253. The output string
+<em class="parameter"><code>buf</code></em>
+ will be ASCII or UTF-8 encoded, depending on the certificate
+data.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn3" title="gnutls_x509_crq_get_dn3 ()"><code class="function">gnutls_x509_crq_get_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is not
+long enough, and in that case the *<em class="parameter"><code>buf_size</code></em>
+will be updated with
+the required size. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn2"></a><h3>gnutls_x509_crq_get_dn2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_dn2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> *dn</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of the Certificate
+request. The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>This function does not output a fully RFC4514 compliant string, if
+that is required see <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-dn3" title="gnutls_x509_crq_get_dn3 ()"><code class="function">gnutls_x509_crq_get_dn3()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn2.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn2.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. and a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn3"></a><h3>gnutls_x509_crq_get_dn3 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_dn3 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> *dn</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will allocate buffer and copy the name of the Certificate
+request. The name will be in the form "C=xxxx,O=yyyy,CN=zzzz" as
+described in RFC4514. The output string will be ASCII or UTF-8
+encoded, depending on the certificate data.</p>
+<p>When the flag <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a> is specified, the output
+format will match the format output by previous to 3.5.6 versions of GnuTLS
+which was not not fully RFC4514-compliant.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn3.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name; must be freed using <a class="link" href="gnutls-gnutls.html#gnutls-free" title="gnutls_free()"><code class="function">gnutls_free()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS" title="GNUTLS_X509_DN_FLAG_COMPAT"><code class="literal">GNUTLS_X509_DN_FLAG_COMPAT</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn3.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. and a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.5.7</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn-oid"></a><h3>gnutls_x509_crq_get_dn_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_dn_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>This function will extract the requested OID of the name of the
+certificate request subject, specified by the given index.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crq_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which DN OID to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_oid</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the *<em class="parameter"><code>sizeof_oid</code></em>
+will be
+updated with the required size. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-dn-by-oid"></a><h3>gnutls_x509_crq_get_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_dn_by_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will extract the part of the name of the Certificate
+request subject, specified by the given OID. The output will be
+encoded as described in RFC2253. The output string will be ASCII
+or UTF-8 encoded, depending on the certificate data.</p>
+<p>Some helper macros with popular OIDs can be found in gnutls/x509.h
+If raw flag is (0), this function will only return known OIDs as
+text. Other OIDs will be DER encoded, as described in RFC2253 --
+in hex format with a '#' prefix. You can check about known OIDs
+using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn-by-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a gnutls_x509_crq_t type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the RDN, this specifies
+which to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>If non-zero returns the raw DER data of the DN part.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-dn-by-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the *<em class="parameter"><code>buf_size</code></em>
+will be
+updated with the required size. On success 0 is returned.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-dn"></a><h3>gnutls_x509_crq_set_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_dn (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *dn</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> **err</code></em>);</pre>
+<p>This function will set the DN on the provided certificate.
+The input string should be plain ASCII or UTF-8 encoded. On
+DN parsing error <a class="link" href="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS" title="GNUTLS_E_PARSING_ERROR"><code class="literal">GNUTLS_E_PARSING_ERROR</code></a> is returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-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>crq</p></td>
+<td class="parameter_description"><p>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>a comma separated DN string (RFC4514)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>err</p></td>
+<td class="parameter_description"><p>indicates the error position (if any)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-dn-by-oid"></a><h3>gnutls_x509_crq_set_dn_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_dn_by_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> raw_flag</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> sizeof_data</code></em>);</pre>
+<p>This function will set the part of the name of the Certificate
+request subject, specified by the given OID. The input string
+should be ASCII or UTF-8 encoded.</p>
+<p>Some helper macros with popular OIDs can be found in gnutls/x509.h
+With this function you can only set the known OIDs. You can test
+for known OIDs using <a class="link" href="gnutls-x509.html#gnutls-x509-dn-oid-known" title="gnutls_x509_dn_oid_known ()"><code class="function">gnutls_x509_dn_oid_known()</code></a>. For OIDs that are
+not known (by gnutls) you should properly DER encode your data, and
+call this function with raw_flag set.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-dn-by-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a (0)-terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>raw_flag</p></td>
+<td class="parameter_description"><p>must be 0, or 1 if the data are DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a pointer to the input data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_data</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>data</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-dn-by-oid.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-x509-crq-set-version"></a><h3>gnutls_x509_crq_set_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_version (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> version</code></em>);</pre>
+<p>This function will set the version of the certificate request. For
+version 1 requests this must be one.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-version.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>version</p></td>
+<td class="parameter_description"><p>holds the version number, for v1 Requests must be 1</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-version.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-x509-crq-get-version"></a><h3>gnutls_x509_crq_get_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_version (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>This function will return the version of the specified Certificate
+request.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-version.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-version.returns"></a><h4>Returns</h4>
+<p> version of certificate request, or a negative error code on
+error.</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-key"></a><h3>gnutls_x509_crq_set_key ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_key (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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>);</pre>
+<p>This function will set the public parameters from the given private
+key to the request.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key</p></td>
+<td class="parameter_description"><p>holds a private key</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-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>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-extension-by-oid"></a><h3>gnutls_x509_crq_set_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_extension_by_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> sizeof_buf</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>This function will set an the extension, by the specified OID, in
+the certificate request. The extension data should be binary data DER
+encoded.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-extension-by-oid.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>crq</p></td>
+<td class="parameter_description"><p>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a DER encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_buf</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>should be non-zero if the extension is to be marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-extension-by-oid.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-x509-crq-set-challenge-password"></a><h3>gnutls_x509_crq_set_challenge_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_challenge_password
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *pass</code></em>);</pre>
+<p>This function will set a challenge password to be used when
+revoking the request.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-challenge-password.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>holds a (0)-terminated password</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-challenge-password.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-x509-crq-get-challenge-password"></a><h3>gnutls_x509_crq_get_challenge_password ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_challenge_password
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *pass</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_pass</code></em>);</pre>
+<p>This function will return the challenge password in the request.
+The challenge password is intended to be used for requesting a
+revocation of the certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-challenge-password.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass</p></td>
+<td class="parameter_description"><p>will hold a (0)-terminated password string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pass_size</p></td>
+<td class="parameter_description"><p>Initially holds the size of <em class="parameter"><code>pass</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-challenge-password.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-x509-crq-set-attribute-by-oid"></a><h3>gnutls_x509_crq_set_attribute_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_attribute_by_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> sizeof_buf</code></em>);</pre>
+<p>This function will set the attribute in the certificate request
+specified by the given Object ID. The provided attribute must be be DER
+encoded.</p>
+<p>Attributes in a certificate request is an optional set of data
+appended to the request. Their interpretation depends on the CA policy.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-attribute-by-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null-terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure that holds the attribute data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-attribute-by-oid.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-x509-crq-get-attribute-by-oid"></a><h3>gnutls_x509_crq_get_attribute_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_attribute_by_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>);</pre>
+<p>This function will return the attribute in the certificate request
+specified by the given Object ID. The attribute will be DER
+encoded.</p>
+<p>Attributes in a certificate request is an optional set of data
+appended to the request. Their interpretation depends on the CA policy.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-attribute-by-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in null-terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the attribute list, this
+specifies which to get, use (0) to get the first one</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the attribute data (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-attribute-by-oid.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-x509-crq-export"></a><h3>gnutls_x509_crq_export ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_export (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> format</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 certificate request to a PEM or DER
+encoded PKCS10 structure.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be returned and
+*<em class="parameter"><code>output_data_size</code></em>
+ will be updated.</p>
+<p>If the structure is PEM encoded, it will have a header of "BEGIN
+NEW CERTIFICATE REQUEST".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</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 a certificate request PEM or DER encoded</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-x509-crq-export.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-x509-crq-export2"></a><h3>gnutls_x509_crq_export2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_export2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> format</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 certificate request to a PEM or DER
+encoded PKCS10 structure.</p>
+<p>The output buffer is allocated using <code class="function">gnutls_malloc()</code>.</p>
+<p>If the structure is PEM encoded, it will have a header of "BEGIN
+NEW CERTIFICATE REQUEST".</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>the format of output params. One of PEM or DER.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>will contain a certificate request PEM or DER encoded</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-export2.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>
+<p>Since 3.1.3</p>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crq"></a><h3>gnutls_x509_crt_set_crq ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_crq (<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-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>This function will set the name and public parameters as well as
+the extensions from the given certificate request to the certificate.
+Only RSA keys are currently supported.</p>
+<p>Note that this function will only set the <em class="parameter"><code>crq</code></em>
+ if it is self
+signed and the signature is correct. See <a class="link" href="gnutls-x509.html#gnutls-x509-crq-sign2" title="gnutls_x509_crq_sign2 ()"><code class="function">gnutls_x509_crq_sign2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crq.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>crq</p></td>
+<td class="parameter_description"><p>holds a certificate request</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crq.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-x509-crt-set-crq-extensions"></a><h3>gnutls_x509_crt_set_crq_extensions ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_crq_extensions (<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-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>);</pre>
+<p>This function will set the extensions from the given request to the
+certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crq-extensions.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>crq</p></td>
+<td class="parameter_description"><p>holds a certificate request</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crq-extensions.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-set-crq-extension-by-oid"></a><h3>gnutls_x509_crt_set_crq_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_set_crq_extension_by_oid
+ (<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-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function will set the extension specify by <em class="parameter"><code>oid</code></em>
+ from the given request to the
+certificate.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-set-crq-extension-by-oid.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>crq</p></td>
+<td class="parameter_description"><p>holds a certificate request</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>the object identifier of the OID to copy</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-x509-crt-set-crq-extension-by-oid.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.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-private-key-usage-period"></a><h3>gnutls_x509_crq_set_private_key_usage_period ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_private_key_usage_period
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> activation</code></em>,
+ <em class="parameter"><code><span class="type">time_t</span> expiration</code></em>);</pre>
+<p>This function will set the private key usage period extension (2.5.29.16).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-private-key-usage-period.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>crq</p></td>
+<td class="parameter_description"><p>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>activation</p></td>
+<td class="parameter_description"><p>The activation time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>expiration</p></td>
+<td class="parameter_description"><p>The expiration time</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-private-key-usage-period.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-x509-crq-set-key-rsa-raw"></a><h3>gnutls_x509_crq_set_key_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_key_rsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> *m</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> *e</code></em>);</pre>
+<p>This function will set the public parameters from the given private
+key to the request. Only RSA keys are currently supported.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-key-rsa-raw.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>holds the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>holds the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-key-rsa-raw.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-subject-alt-name"></a><h3>gnutls_x509_crq_set_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_subject_alt_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> nt</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the subject alternative name certificate
+extension. It can set the following types:</p>
+<p><a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>: as a text string</p>
+<p><a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>: as a text string</p>
+<p><a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"><code class="literal">GNUTLS_SAN_URI</code></a>: as a text string</p>
+<p><a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"><code class="literal">GNUTLS_SAN_IPADDRESS</code></a>: as a binary IP address (4 or 16 bytes)</p>
+<p><a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>: as a UTF8 string</p>
+<p>Since version 3.5.7 the <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"><code class="literal">GNUTLS_SAN_RFC822NAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"><code class="literal">GNUTLS_SAN_DNSNAME</code></a>, and
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a> are converted to ACE format when necessary.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-subject-alt-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>crq</p></td>
+<td class="parameter_description"><p>a certificate request of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nt</p></td>
+<td class="parameter_description"><p>is one of the <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> enumerations</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 be 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 to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p><a class="link" href="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS" title="GNUTLS_FSAN_SET"><code class="literal">GNUTLS_FSAN_SET</code></a> to clear previous data or
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS" title="GNUTLS_FSAN_APPEND"><code class="literal">GNUTLS_FSAN_APPEND</code></a> to append.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-subject-alt-name.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-subject-alt-othername"></a><h3>gnutls_x509_crq_set_subject_alt_othername ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_subject_alt_othername
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> data_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the subject alternative name certificate
+extension. It can set the following types:</p>
+<p>The values set must be binary values and must be properly DER encoded.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-subject-alt-othername.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>crq</p></td>
+<td class="parameter_description"><p>a certificate request of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>is the othername OID</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 be 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 to be set</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p><a class="link" href="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS" title="GNUTLS_FSAN_SET"><code class="literal">GNUTLS_FSAN_SET</code></a> to clear previous data or
+<a class="link" href="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS" title="GNUTLS_FSAN_APPEND"><code class="literal">GNUTLS_FSAN_APPEND</code></a> to append.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-subject-alt-othername.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.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-key-usage"></a><h3>gnutls_x509_crq_set_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_key_usage (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> usage</code></em>);</pre>
+<p>This function will set the keyUsage certificate extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-key-usage.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>crq</p></td>
+<td class="parameter_description"><p>a certificate request of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>usage</p></td>
+<td class="parameter_description"><p>an ORed sequence of the GNUTLS_KEY_* elements.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-key-usage.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-basic-constraints"></a><h3>gnutls_x509_crq_set_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_basic_constraints (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> ca</code></em>,
+ <em class="parameter"><code><span class="type">int</span> pathLenConstraint</code></em>);</pre>
+<p>This function will set the basicConstraints certificate extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-basic-constraints.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>crq</p></td>
+<td class="parameter_description"><p>a certificate request of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca</p></td>
+<td class="parameter_description"><p>true(1) or false(0) depending on the Certificate authority status.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pathLenConstraint</p></td>
+<td class="parameter_description"><p>non-negative error codes indicate maximum length of path,
+and negative error codes indicate that the pathLenConstraints field should
+not be present.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-basic-constraints.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-key-purpose-oid"></a><h3>gnutls_x509_crq_set_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_key_purpose_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> critical</code></em>);</pre>
+<p>This function will set the key purpose OIDs of the Certificate.
+These are stored in the Extended Key Usage extension (2.5.29.37)
+See the GNUTLS_KP_* definitions for human readable names.</p>
+<p>Subsequent calls to this function will append OIDs to the OID list.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-key-purpose-oid.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>crq</p></td>
+<td class="parameter_description"><p>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a null-terminated string that holds the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>Whether this extension will be critical or not</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-key-purpose-oid.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-purpose-oid"></a><h3>gnutls_x509_crq_get_key_purpose_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_key_purpose_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will extract the key purpose OIDs of the Certificate
+specified by the given index. These are stored in the Extended Key
+Usage extension (2.5.29.37). See the GNUTLS_KP_* definitions for
+human readable names.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-key-purpose-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>This specifies which OID to return, use (0) to get the first one</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to store the OID (may be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_oid</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>output variable with critical flag, may be <code class="literal">NULL</code>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-key-purpose-oid.returns"></a><h4>Returns</h4>
+<p> <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> if the provided buffer is
+not long enough, and in that case the *<em class="parameter"><code>sizeof_oid</code></em>
+will be
+updated with the required size. On success 0 is returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-data"></a><h3>gnutls_x509_crq_get_extension_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_extension_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>This function will return the requested extension data in the
+certificate. The extension data will be stored as a string in the
+provided buffer.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-info" title="gnutls_x509_crq_get_extension_info ()"><code class="function">gnutls_x509_crq_get_extension_info()</code></a> to extract the OID and
+critical flag. Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid" title="gnutls_x509_crq_get_extension_by_oid ()"><code class="function">gnutls_x509_crq_get_extension_by_oid()</code></a> instead,
+if you want to get data indexed by the extension OID rather than
+sequence.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-data.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension number to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the data (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_data</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-data.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 code in case of an error. If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-data2"></a><h3>gnutls_x509_crq_get_extension_data2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_extension_data2 (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</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>);</pre>
+<p>This function will return the requested extension data in the
+certificate request. The extension data will be allocated using
+<code class="function">gnutls_malloc()</code>.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-info" title="gnutls_x509_crq_get_extension_info ()"><code class="function">gnutls_x509_crq_get_extension_info()</code></a> to extract the OID.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-data2.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>extension_id</p></td>
+<td class="parameter_description"><p>An X.509 extension OID.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension OID to read. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>will contain the extension DER-encoded data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-data2.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 code is returned. If you have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 3.3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-info"></a><h3>gnutls_x509_crq_get_extension_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_extension_info (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the requested extension OID in the
+certificate, and the critical flag for it. The extension OID will
+be stored as a string in the provided buffer. Use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-extension-data" title="gnutls_x509_crq_get_extension_data ()"><code class="function">gnutls_x509_crq_get_extension_data()</code></a> to extract the data.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>sizeof_oid</code></em>
+ is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which extension number to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to store the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_oid</p></td>
+<td class="parameter_description"><p>initially holds the maximum size of <em class="parameter"><code>oid</code></em>
+, on return
+holds actual size of <em class="parameter"><code>oid</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>output variable with critical flag, may be NULL.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-info.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 code in case of an error. If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-attribute-data"></a><h3>gnutls_x509_crq_get_attribute_data ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_attribute_data (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *data</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_data</code></em>);</pre>
+<p>This function will return the requested attribute data in the
+certificate request. The attribute data will be stored as a string in the
+provided buffer.</p>
+<p>Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-info" title="gnutls_x509_crq_get_attribute_info ()"><code class="function">gnutls_x509_crq_get_attribute_info()</code></a> to extract the OID.
+Use <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid" title="gnutls_x509_crq_get_attribute_by_oid ()"><code class="function">gnutls_x509_crq_get_attribute_by_oid()</code></a> instead,
+if you want to get data indexed by the attribute OID rather than
+sequence.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-attribute-data.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which attribute number to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the data (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_data</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-attribute-data.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 code in case of an error. If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-attribute-info"></a><h3>gnutls_x509_crq_get_attribute_info ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_attribute_info (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_oid</code></em>);</pre>
+<p>This function will return the requested attribute OID in the
+certificate, and the critical flag for it. The attribute OID will
+be stored as a string in the provided buffer. Use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-attribute-data" title="gnutls_x509_crq_get_attribute_data ()"><code class="function">gnutls_x509_crq_get_attribute_data()</code></a> to extract the data.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>sizeof_oid</code></em>
+ is updated and <a class="link" href="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS" title="GNUTLS_E_SHORT_MEMORY_BUFFER"><code class="literal">GNUTLS_E_SHORT_MEMORY_BUFFER</code></a> will be
+returned.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-attribute-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>Specifies which attribute number to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the OID</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sizeof_oid</p></td>
+<td class="parameter_description"><p>initially holds the maximum size of <em class="parameter"><code>oid</code></em>
+, on return
+holds actual size of <em class="parameter"><code>oid</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-attribute-info.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 code in case of an error. If your have reached the
+last extension available <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a>
+will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-pk-algorithm"></a><h3>gnutls_x509_crq_get_pk_algorithm ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_pk_algorithm (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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 PKCS<span class="type">10</span>
+certificate request.</p>
+<p>If bits is non-<code class="literal">NULL</code>, it should have enough size to hold the
+parameters size in bits. For RSA the bits returned is the modulus.
+For DSA the bits returned are of the public exponent.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_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-<code class="literal">NULL</code> 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-x509-crq-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-x509-crq-get-spki"></a><h3>gnutls_x509_crq_get_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_spki (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-spki"></a><h3>gnutls_x509_crq_set_spki ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_spki (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a> spki</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will set the certificate request's subject public key
+information explicitly. This is intended to be used in the cases
+where a single public key (e.g., RSA) can be used for multiple
+signature algorithms (RSA PKCS1-1.5, and RSA-PSS).</p>
+<p>To export the public key (i.e., the SubjectPublicKeyInfo part), check
+<a class="link" href="gnutls-abstract.html#gnutls-pubkey-import-x509" title="gnutls_pubkey_import_x509 ()"><code class="function">gnutls_pubkey_import_x509()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-spki.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>crq</p></td>
+<td class="parameter_description"><p>a certificate request of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>spki</p></td>
+<td class="parameter_description"><p>a SubjectPublicKeyInfo structure of type <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><span class="type">gnutls_x509_spki_t</span></a></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-x509-crq-set-spki.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.6.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-signature-oid"></a><h3>gnutls_x509_crq_get_signature_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_signature_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will return the OID of the signature algorithm
+that has been used to sign this certificate request. This function
+is useful in the case <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-signature-algorithm" title="gnutls_x509_crq_get_signature_algorithm ()"><code class="function">gnutls_x509_crq_get_signature_algorithm()</code></a>
+returned <a class="link" href="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"><code class="literal">GNUTLS_SIGN_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-signature-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-signature-oid.returns"></a><h4>Returns</h4>
+<p> zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-pk-oid"></a><h3>gnutls_x509_crq_get_pk_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_pk_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *oid_size</code></em>);</pre>
+<p>This function will return the OID of the public key algorithm
+on that certificate request. This function
+is useful in the case <a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-pk-algorithm" title="gnutls_x509_crq_get_pk_algorithm ()"><code class="function">gnutls_x509_crq_get_pk_algorithm()</code></a>
+returned <a class="link" href="gnutls-gnutls.html#GNUTLS-PK-UNKNOWN:CAPS"><code class="literal">GNUTLS_PK_UNKNOWN</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-pk-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>a pointer to a buffer to hold the OID (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>oid</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-pk-oid.returns"></a><h4>Returns</h4>
+<p> zero or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.5.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-id"></a><h3>gnutls_x509_crq_get_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_key_id (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">char</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 return a unique ID that depends on the public key
+parameters. This ID can be used in checking whether a certificate
+corresponds to the given private key.</p>
+<p>If the buffer provided is not long enough to hold the output, then
+*<em class="parameter"><code>output_data_size</code></em>
+ is updated and GNUTLS_E_SHORT_MEMORY_BUFFER will
+be returned. The output will normally be a SHA-1 hash output,
+which is 20 bytes.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-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>crq</p></td>
+<td class="parameter_description"><p>a certificate of type <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be one of the flags from <a class="link" href="gnutls-x509.html#gnutls-keyid-flags-t" title="enum gnutls_keyid_flags_t"><code class="literal">gnutls_keyid_flags_t</code></a></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 key ID</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-x509-crq-get-key-id.returns"></a><h4>Returns</h4>
+<p> In case of failure a negative error code will be
+returned, and 0 on success.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-rsa-raw"></a><h3>gnutls_x509_crq_get_key_rsa_raw ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_key_rsa_raw (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> *m</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> *e</code></em>);</pre>
+<p>This function will export the RSA public key's parameters found in
+the given structure. The new parameters will be allocated using
+<code class="function">gnutls_malloc()</code> and will be stored in the appropriate datum.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-key-rsa-raw.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>crq</p></td>
+<td class="parameter_description"><p>Holds the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>m</p></td>
+<td class="parameter_description"><p>will hold the modulus</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>e</p></td>
+<td class="parameter_description"><p>will hold the public exponent</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-key-rsa-raw.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.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-key-usage"></a><h3>gnutls_x509_crq_get_key_usage ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_key_usage (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</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> *critical</code></em>);</pre>
+<p>This function will return certificate's key usage, by reading the
+keyUsage X.509 extension (2.5.29.15). The key usage value will
+ORed values of the: <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS" title="GNUTLS_KEY_DIGITAL_SIGNATURE"><code class="literal">GNUTLS_KEY_DIGITAL_SIGNATURE</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS" title="GNUTLS_KEY_NON_REPUDIATION"><code class="literal">GNUTLS_KEY_NON_REPUDIATION</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_KEY_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_KEY_ENCIPHERMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS" title="GNUTLS_KEY_DATA_ENCIPHERMENT"><code class="literal">GNUTLS_KEY_DATA_ENCIPHERMENT</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS" title="GNUTLS_KEY_KEY_AGREEMENT"><code class="literal">GNUTLS_KEY_KEY_AGREEMENT</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS" title="GNUTLS_KEY_KEY_CERT_SIGN"><code class="literal">GNUTLS_KEY_KEY_CERT_SIGN</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS" title="GNUTLS_KEY_CRL_SIGN"><code class="literal">GNUTLS_KEY_CRL_SIGN</code></a>,
+<a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS" title="GNUTLS_KEY_ENCIPHER_ONLY"><code class="literal">GNUTLS_KEY_ENCIPHER_ONLY</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS" title="GNUTLS_KEY_DECIPHER_ONLY"><code class="literal">GNUTLS_KEY_DECIPHER_ONLY</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-key-usage.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>key_usage</p></td>
+<td class="parameter_description"><p>where the key usage bits will be stored</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-key-usage.returns"></a><h4>Returns</h4>
+<p> the certificate key usage, or a negative error code in case of
+parsing error. If the certificate does not contain the keyUsage
+extension <a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be
+returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-basic-constraints"></a><h3>gnutls_x509_crq_get_basic_constraints ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_basic_constraints (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *ca</code></em>,
+ <em class="parameter"><code><span class="type">int</span> *pathlen</code></em>);</pre>
+<p>This function will read the certificate's basic constraints, and
+return the certificates CA status. It reads the basicConstraints
+X.509 extension (2.5.29.19).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-basic-constraints.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca</p></td>
+<td class="parameter_description"><p>pointer to output integer indicating CA status, may be NULL,
+value is 1 if the certificate CA flag is set, 0 otherwise.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>pathlen</p></td>
+<td class="parameter_description"><p>pointer to output integer indicating path length (may be
+NULL), non-negative error codes indicate a present pathLenConstraint
+field and the actual value, -1 indicate that the field is absent.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-basic-constraints.returns"></a><h4>Returns</h4>
+<p> If the certificate is a CA a positive value will be
+returned, or (0) if the certificate does not have CA flag set.
+A negative error code may be returned in case of errors. If the
+certificate does not contain the basicConstraints extension
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-subject-alt-name"></a><h3>gnutls_x509_crq_get_subject_alt_name ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_subject_alt_name (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *ret_type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the alternative names, contained in the
+given certificate. It is the same as
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()"><code class="function">gnutls_x509_crq_get_subject_alt_name()</code></a> except for the fact that it
+will return the type of the alternative name in <em class="parameter"><code>ret_type</code></em>
+ even if
+the function fails for some reason (i.e. the buffer provided is
+not enough).</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-subject-alt-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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name, 0 for the
+first one, 1 for the second etc.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret</p></td>
+<td class="parameter_description"><p>is the place where the alternative name will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret_size</p></td>
+<td class="parameter_description"><p>holds the size of ret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret_type</p></td>
+<td class="parameter_description"><p>holds the <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a> name type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical
+(may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-subject-alt-name.returns"></a><h4>Returns</h4>
+<p> the alternative subject name type on success, one of the
+enumerated <a class="link" href="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t" title="enum gnutls_x509_subject_alt_name_t"><span class="type">gnutls_x509_subject_alt_name_t</span></a>. It will 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> if <em class="parameter"><code>ret_size</code></em>
+is not large enough to
+hold the value. In that case <em class="parameter"><code>ret_size</code></em>
+will be updated with the
+required size. If the certificate request does not have an
+Alternative name with the specified sequence number then
+<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> is returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-subject-alt-othername-oid"></a><h3>gnutls_x509_crq_get_subject_alt_othername_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_subject_alt_othername_oid
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> seq</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ret</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *ret_size</code></em>);</pre>
+<p>This function will extract the type OID of an otherName Subject
+Alternative Name, contained in the given certificate, and return
+the type as an enumerated element.</p>
+<p>This function is only useful if
+<a class="link" href="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" title="gnutls_x509_crq_get_subject_alt_name ()"><code class="function">gnutls_x509_crq_get_subject_alt_name()</code></a> returned
+<a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-subject-alt-othername-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>seq</p></td>
+<td class="parameter_description"><p>specifies the sequence number of the alt name (0 for the first one, 1 for the second etc.)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret</p></td>
+<td class="parameter_description"><p>is the place where the otherName OID will be copied to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ret_size</p></td>
+<td class="parameter_description"><p>holds the size of ret.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-subject-alt-othername-oid.returns"></a><h4>Returns</h4>
+<p> the alternative subject name type on success, one of the
+enumerated gnutls_x509_subject_alt_name_t. For supported OIDs,
+it will return one of the virtual (GNUTLS_SAN_OTHERNAME_*) types,
+e.g. <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME_XMPP</code></a>, and <a class="link" href="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"><code class="literal">GNUTLS_SAN_OTHERNAME</code></a> for
+unknown OIDs. It will 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> if
+<em class="parameter"><code>ret_size</code></em>
+is not large enough to hold the value. In that case
+<em class="parameter"><code>ret_size</code></em>
+will be updated with the required size. If the
+certificate does not have an Alternative name with the specified
+sequence number and with the otherName type then
+<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> is returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-extension-by-oid"></a><h3>gnutls_x509_crq_get_extension_by_oid ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_extension_by_oid (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *buf</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> *sizeof_buf</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the extension specified by the OID in
+the certificate. The extensions will be returned as binary data
+DER encoded, in the provided buffer.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-by-oid.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>crq</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identifier in a null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the extensions, this
+specifies which to get. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf</p></td>
+<td class="parameter_description"><p>a pointer to a structure to hold the name (may be null)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>buf_size</p></td>
+<td class="parameter_description"><p>initially holds the size of <em class="parameter"><code>buf</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-extension-by-oid.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 code in case of an error. If the certificate does not
+contain the specified extension
+<a class="link" href="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS" title="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE"><code class="literal">GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE</code></a> will be returned.</p>
+</div>
+<p class="since">Since: 2.8.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-get-tlsfeatures"></a><h3>gnutls_x509_crq_get_tlsfeatures ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_get_tlsfeatures (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> features</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will get the X.509 TLS features
+extension structure from the certificate request.
+The returned structure needs to be freed using
+<a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-deinit" title="gnutls_x509_tlsfeatures_deinit ()"><code class="function">gnutls_x509_tlsfeatures_deinit()</code></a>.</p>
+<p>When the <em class="parameter"><code>flags</code></em>
+ is set to <a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND"><code class="literal">GNUTLS_EXT_FLAG_APPEND</code></a>,
+then if the <em class="parameter"><code>features</code></em>
+ structure is empty this function will behave
+identically as if the flag was not set. Otherwise if there are elements
+in the <em class="parameter"><code>features</code></em>
+ structure then they will be merged with.</p>
+<p>Note that <em class="parameter"><code>features</code></em>
+ must be initialized prior to calling this function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-tlsfeatures.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>crq</p></td>
+<td class="parameter_description"><p>An X.509 certificate request</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>features</p></td>
+<td class="parameter_description"><p>If the function succeeds, the
+features will be stored in this variable.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>zero or <a class="link" href="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS" title="GNUTLS_EXT_FLAG_APPEND"><code class="literal">GNUTLS_EXT_FLAG_APPEND</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>the extension status</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-get-tlsfeatures.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.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crq-set-tlsfeatures"></a><h3>gnutls_x509_crq_set_tlsfeatures ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crq_set_tlsfeatures (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-x509-crq-t" title="gnutls_x509_crq_t"><span class="type">gnutls_x509_crq_t</span></a> crq</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-tlsfeatures-t" title="gnutls_x509_tlsfeatures_t"><span class="type">gnutls_x509_tlsfeatures_t</span></a> features</code></em>);</pre>
+<p>This function will set the certificate request's
+X.509 TLS extension from the given structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-tlsfeatures.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>crq</p></td>
+<td class="parameter_description"><p>An X.509 certificate request</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>features</p></td>
+<td class="parameter_description"><p>If the function succeeds, the
+features will be added to the certificate
+request.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crq-set-tlsfeatures.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.5.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-get-extension-by-oid2"></a><h3>gnutls_x509_crt_get_extension_by_oid2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_crt_get_extension_by_oid2 (<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>const <span class="type">char</span> *oid</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> indx</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> *output</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *critical</code></em>);</pre>
+<p>This function will return the extension specified by the OID in the
+certificate. The extensions will be returned as binary data DER
+encoded, in the provided buffer.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-by-oid2.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>cert</p></td>
+<td class="parameter_description"><p>should contain a <a class="link" href="gnutls-gnutls.html#gnutls-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> type</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>oid</p></td>
+<td class="parameter_description"><p>holds an Object Identified in null terminated string</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>indx</p></td>
+<td class="parameter_description"><p>In case multiple same OIDs exist in the extensions, this specifies which to send. Use (0) to get the first one.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>output</p></td>
+<td class="parameter_description"><p>will hold the allocated extension data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>critical</p></td>
+<td class="parameter_description"><p>will be non-zero if the extension is marked as critical</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-crt-get-extension-by-oid2.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 code is returned. If the certificate does not
+contain the specified extension
+GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE will be returned.</p>
+</div>
+<p class="since">Since: 3.3.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-init"></a><h3>gnutls_x509_trust_list_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_init (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> *list</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> size</code></em>);</pre>
+<p>This function will initialize an X.509 trust list structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-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>list</p></td>
+<td class="parameter_description"><p>A pointer to the type to be initialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>The size of the internal hash table. Use (0) for default size.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-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: 3.0.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-deinit"></a><h3>gnutls_x509_trust_list_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_trust_list_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> all</code></em>);</pre>
+<p>This function will deinitialize a trust list. Note that the
+<em class="parameter"><code>all</code></em>
+ flag should be typically non-zero unless you have specified
+your certificates using <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-cas" title="gnutls_x509_trust_list_add_cas ()"><code class="function">gnutls_x509_trust_list_add_cas()</code></a> and you
+want to prevent them from being deinitialized by this function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-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>list</p></td>
+<td class="parameter_description"><p>The list to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>all</p></td>
+<td class="parameter_description"><p>if non-zero it will deinitialize all the certificates and CRLs contained in the structure.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.0.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-get-issuer"></a><h3>gnutls_x509_trust_list_get_issuer ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_get_issuer (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *issuer</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will find the issuer of the given certificate.
+If the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"><code class="literal">GNUTLS_TL_GET_COPY</code></a> is specified a copy of the issuer
+will be returned which must be freed using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a>.
+In that case the provided <em class="parameter"><code>issuer</code></em>
+ must not be initialized.</p>
+<p>Note that the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"><code class="literal">GNUTLS_TL_GET_COPY</code></a> is required for this function
+to work with PKCS<span class="type">11</span> trust lists in a thread-safe way.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-get-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>list</p></td>
+<td class="parameter_description"><p>The list</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. Should be treated as constant
+unless <a class="link" href="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"><code class="literal">GNUTLS_TL_GET_COPY</code></a> is set in <em class="parameter"><code>flags</code></em>
+.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t"><code class="literal">gnutls_trust_list_flags_t</code></a> (<a class="link" href="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"><code class="literal">GNUTLS_TL_GET_COPY</code></a> is applicable)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-get-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.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-get-issuer-by-dn"></a><h3>gnutls_x509_trust_list_get_issuer_by_dn ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_get_issuer_by_dn
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *issuer</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will find the issuer with the given name, and
+return a copy of the issuer, which must be freed using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-get-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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>is the issuer's DN</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. Should be deallocated after use.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Use zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-get-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-x509-trust-list-get-issuer-by-subject-key-id"></a><h3>gnutls_x509_trust_list_get_issuer_by_subject_key_id ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_get_issuer_by_subject_key_id
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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-x509-crt-t" title="gnutls_x509_crt_t"><span class="type">gnutls_x509_crt_t</span></a> *issuer</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will find the issuer with the given name and subject key ID, and
+return a copy of the issuer, which must be freed using <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-get-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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dn</p></td>
+<td class="parameter_description"><p>is the issuer's DN (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</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. Should be deallocated after use.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Use zero</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-get-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-x509-trust-list-add-cas"></a><h3>gnutls_x509_trust_list_add_cas ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_add_cas (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>const <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> *clist</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> clist_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will add the given certificate authorities
+to the trusted list. The CAs in <em class="parameter"><code>clist</code></em>
+ must not be deinitialized
+during the lifetime of <em class="parameter"><code>list</code></em>
+.</p>
+<p>If the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATES:CAPS"><code class="literal">GNUTLS_TL_NO_DUPLICATES</code></a> is specified, then
+this function will ensure that no duplicates will be
+present in the final trust list.</p>
+<p>If the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATE-KEY:CAPS"><code class="literal">GNUTLS_TL_NO_DUPLICATE_KEY</code></a> is specified, then
+this function will ensure that no certificates with the
+same key are present in the final trust list.</p>
+<p>If either <a class="link" href="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATE-KEY:CAPS"><code class="literal">GNUTLS_TL_NO_DUPLICATE_KEY</code></a> or <a class="link" href="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATES:CAPS"><code class="literal">GNUTLS_TL_NO_DUPLICATES</code></a>
+are given, <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-deinit" title="gnutls_x509_trust_list_deinit ()"><code class="function">gnutls_x509_trust_list_deinit()</code></a> must be called with parameter
+<em class="parameter"><code>all</code></em>
+ being 1.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-cas.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>clist</p></td>
+<td class="parameter_description"><p>A list of CAs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>clist_size</p></td>
+<td class="parameter_description"><p>The length of the CA list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t"><code class="literal">gnutls_trust_list_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-cas.returns"></a><h4>Returns</h4>
+<p> The number of added elements is returned; that includes
+duplicate entries.</p>
+</div>
+<p class="since">Since: 3.0.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-remove-cas"></a><h3>gnutls_x509_trust_list_remove_cas ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_remove_cas (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>const <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> *clist</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> clist_size</code></em>);</pre>
+<p>This function will remove the given certificate authorities
+from the trusted list.</p>
+<p>Note that this function can accept certificates and authorities
+not yet known. In that case they will be kept in a separate
+black list that will be used during certificate verification.
+Unlike <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-cas" title="gnutls_x509_trust_list_add_cas ()"><code class="function">gnutls_x509_trust_list_add_cas()</code></a> there is no deinitialization
+restriction for certificate list provided in this function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-remove-cas.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>clist</p></td>
+<td class="parameter_description"><p>A list of CAs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>clist_size</p></td>
+<td class="parameter_description"><p>The length of the CA list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-remove-cas.returns"></a><h4>Returns</h4>
+<p> The number of removed elements is returned.</p>
+</div>
+<p class="since">Since: 3.1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-add-named-crt"></a><h3>gnutls_x509_trust_list_add_named_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_add_named_crt (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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>const <span class="type">void</span> *name</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> name_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>);</pre>
+<p>This function will add the given certificate to the trusted
+list and associate it with a name. The certificate will not be
+be used for verification with <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt" title="gnutls_x509_trust_list_verify_crt ()"><code class="function">gnutls_x509_trust_list_verify_crt()</code></a>
+but with <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-named-crt" title="gnutls_x509_trust_list_verify_named_crt ()"><code class="function">gnutls_x509_trust_list_verify_named_crt()</code></a> or
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt2" title="gnutls_x509_trust_list_verify_crt2 ()"><code class="function">gnutls_x509_trust_list_verify_crt2()</code></a> - the latter only since
+GnuTLS 3.4.0 and if a hostname is provided.</p>
+<p>In principle this function can be used to set individual "server"
+certificates that are trusted by the user for that specific server
+but for no other purposes.</p>
+<p>The certificate <em class="parameter"><code>cert</code></em>
+ must not be deinitialized during the lifetime
+of the <em class="parameter"><code>list</code></em>
+.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-named-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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert</p></td>
+<td class="parameter_description"><p>A certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>An identifier for the certificate</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name_size</p></td>
+<td class="parameter_description"><p>The size of the identifier</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>should be 0.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-named-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: 3.0.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-add-crls"></a><h3>gnutls_x509_trust_list_add_crls ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_add_crls (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gnutls-gnutls.html#gnutls-x509-crl-t" title="gnutls_x509_crl_t"><span class="type">gnutls_x509_crl_t</span></a> *crl_list</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> crl_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> verification_flags</code></em>);</pre>
+<p>This function will add the given certificate revocation lists
+to the trusted list. The CRLs in <em class="parameter"><code>crl_list</code></em>
+ must not be deinitialized
+during the lifetime of <em class="parameter"><code>list</code></em>
+.</p>
+<p>This function must be called after <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-cas" title="gnutls_x509_trust_list_add_cas ()"><code class="function">gnutls_x509_trust_list_add_cas()</code></a>
+to allow verifying the CRLs for validity. If the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATES:CAPS"><code class="literal">GNUTLS_TL_NO_DUPLICATES</code></a>
+is given, then the final CRL list will not contain duplicate entries.</p>
+<p>If the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATES:CAPS"><code class="literal">GNUTLS_TL_NO_DUPLICATES</code></a> is given, <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-deinit" title="gnutls_x509_trust_list_deinit ()"><code class="function">gnutls_x509_trust_list_deinit()</code></a> must be
+called with parameter <em class="parameter"><code>all</code></em>
+ being 1.</p>
+<p>If flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-VERIFY-CRL:CAPS"><code class="literal">GNUTLS_TL_VERIFY_CRL</code></a> is given the CRLs will be verified before being added,
+and if verification fails, they will be skipped.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-crls.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_list</p></td>
+<td class="parameter_description"><p>A list of CRLs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_size</p></td>
+<td class="parameter_description"><p>The length of the CRL list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t"><code class="literal">gnutls_trust_list_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>verification_flags</p></td>
+<td class="parameter_description"><p>gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-crls.returns"></a><h4>Returns</h4>
+<p> The number of added elements is returned; that includes
+duplicate entries.</p>
+</div>
+<p class="since">Since: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-iter-get-ca"></a><h3>gnutls_x509_trust_list_iter_get_ca ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_iter_get_ca (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-iter-t" title="gnutls_x509_trust_list_iter_t"><span class="type">gnutls_x509_trust_list_iter_t</span></a> *iter</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>);</pre>
+<p>This function obtains a certificate in the trust list and advances the
+iterator to the next certificate. The certificate returned in <em class="parameter"><code>crt</code></em>
+ must be
+deallocated with <a class="link" href="gnutls-x509.html#gnutls-x509-crt-deinit" title="gnutls_x509_crt_deinit ()"><code class="function">gnutls_x509_crt_deinit()</code></a>.</p>
+<p>When past the last element is accessed <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>
+is returned and the iterator is reset.</p>
+<p>The iterator is deinitialized and reset to <code class="literal">NULL</code> automatically by this
+function after iterating through all elements until
+<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> is returned. If the iteration is
+aborted early, it must be manually deinitialized using
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-iter-deinit" title="gnutls_x509_trust_list_iter_deinit ()"><code class="function">gnutls_x509_trust_list_iter_deinit()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-iter-get-ca.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iter</p></td>
+<td class="parameter_description"><p>A pointer to an iterator (initially the iterator should be <code class="literal">NULL</code>)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crt</p></td>
+<td class="parameter_description"><p>where the certificate will be copied</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-iter-get-ca.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-trust-list-iter-deinit"></a><h3>gnutls_x509_trust_list_iter_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_trust_list_iter_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-iter-t" title="gnutls_x509_trust_list_iter_t"><span class="type">gnutls_x509_trust_list_iter_t</span></a> iter</code></em>);</pre>
+<p>This function will deinitialize an iterator structure.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-iter-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>iter</p></td>
+<td class="parameter_description"><p>The iterator structure to be deinitialized</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-session-set-verify-output-function"></a><h3>gnutls_session_set_verify_output_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_session_set_verify_output_function
+ (<em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-session-t" title="gnutls_session_t"><span class="type">gnutls_session_t</span></a> session</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_verify_output_function</span> *func</code></em>);</pre>
+<p>This function sets a callback to be called when the peer's certificate
+chain has to be verified and full path to the trusted root has to be
+printed.</p>
+<p>The callback's function prototype is defined in `x509.h':
+int (*callback)(
+gnutls_x509_crt_t cert,
+gnutls_x509_crt_t issuer,
+gnutls_x509_crl_t crl,
+unsigned int verification_output);</p>
+<p>If the callback function is provided then gnutls will call it, in the
+certificate verification procedure.
+To verify the certificate chain and print its path uptp the trusted root,
+functions such as <a class="link" href="gnutls-gnutls.html#gnutls-certificate-verify-peers" title="gnutls_certificate_verify_peers ()"><code class="function">gnutls_certificate_verify_peers()</code></a>,
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt" title="gnutls_x509_trust_list_verify_crt ()"><code class="function">gnutls_x509_trust_list_verify_crt()</code></a>, and <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt2" title="gnutls_x509_trust_list_verify_crt2 ()"><code class="function">gnutls_x509_trust_list_verify_crt2()</code></a>
+can be used. The callback is set in <code class="function">_gnutls_verify_crt_status()</code> and
+<code class="function">_gnutls_pkcs11_verify_crt_status()</code>.</p>
+<div class="refsect3">
+<a name="gnutls-session-set-verify-output-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>session</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-verify-named-crt"></a><h3>gnutls_x509_trust_list_verify_named_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_verify_named_crt
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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>const <span class="type">void</span> *name</code></em>,
+ <em class="parameter"><code><span class="type">size_t</span> name_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_verify_output_function</span> func</code></em>);</pre>
+<p>This function will try to find a certificate that is associated with the provided
+name --see <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-named-crt" title="gnutls_x509_trust_list_add_named_crt ()"><code class="function">gnutls_x509_trust_list_add_named_crt()</code></a>. If a match is found the
+certificate is considered valid. In addition to that this function will also
+check CRLs. The <em class="parameter"><code>voutput</code></em>
+ parameter will hold an OR'ed sequence of
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t"><code class="literal">gnutls_certificate_status_t</code></a> flags.</p>
+<p>Additionally a certificate verification profile can be specified
+from the ones in <a class="link" href="gnutls-x509.html#gnutls-certificate-verification-profiles-t" title="enum gnutls_certificate_verification_profiles_t"><code class="literal">gnutls_certificate_verification_profiles_t</code></a> by
+ORing the result of <a class="link" href="gnutls-x509.html#GNUTLS-PROFILE-TO-VFLAGS:CAPS" title="GNUTLS_PROFILE_TO_VFLAGS()"><code class="function">GNUTLS_PROFILE_TO_VFLAGS()</code></a> to the verification
+flags.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-verify-named-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>list</p></td>
+<td class="parameter_description"><p>The list</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 be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name</p></td>
+<td class="parameter_description"><p>is the certificate's name</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>name_size</p></td>
+<td class="parameter_description"><p>is the certificate's name size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>voutput</p></td>
+<td class="parameter_description"><p>will hold the certificate verification output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>If non-null will be called on each chain element verification with the output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-verify-named-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: 3.0.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-verify-crt2"></a><h3>gnutls_x509_trust_list_verify_crt2 ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_verify_crt2 (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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_list</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> cert_list_size</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-typed-vdata-st" title="gnutls_typed_vdata_st"><span class="type">gnutls_typed_vdata_st</span></a> *data</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> elements</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *voutput</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_verify_output_function</span> func</code></em>);</pre>
+<p>This function will attempt to verify the given certificate chain and return
+its status. The <em class="parameter"><code>voutput</code></em>
+ parameter will hold an OR'ed sequence of
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t"><code class="literal">gnutls_certificate_status_t</code></a> flags.</p>
+<p>When a certificate chain of <em class="parameter"><code>cert_list_size</code></em>
+ with more than one certificates is
+provided, the verification status will apply to the first certificate in the chain
+that failed verification. The verification process starts from the end of the chain
+(from CA to end certificate). The first certificate in the chain must be the end-certificate
+while the rest of the members may be sorted or not.</p>
+<p>Additionally a certificate verification profile can be specified
+from the ones in <a class="link" href="gnutls-x509.html#gnutls-certificate-verification-profiles-t" title="enum gnutls_certificate_verification_profiles_t"><code class="literal">gnutls_certificate_verification_profiles_t</code></a> by
+ORing the result of <a class="link" href="gnutls-x509.html#GNUTLS-PROFILE-TO-VFLAGS:CAPS" title="GNUTLS_PROFILE_TO_VFLAGS()"><code class="function">GNUTLS_PROFILE_TO_VFLAGS()</code></a> to the verification
+flags.</p>
+<p>Additional verification parameters are possible via the <em class="parameter"><code>data</code></em>
+ types; the
+acceptable types are <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-DNS-HOSTNAME:CAPS"><code class="literal">GNUTLS_DT_DNS_HOSTNAME</code></a>, <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-IP-ADDRESS:CAPS"><code class="literal">GNUTLS_DT_IP_ADDRESS</code></a> and <a class="link" href="gnutls-gnutls.html#GNUTLS-DT-KEY-PURPOSE-OID:CAPS"><code class="literal">GNUTLS_DT_KEY_PURPOSE_OID</code></a>.
+The former accepts as data a null-terminated hostname, and the latter a null-terminated
+object identifier (e.g., <a class="link" href="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS" title="GNUTLS_KP_TLS_WWW_SERVER"><code class="literal">GNUTLS_KP_TLS_WWW_SERVER</code></a>).
+If a DNS hostname is provided then this function will compare
+the hostname in the end certificate against the given. If names do not match the
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-UNEXPECTED-OWNER:CAPS"><code class="literal">GNUTLS_CERT_UNEXPECTED_OWNER</code></a> status flag will be set. In addition it
+will consider certificates provided with <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-add-named-crt" title="gnutls_x509_trust_list_add_named_crt ()"><code class="function">gnutls_x509_trust_list_add_named_crt()</code></a>.</p>
+<p>If a key purpose OID is provided and the end-certificate contains the extended key
+usage PKIX extension, it will be required to match the provided OID
+or be marked for any purpose, otherwise verification will fail with
+<a class="link" href="gnutls-gnutls.html#GNUTLS-CERT-PURPOSE-MISMATCH:CAPS"><code class="literal">GNUTLS_CERT_PURPOSE_MISMATCH</code></a> status.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-verify-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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_list</p></td>
+<td class="parameter_description"><p>is the certificate list to be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_list_size</p></td>
+<td class="parameter_description"><p>is the certificate list size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>data</p></td>
+<td class="parameter_description"><p>an array of typed data</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>elements</p></td>
+<td class="parameter_description"><p>the number of data elements</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>voutput</p></td>
+<td class="parameter_description"><p>will hold the certificate verification output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>If non-null will be called on each chain element verification with the output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-verify-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. Note that verification failure will not result to an
+error code, only <em class="parameter"><code>voutput</code></em>
+will be updated.</p>
+</div>
+<p class="since">Since: 3.3.8</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-verify-crt"></a><h3>gnutls_x509_trust_list_verify_crt ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_verify_crt (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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_list</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> cert_list_size</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> *verify</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_verify_output_function</span> func</code></em>);</pre>
+<p>This function will try to verify the given certificate and return
+its status. The <em class="parameter"><code>voutput</code></em>
+ parameter will hold an OR'ed sequence of
+<a class="link" href="gnutls-gnutls.html#gnutls-certificate-status-t" title="enum gnutls_certificate_status_t"><code class="literal">gnutls_certificate_status_t</code></a> flags.</p>
+<p>The details of the verification are the same as in <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-verify-crt2" title="gnutls_x509_trust_list_verify_crt2 ()"><code class="function">gnutls_x509_trust_list_verify_crt2()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-verify-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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_list</p></td>
+<td class="parameter_description"><p>is the certificate list to be verified</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cert_list_size</p></td>
+<td class="parameter_description"><p>is the certificate list size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flags</p></td>
+<td class="parameter_description"><p>Flags that may be used to change the verification algorithm. Use OR of the gnutls_certificate_verify_flags enumerations.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>voutput</p></td>
+<td class="parameter_description"><p>will hold the certificate verification output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>If non-null will be called on each chain element verification with the output.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-verify-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: 3.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-add-trust-mem"></a><h3>gnutls_x509_trust_list_add_trust_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_add_trust_mem (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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> *cas</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> *crls</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> type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_vflags</code></em>);</pre>
+<p>This function will add the given certificate authorities
+to the trusted list. </p>
+<p>If this function is used <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-deinit" title="gnutls_x509_trust_list_deinit ()"><code class="function">gnutls_x509_trust_list_deinit()</code></a> must be called
+with parameter <em class="parameter"><code>all</code></em>
+ being 1.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-trust-mem.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cas</p></td>
+<td class="parameter_description"><p>A buffer containing a list of CAs (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crls</p></td>
+<td class="parameter_description"><p>A buffer containing a list of CRLs (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The format of the certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t"><code class="literal">gnutls_trust_list_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_vflags</p></td>
+<td class="parameter_description"><p>gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-trust-mem.returns"></a><h4>Returns</h4>
+<p> The number of added elements is returned.</p>
+</div>
+<p class="since">Since: 3.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-add-trust-file"></a><h3>gnutls_x509_trust_list_add_trust_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_add_trust_file (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *ca_file</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *crl_file</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> type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_vflags</code></em>);</pre>
+<p>This function will add the given certificate authorities
+to the trusted list. PKCS <span class="type">11</span> URLs are also accepted, instead
+of files, by this function. A PKCS <span class="type">11</span> URL implies a trust
+database (a specially marked module in p11-kit); the URL "pkcs11:"
+implies all trust databases in the system. Only a single URL specifying
+trust databases can be set; they cannot be stacked with multiple calls.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-trust-file.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca_file</p></td>
+<td class="parameter_description"><p>A file containing a list of CAs (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_file</p></td>
+<td class="parameter_description"><p>A file containing a list of CRLs (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The format of the certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t"><code class="literal">gnutls_trust_list_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_vflags</p></td>
+<td class="parameter_description"><p>gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-trust-file.returns"></a><h4>Returns</h4>
+<p> The number of added elements is returned.</p>
+</div>
+<p class="since">Since: 3.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-add-trust-dir"></a><h3>gnutls_x509_trust_list_add_trust_dir ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_add_trust_dir (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *ca_dir</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *crl_dir</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> type</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_vflags</code></em>);</pre>
+<p>This function will add the given certificate authorities
+to the trusted list. Only directories are accepted by
+this function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-trust-dir.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca_dir</p></td>
+<td class="parameter_description"><p>A directory containing the CAs (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>crl_dir</p></td>
+<td class="parameter_description"><p>A directory containing a list of CRLs (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The format of the certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_flags</p></td>
+<td class="parameter_description"><p>flags from <a class="link" href="gnutls-x509.html#gnutls-trust-list-flags-t" title="enum gnutls_trust_list_flags_t"><code class="literal">gnutls_trust_list_flags_t</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_vflags</p></td>
+<td class="parameter_description"><p>gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-trust-dir.returns"></a><h4>Returns</h4>
+<p> The number of added elements is returned.</p>
+</div>
+<p class="since">Since: 3.3.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-remove-trust-file"></a><h3>gnutls_x509_trust_list_remove_trust_file ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_remove_trust_file
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>const <span class="type">char</span> *ca_file</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> type</code></em>);</pre>
+<p>This function will remove the given certificate authorities
+from the trusted list, and add them into a black list when needed.
+PKCS 11 URLs are also accepted, instead
+of files, by this function.</p>
+<p>See also <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-remove-cas" title="gnutls_x509_trust_list_remove_cas ()"><code class="function">gnutls_x509_trust_list_remove_cas()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-remove-trust-file.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>ca_file</p></td>
+<td class="parameter_description"><p>A file containing a list of CAs</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The format of the certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-remove-trust-file.returns"></a><h4>Returns</h4>
+<p> The number of added elements is returned.</p>
+</div>
+<p class="since">Since: 3.1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-remove-trust-mem"></a><h3>gnutls_x509_trust_list_remove_trust_mem ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_remove_trust_mem
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</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> *cas</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> type</code></em>);</pre>
+<p>This function will remove the provided certificate authorities
+from the trusted list, and add them into a black list when needed. </p>
+<p>See also <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-remove-cas" title="gnutls_x509_trust_list_remove_cas ()"><code class="function">gnutls_x509_trust_list_remove_cas()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-remove-trust-mem.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>list</p></td>
+<td class="parameter_description"><p>The list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cas</p></td>
+<td class="parameter_description"><p>A buffer containing a list of CAs (optional)</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>type</p></td>
+<td class="parameter_description"><p>The format of the certificates</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-remove-trust-mem.returns"></a><h4>Returns</h4>
+<p> The number of removed elements is returned.</p>
+</div>
+<p class="since">Since: 3.1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-add-system-trust"></a><h3>gnutls_x509_trust_list_add_system_trust ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_trust_list_add_system_trust
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> list</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_flags</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> tl_vflags</code></em>);</pre>
+<p>This function adds the system's default trusted certificate
+authorities to the trusted list. Note that on unsupported systems
+this function returns <a class="link" href="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS" title="GNUTLS_E_UNIMPLEMENTED_FEATURE"><code class="literal">GNUTLS_E_UNIMPLEMENTED_FEATURE</code></a>.</p>
+<p>This function implies the flag <a class="link" href="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATES:CAPS"><code class="literal">GNUTLS_TL_NO_DUPLICATES</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-system-trust.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>list</p></td>
+<td class="parameter_description"><p>The structure of the list</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_flags</p></td>
+<td class="parameter_description"><p>GNUTLS_TL_*</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tl_vflags</p></td>
+<td class="parameter_description"><p>gnutls_certificate_verify_flags if flags specifies GNUTLS_TL_VERIFY_CRL</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-add-system-trust.returns"></a><h4>Returns</h4>
+<p> The number of added elements or a negative error code on error.</p>
+</div>
+<p class="since">Since: 3.1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-set-getissuer-function"></a><h3>gnutls_x509_trust_list_set_getissuer_function ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_trust_list_set_getissuer_function
+ (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> tlist</code></em>,
+ <em class="parameter"><code><span class="type">gnutls_x509_trust_list_getissuer_function</span> *func</code></em>);</pre>
+<p>This function sets a callback to be called when the peer's certificate
+chain is incomplete due a missing intermediate certificate. The callback
+may provide the missing certificate for use during verification.</p>
+<p>The callback's function prototype is defined in gnutls/x509.h as:</p>
+<p> int (*callback)(gnutls_x509_trust_list_t list,
+ const gnutls_x509_crt_t cert,
+ gnutls_x509_crt_t **issuers,
+ unsigned int *issuers_size);</p>
+<p>If the callback function is provided then gnutls will call it during the
+certificate verification procedure. The callback may wish to use
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-info-access" title="gnutls_x509_crt_get_authority_info_access ()"><code class="function">gnutls_x509_crt_get_authority_info_access()</code></a> to get a URI from which
+to attempt to download the missing issuer certificate, if available.</p>
+<p>On a successful call, the callback shall allocate the 'issuers' array with
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-list-import2" title="gnutls_x509_crt_list_import2 ()"><code class="function">gnutls_x509_crt_list_import2()</code></a>. The ownership of both the array and the
+elements is transferred to the caller and thus the application does not need
+to maintain the memory after the call.</p>
+<p>The callback function should return 0 if the missing issuer certificate
+for 'crt' was properly populated and added to the 'issuers', or non-zero
+to continue the certificate list verification but with issuer as <code class="literal">NULL</code>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-set-getissuer-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>tlist</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p>is the callback function</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-set-ptr"></a><h3>gnutls_x509_trust_list_set_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_trust_list_set_ptr (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> tlist</code></em>,
+ <em class="parameter"><code><span class="type">void</span> *ptr</code></em>);</pre>
+<p>This function will set (associate) the user given pointer <em class="parameter"><code>ptr</code></em>
+ to
+the tlist structure. This pointer can be accessed with
+<a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-get-ptr" title="gnutls_x509_trust_list_get_ptr ()"><code class="function">gnutls_x509_trust_list_get_ptr()</code></a>. Useful in the callback function
+gnutls_x509_trust_list_set_getissuer_function.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-set-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>tlist</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_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>is the user pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-get-ptr"></a><h3>gnutls_x509_trust_list_get_ptr ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> *
+gnutls_x509_trust_list_get_ptr (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> tlist</code></em>);</pre>
+<p>Get user pointer for tlist. Useful in callback function
+gnutls_x509_trust_list_set_getissuer_function.
+This is the pointer set with <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-set-ptr" title="gnutls_x509_trust_list_set_ptr ()"><code class="function">gnutls_x509_trust_list_set_ptr()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-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>tlist</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-trust-list-get-ptr.returns"></a><h4>Returns</h4>
+<p> the user given pointer from the tlist structure, or
+<code class="literal">NULL</code> if it was never set.</p>
+</div>
+<p class="since">Since: 3.7.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-set-trust-list"></a><h3>gnutls_certificate_set_trust_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_set_trust_list (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> tlist</code></em>,
+ <em class="parameter"><code><span class="type">unsigned </span> flags</code></em>);</pre>
+<p>This function sets a trust list in the gnutls_certificate_credentials_t type.</p>
+<p>Note that the <em class="parameter"><code>tlist</code></em>
+ will become part of the credentials
+structure and must not be deallocated. It will be automatically deallocated
+when the <em class="parameter"><code>res</code></em>
+ structure is deinitialized.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-set-trust-list.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tlist</p></td>
+<td class="parameter_description"><p>is a <a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> type</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>
+<p class="since">Since: 3.2.2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-get-trust-list"></a><h3>gnutls_certificate_get_trust_list ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_certificate_get_trust_list (<em class="parameter"><code><span class="type">gnutls_certificate_credentials_t</span> res</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-trust-list-t" title="gnutls_x509_trust_list_t"><span class="type">gnutls_x509_trust_list_t</span></a> *tlist</code></em>);</pre>
+<p>Obtains the list of trusted certificates stored in <em class="parameter"><code>res</code></em>
+ and writes a
+pointer to it to the location <em class="parameter"><code>tlist</code></em>
+. The pointer will point to memory
+internal to <em class="parameter"><code>res</code></em>
+, and must not be deinitialized. It will be automatically
+deallocated when the <em class="parameter"><code>res</code></em>
+ structure is deinitialized.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-get-trust-list.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>res</p></td>
+<td class="parameter_description"><p>is a <span class="type">gnutls_certificate_credentials_t</span> type.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>tlist</p></td>
+<td class="parameter_description"><p>Location where to store the trust list.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: 3.4.0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-ext-deinit"></a><h3>gnutls_x509_ext_deinit ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gnutls_x509_ext_deinit (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-ext-st" title="gnutls_x509_ext_st"><span class="type">gnutls_x509_ext_st</span></a> *ext</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-ext-print"></a><h3>gnutls_x509_ext_print ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span>
+gnutls_x509_ext_print (<em class="parameter"><code><a class="link" href="gnutls-x509.html#gnutls-x509-ext-st" title="gnutls_x509_ext_st"><span class="type">gnutls_x509_ext_st</span></a> *exts</code></em>,
+ <em class="parameter"><code>unsigned <span class="type">int</span> exts_size</code></em>,
+ <em class="parameter"><code><a class="link" href="gnutls-gnutls.html#gnutls-certificate-print-formats-t" title="enum gnutls_certificate_print_formats_t"><span class="type">gnutls_certificate_print_formats_t</span></a> format</code></em>,
+ <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 pretty print X.509 certificate extensions,
+suitable for display to a human.</p>
+<p>The output <em class="parameter"><code>out</code></em>
+ 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-x509-ext-print.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>exts</p></td>
+<td class="parameter_description"><p>The data to be printed</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>exts_size</p></td>
+<td class="parameter_description"><p>the number of available structures</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>format</p></td>
+<td class="parameter_description"><p>Indicate the format to use</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>out</p></td>
+<td class="parameter_description"><p>Newly allocated datum with null terminated string.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gnutls-x509-ext-print.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>
+</div>
+<div class="refsect1">
+<a name="gnutls-x509.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-COUNTRY-NAME:CAPS"></a><h3>GNUTLS_OID_X520_COUNTRY_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_COUNTRY_NAME "2.5.4.6"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS"></a><h3>GNUTLS_OID_X520_ORGANIZATION_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_ORGANIZATION_NAME "2.5.4.10"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS"></a><h3>GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME "2.5.4.11"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-COMMON-NAME:CAPS"></a><h3>GNUTLS_OID_X520_COMMON_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_COMMON_NAME "2.5.4.3"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-LOCALITY-NAME:CAPS"></a><h3>GNUTLS_OID_X520_LOCALITY_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_LOCALITY_NAME "2.5.4.7"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS"></a><h3>GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME "2.5.4.8"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-INITIALS:CAPS"></a><h3>GNUTLS_OID_X520_INITIALS</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_INITIALS "2.5.4.43"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS"></a><h3>GNUTLS_OID_X520_GENERATION_QUALIFIER</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_GENERATION_QUALIFIER "2.5.4.44"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-SURNAME:CAPS"></a><h3>GNUTLS_OID_X520_SURNAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_SURNAME "2.5.4.4"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-GIVEN-NAME:CAPS"></a><h3>GNUTLS_OID_X520_GIVEN_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_GIVEN_NAME "2.5.4.42"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-TITLE:CAPS"></a><h3>GNUTLS_OID_X520_TITLE</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_TITLE "2.5.4.12"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-DN-QUALIFIER:CAPS"></a><h3>GNUTLS_OID_X520_DN_QUALIFIER</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_DN_QUALIFIER "2.5.4.46"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-PSEUDONYM:CAPS"></a><h3>GNUTLS_OID_X520_PSEUDONYM</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_PSEUDONYM "2.5.4.65"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-POSTALCODE:CAPS"></a><h3>GNUTLS_OID_X520_POSTALCODE</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_POSTALCODE "2.5.4.17"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-X520-NAME:CAPS"></a><h3>GNUTLS_OID_X520_NAME</h3>
+<pre class="programlisting">#define GNUTLS_OID_X520_NAME "2.5.4.41"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-LDAP-DC:CAPS"></a><h3>GNUTLS_OID_LDAP_DC</h3>
+<pre class="programlisting">#define GNUTLS_OID_LDAP_DC "0.9.2342.19200300.100.1.25"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-LDAP-UID:CAPS"></a><h3>GNUTLS_OID_LDAP_UID</h3>
+<pre class="programlisting">#define GNUTLS_OID_LDAP_UID "0.9.2342.19200300.100.1.1"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKCS9-EMAIL:CAPS"></a><h3>GNUTLS_OID_PKCS9_EMAIL</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKCS9_EMAIL "1.2.840.113549.1.9.1"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS"></a><h3>GNUTLS_OID_PKIX_DATE_OF_BIRTH</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_DATE_OF_BIRTH "1.3.6.1.5.5.7.9.1"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS"></a><h3>GNUTLS_OID_PKIX_PLACE_OF_BIRTH</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_PLACE_OF_BIRTH "1.3.6.1.5.5.7.9.2"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-GENDER:CAPS"></a><h3>GNUTLS_OID_PKIX_GENDER</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_GENDER "1.3.6.1.5.5.7.9.3"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS"></a><h3>GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP "1.3.6.1.5.5.7.9.4"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS"></a><h3>GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE</h3>
+<pre class="programlisting">#define GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE "1.3.6.1.5.5.7.9.5"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-TLS-WWW-SERVER:CAPS"></a><h3>GNUTLS_KP_TLS_WWW_SERVER</h3>
+<pre class="programlisting">#define GNUTLS_KP_TLS_WWW_SERVER "1.3.6.1.5.5.7.3.1"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-TLS-WWW-CLIENT:CAPS"></a><h3>GNUTLS_KP_TLS_WWW_CLIENT</h3>
+<pre class="programlisting">#define GNUTLS_KP_TLS_WWW_CLIENT "1.3.6.1.5.5.7.3.2"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-CODE-SIGNING:CAPS"></a><h3>GNUTLS_KP_CODE_SIGNING</h3>
+<pre class="programlisting">#define GNUTLS_KP_CODE_SIGNING "1.3.6.1.5.5.7.3.3"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-MS-SMART-CARD-LOGON:CAPS"></a><h3>GNUTLS_KP_MS_SMART_CARD_LOGON</h3>
+<pre class="programlisting">#define GNUTLS_KP_MS_SMART_CARD_LOGON "1.3.6.1.4.1.311.20.2.2"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-EMAIL-PROTECTION:CAPS"></a><h3>GNUTLS_KP_EMAIL_PROTECTION</h3>
+<pre class="programlisting">#define GNUTLS_KP_EMAIL_PROTECTION "1.3.6.1.5.5.7.3.4"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-TIME-STAMPING:CAPS"></a><h3>GNUTLS_KP_TIME_STAMPING</h3>
+<pre class="programlisting">#define GNUTLS_KP_TIME_STAMPING "1.3.6.1.5.5.7.3.8"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-OCSP-SIGNING:CAPS"></a><h3>GNUTLS_KP_OCSP_SIGNING</h3>
+<pre class="programlisting">#define GNUTLS_KP_OCSP_SIGNING "1.3.6.1.5.5.7.3.9"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-IPSEC-IKE:CAPS"></a><h3>GNUTLS_KP_IPSEC_IKE</h3>
+<pre class="programlisting">#define GNUTLS_KP_IPSEC_IKE "1.3.6.1.5.5.7.3.17"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-ANY:CAPS"></a><h3>GNUTLS_KP_ANY</h3>
+<pre class="programlisting">#define GNUTLS_KP_ANY "2.5.29.37.0"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-KP-FLAG-DISALLOW-ANY:CAPS"></a><h3>GNUTLS_KP_FLAG_DISALLOW_ANY</h3>
+<pre class="programlisting">#define GNUTLS_KP_FLAG_DISALLOW_ANY 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-AIA:CAPS"></a><h3>GNUTLS_OID_AIA</h3>
+<pre class="programlisting">#define GNUTLS_OID_AIA "1.3.6.1.5.5.7.1.1"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-AD-OCSP:CAPS"></a><h3>GNUTLS_OID_AD_OCSP</h3>
+<pre class="programlisting">#define GNUTLS_OID_AD_OCSP "1.3.6.1.5.5.7.48.1"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-OID-AD-CAISSUERS:CAPS"></a><h3>GNUTLS_OID_AD_CAISSUERS</h3>
+<pre class="programlisting">#define GNUTLS_OID_AD_CAISSUERS "1.3.6.1.5.5.7.48.2"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FSAN-SET:CAPS"></a><h3>GNUTLS_FSAN_SET</h3>
+<pre class="programlisting">#define GNUTLS_FSAN_SET 0
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FSAN-APPEND:CAPS"></a><h3>GNUTLS_FSAN_APPEND</h3>
+<pre class="programlisting">#define GNUTLS_FSAN_APPEND 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FSAN-ENCODE-OCTET-STRING:CAPS"></a><h3>GNUTLS_FSAN_ENCODE_OCTET_STRING</h3>
+<pre class="programlisting">#define GNUTLS_FSAN_ENCODE_OCTET_STRING (1&lt;&lt;1)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-FSAN-ENCODE-UTF8-STRING:CAPS"></a><h3>GNUTLS_FSAN_ENCODE_UTF8_STRING</h3>
+<pre class="programlisting">#define GNUTLS_FSAN_ENCODE_UTF8_STRING (1&lt;&lt;2)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-SUBJECT-KEY-ID:CAPS"></a><h3>GNUTLS_X509EXT_OID_SUBJECT_KEY_ID</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_SUBJECT_KEY_ID "2.5.29.14"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-KEY-USAGE:CAPS"></a><h3>GNUTLS_X509EXT_OID_KEY_USAGE</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_KEY_USAGE "2.5.29.15"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-PRIVATE-KEY-USAGE-PERIOD:CAPS"></a><h3>GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD "2.5.29.16"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-SAN:CAPS"></a><h3>GNUTLS_X509EXT_OID_SAN</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_SAN "2.5.29.17"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-IAN:CAPS"></a><h3>GNUTLS_X509EXT_OID_IAN</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_IAN "2.5.29.18"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-BASIC-CONSTRAINTS:CAPS"></a><h3>GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS "2.5.29.19"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-NAME-CONSTRAINTS:CAPS"></a><h3>GNUTLS_X509EXT_OID_NAME_CONSTRAINTS</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_NAME_CONSTRAINTS "2.5.29.30"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-CRL-DIST-POINTS:CAPS"></a><h3>GNUTLS_X509EXT_OID_CRL_DIST_POINTS</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_CRL_DIST_POINTS "2.5.29.31"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-CRT-POLICY:CAPS"></a><h3>GNUTLS_X509EXT_OID_CRT_POLICY</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_CRT_POLICY "2.5.29.32"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-AUTHORITY-KEY-ID:CAPS"></a><h3>GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID "2.5.29.35"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-EXTENDED-KEY-USAGE:CAPS"></a><h3>GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE "2.5.29.37"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-INHIBIT-ANYPOLICY:CAPS"></a><h3>GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY "2.5.29.52"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-AUTHORITY-INFO-ACCESS:CAPS"></a><h3>GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS "1.3.6.1.5.5.7.1.1"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-PROXY-CRT-INFO:CAPS"></a><h3>GNUTLS_X509EXT_OID_PROXY_CRT_INFO</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_PROXY_CRT_INFO "1.3.6.1.5.5.7.1.14"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-TLSFEATURES:CAPS"></a><h3>GNUTLS_X509EXT_OID_TLSFEATURES</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_TLSFEATURES "1.3.6.1.5.5.7.1.24"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509EXT-OID-CT-SCT-V1:CAPS"></a><h3>GNUTLS_X509EXT_OID_CT_SCT_V1</h3>
+<pre class="programlisting">#define GNUTLS_X509EXT_OID_CT_SCT_V1 "1.3.6.1.4.1.11129.2.4.2"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509-OID-POLICY-ANY:CAPS"></a><h3>GNUTLS_X509_OID_POLICY_ANY</h3>
+<pre class="programlisting">#define GNUTLS_X509_OID_POLICY_ANY "2.5.29.54"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-import-flags"></a><h3>enum gnutls_certificate_import_flags</h3>
+<p>Enumeration of different certificate flags.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-import-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-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS"></a>GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS"></a>GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-X509-CRT-LIST-SORT:CAPS"></a>GNUTLS_X509_CRT_LIST_SORT</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crt-flags"></a><h3>enum gnutls_x509_crt_flags</h3>
+<div class="refsect3">
+<a name="gnutls-x509-crt-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-X509-CRT-FLAG-IGNORE-SANITY:CAPS"></a>GNUTLS_X509_CRT_FLAG_IGNORE_SANITY</p></td>
+<td> </td>
+<td> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-keyid-flags-t"></a><h3>enum gnutls_keyid_flags_t</h3>
+<p>Enumeration of different flags for the key ID functions.</p>
+<div class="refsect3">
+<a name="gnutls-keyid-flags-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-KEYID-USE-SHA1:CAPS"></a>GNUTLS_KEYID_USE_SHA1</p></td>
+<td class="enum_member_description">
+<p>Use SHA1 as the key ID algorithm (default).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEYID-USE-SHA256:CAPS"></a>GNUTLS_KEYID_USE_SHA256</p></td>
+<td class="enum_member_description">
+<p>Use SHA256 as the key ID algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEYID-USE-SHA512:CAPS"></a>GNUTLS_KEYID_USE_SHA512</p></td>
+<td class="enum_member_description">
+<p>Use SHA512 as the key ID algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEYID-USE-BEST-KNOWN:CAPS"></a>GNUTLS_KEYID_USE_BEST_KNOWN</p></td>
+<td class="enum_member_description">
+<p>Use the best known algorithm to calculate key ID. Using that option will make your program behavior depend on the version of gnutls linked with. That option has a cap of 64-bytes key IDs.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-info-access-what-t"></a><h3>enum gnutls_info_access_what_t</h3>
+<p>Enumeration of types for the <em class="parameter"><code>what</code></em>
+ parameter of
+<a class="link" href="gnutls-x509.html#gnutls-x509-crt-get-authority-info-access" title="gnutls_x509_crt_get_authority_info_access ()"><code class="function">gnutls_x509_crt_get_authority_info_access()</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-info-access-what-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-IA-ACCESSMETHOD-OID:CAPS"></a>GNUTLS_IA_ACCESSMETHOD_OID</p></td>
+<td class="enum_member_description">
+<p>Get accessMethod OID.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-IA-ACCESSLOCATION-GENERALNAME-TYPE:CAPS"></a>GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE</p></td>
+<td class="enum_member_description">
+<p>Get accessLocation name type.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-IA-URI:CAPS"></a>GNUTLS_IA_URI</p></td>
+<td class="enum_member_description">
+<p>Get accessLocation URI value.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-IA-UNKNOWN:CAPS"></a>GNUTLS_IA_UNKNOWN</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-IA-OCSP-URI:CAPS"></a>GNUTLS_IA_OCSP_URI</p></td>
+<td class="enum_member_description">
+<p>get accessLocation URI value for OCSP.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-IA-CAISSUERS-URI:CAPS"></a>GNUTLS_IA_CAISSUERS_URI</p></td>
+<td class="enum_member_description">
+<p>get accessLocation URI value for caIssuers.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-name-constraints-t"></a><h3>gnutls_x509_name_constraints_t</h3>
+<pre class="programlisting">typedef struct gnutls_name_constraints_st *gnutls_x509_name_constraints_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-EXT-FLAG-APPEND:CAPS"></a><h3>GNUTLS_EXT_FLAG_APPEND</h3>
+<pre class="programlisting">#define GNUTLS_EXT_FLAG_APPEND 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-NAME-CONSTRAINTS-FLAG-APPEND:CAPS"></a><h3>GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND</h3>
+<pre class="programlisting">#define GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND GNUTLS_EXT_FLAG_APPEND
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-CRL-REASON-SUPERSEEDED:CAPS"></a><h3>GNUTLS_CRL_REASON_SUPERSEEDED</h3>
+<pre class="programlisting">#define GNUTLS_CRL_REASON_SUPERSEEDED GNUTLS_CRL_REASON_SUPERSEDED,
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-reason-flags-t"></a><h3>enum gnutls_x509_crl_reason_flags_t</h3>
+<p>Enumeration of types for the CRL revocation reasons.</p>
+<div class="refsect3">
+<a name="gnutls-x509-crl-reason-flags-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-CRL-REASON-UNSPECIFIED:CAPS"></a>GNUTLS_CRL_REASON_UNSPECIFIED</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS"></a>GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN</p></td>
+<td class="enum_member_description">
+<p>The privileges were withdrawn from the owner.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS"></a>GNUTLS_CRL_REASON_CERTIFICATE_HOLD</p></td>
+<td class="enum_member_description">
+<p>The certificate is on hold.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS"></a>GNUTLS_CRL_REASON_CESSATION_OF_OPERATION</p></td>
+<td class="enum_member_description">
+<p>The end-entity is no longer operating.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-SUPERSEDED:CAPS"></a>GNUTLS_CRL_REASON_SUPERSEDED</p></td>
+<td class="enum_member_description">
+<p>There is a newer certificate of the owner.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS"></a>GNUTLS_CRL_REASON_AFFILIATION_CHANGED</p></td>
+<td class="enum_member_description">
+<p>The end-entity affiliation has changed.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS"></a>GNUTLS_CRL_REASON_CA_COMPROMISE</p></td>
+<td class="enum_member_description">
+<p>The CA was compromised.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS"></a>GNUTLS_CRL_REASON_KEY_COMPROMISE</p></td>
+<td class="enum_member_description">
+<p>The certificate's key was compromised.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-UNUSED:CAPS"></a>GNUTLS_CRL_REASON_UNUSED</p></td>
+<td class="enum_member_description">
+<p>The key was never used.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS"></a>GNUTLS_CRL_REASON_AA_COMPROMISE</p></td>
+<td class="enum_member_description">
+<p>AA compromised.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509-NO-WELL-DEFINED-EXPIRATION:CAPS"></a><h3>GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION</h3>
+<pre class="programlisting">#define GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION ((time_t)4294197631)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-spki-t"></a><h3>gnutls_x509_spki_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_spki_st *gnutls_x509_spki_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-tlsfeatures-t"></a><h3>gnutls_x509_tlsfeatures_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_tlsfeatures_st *gnutls_x509_tlsfeatures_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-MAX-QUALIFIERS:CAPS"></a><h3>GNUTLS_MAX_QUALIFIERS</h3>
+<pre class="programlisting">#define GNUTLS_MAX_QUALIFIERS 8
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-qualifier-t"></a><h3>enum gnutls_x509_qualifier_t</h3>
+<p>Enumeration of types for the X.509 qualifiers, of the certificate policy extension.</p>
+<div class="refsect3">
+<a name="gnutls-x509-qualifier-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-X509-QUALIFIER-UNKNOWN:CAPS"></a>GNUTLS_X509_QUALIFIER_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>Unknown qualifier.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-X509-QUALIFIER-URI:CAPS"></a>GNUTLS_X509_QUALIFIER_URI</p></td>
+<td class="enum_member_description">
+<p>A URL</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-X509-QUALIFIER-NOTICE:CAPS"></a>GNUTLS_X509_QUALIFIER_NOTICE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-policy-st"></a><h3>gnutls_x509_policy_st</h3>
+<pre class="programlisting">typedef struct {
+ char *oid;
+ unsigned int qualifiers;
+ struct {
+ gnutls_x509_qualifier_t type;
+ char *data;
+ unsigned int size;
+ } qualifier[GNUTLS_MAX_QUALIFIERS];
+} gnutls_x509_policy_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509-DN-OID-RETURN-OID:CAPS"></a><h3>GNUTLS_X509_DN_OID_RETURN_OID</h3>
+<pre class="programlisting">#define GNUTLS_X509_DN_OID_RETURN_OID 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-dn-t"></a><h3>gnutls_x509_dn_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_dn_st *gnutls_x509_dn_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-ava-st"></a><h3>gnutls_x509_ava_st</h3>
+<pre class="programlisting">typedef struct {
+ gnutls_datum_t oid;
+ gnutls_datum_t value;
+ unsigned long value_tag;
+} gnutls_x509_ava_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-X509-DN-FLAG-COMPAT:CAPS"></a><h3>GNUTLS_X509_DN_FLAG_COMPAT</h3>
+<pre class="programlisting">#define GNUTLS_X509_DN_FLAG_COMPAT 1
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-iter-t"></a><h3>gnutls_x509_crl_iter_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_crl_iter * gnutls_x509_crl_iter_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-certificate-count"></a><h3>gnutls_x509_crl_get_certificate_count</h3>
+<pre class="programlisting">#define gnutls_x509_crl_get_certificate_count gnutls_x509_crl_get_crt_count
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-crl-get-certificate"></a><h3>gnutls_x509_crl_get_certificate</h3>
+<pre class="programlisting">#define gnutls_x509_crl_get_certificate gnutls_x509_crl_get_crt_serial
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verify-flags"></a><h3>enum gnutls_certificate_verify_flags</h3>
+<p>Enumeration of different certificate verify flags. Additional
+verification profiles can be set using <a class="link" href="gnutls-x509.html#GNUTLS-PROFILE-TO-VFLAGS:CAPS" title="GNUTLS_PROFILE_TO_VFLAGS()"><code class="function">GNUTLS_PROFILE_TO_VFLAGS()</code></a>
+and <a class="link" href="gnutls-x509.html#gnutls-certificate-verification-profiles-t" title="enum gnutls_certificate_verification_profiles_t"><code class="literal">gnutls_certificate_verification_profiles_t</code></a>.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-verify-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-VERIFY-DISABLE-CA-SIGN:CAPS"></a>GNUTLS_VERIFY_DISABLE_CA_SIGN</p></td>
+<td class="enum_member_description">
+<p>If set a signer does not have to be
+a certificate authority. This flag should normally be disabled,
+unless you know what this means.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DO-NOT-ALLOW-IP-MATCHES:CAPS"></a>GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES</p></td>
+<td class="enum_member_description">
+<p>When verifying a hostname
+prevent textual IP addresses from matching IP addresses in the
+certificate. Treat the input only as a DNS name.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DO-NOT-ALLOW-SAME:CAPS"></a>GNUTLS_VERIFY_DO_NOT_ALLOW_SAME</p></td>
+<td class="enum_member_description">
+<p>If a certificate is not signed by
+anyone trusted but exists in the trusted CA list do not treat it
+as trusted.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-ALLOW-ANY-X509-V1-CA-CRT:CAPS"></a>GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT</p></td>
+<td class="enum_member_description">
+<p>Allow CA certificates that
+have version 1 (both root and intermediate). This might be
+dangerous since those haven't the basicConstraints
+extension. </p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD2:CAPS"></a>GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2</p></td>
+<td class="enum_member_description">
+<p>Allow certificates to be signed
+using the broken MD2 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD5:CAPS"></a>GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5</p></td>
+<td class="enum_member_description">
+<p>Allow certificates to be signed
+using the broken MD5 algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DISABLE-TIME-CHECKS:CAPS"></a>GNUTLS_VERIFY_DISABLE_TIME_CHECKS</p></td>
+<td class="enum_member_description">
+<p>Disable checking of activation
+and expiration validity periods of certificate chains. Don't set
+this unless you understand the security implications.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DISABLE-TRUSTED-TIME-CHECKS:CAPS"></a>GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS</p></td>
+<td class="enum_member_description">
+<p>If set a signer in the trusted
+list is never checked for expiration or activation.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DO-NOT-ALLOW-X509-V1-CA-CRT:CAPS"></a>GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT</p></td>
+<td class="enum_member_description">
+<p>Do not allow trusted CA
+certificates that have version 1. This option is to be used
+to deprecate all certificates of version 1.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DISABLE-CRL-CHECKS:CAPS"></a>GNUTLS_VERIFY_DISABLE_CRL_CHECKS</p></td>
+<td class="enum_member_description">
+<p>Disable checking for validity
+using certificate revocation lists or the available OCSP data.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-ALLOW-UNSORTED-CHAIN:CAPS"></a>GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN</p></td>
+<td class="enum_member_description">
+<p>A certificate chain is tolerated
+if unsorted (the case with many TLS servers out there). This is the
+default since GnuTLS 3.1.4.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DO-NOT-ALLOW-UNSORTED-CHAIN:CAPS"></a>GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN</p></td>
+<td class="enum_member_description">
+<p>Do not tolerate an unsorted
+certificate chain.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-DO-NOT-ALLOW-WILDCARDS:CAPS"></a>GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS</p></td>
+<td class="enum_member_description">
+<p>When including a hostname
+check in the verification, do not consider any wildcards.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-USE-TLS1-RSA:CAPS"></a>GNUTLS_VERIFY_USE_TLS1_RSA</p></td>
+<td class="enum_member_description">
+<p>This indicates that a (raw) RSA signature is provided
+as in the TLS 1.0 protocol. Not all functions accept this flag.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-IGNORE-UNKNOWN-CRIT-EXTENSIONS:CAPS"></a>GNUTLS_VERIFY_IGNORE_UNKNOWN_CRIT_EXTENSIONS</p></td>
+<td class="enum_member_description">
+<p>This signals the verification
+process, not to fail on unknown critical extensions.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-ALLOW-SIGN-WITH-SHA1:CAPS"></a>GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1</p></td>
+<td class="enum_member_description">
+<p>Allow certificates to be signed
+using the broken SHA1 hash algorithm.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-VERIFY-RSA-PSS-FIXED-SALT-LENGTH:CAPS"></a>GNUTLS_VERIFY_RSA_PSS_FIXED_SALT_LENGTH</p></td>
+<td class="enum_member_description">
+<p>Disallow RSA-PSS signatures made
+with mismatching salt length with digest length, as mandated in RFC 8446
+4.2.3.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-VERIFY-ALLOW-BROKEN:CAPS"></a><h3>GNUTLS_VERIFY_ALLOW_BROKEN</h3>
+<pre class="programlisting">#define GNUTLS_VERIFY_ALLOW_BROKEN (GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2|GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-certificate-verification-profiles-t"></a><h3>enum gnutls_certificate_verification_profiles_t</h3>
+<p>Enumeration of different certificate verification profiles.</p>
+<div class="refsect3">
+<a name="gnutls-certificate-verification-profiles-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-PROFILE-UNKNOWN:CAPS"></a>GNUTLS_PROFILE_UNKNOWN</p></td>
+<td class="enum_member_description">
+<p>An invalid/unknown profile.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-VERY-WEAK:CAPS"></a>GNUTLS_PROFILE_VERY_WEAK</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+corresponds to <em class="parameter"><code>GNUTLS_SEC_PARAM_VERY_WEAK</code></em>
+ (64 bits)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-LOW:CAPS"></a>GNUTLS_PROFILE_LOW</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+corresponds to <em class="parameter"><code>GNUTLS_SEC_PARAM_LOW</code></em>
+ (80 bits)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-LEGACY:CAPS"></a>GNUTLS_PROFILE_LEGACY</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+corresponds to <em class="parameter"><code>GNUTLS_SEC_PARAM_LEGACY</code></em>
+ (96 bits)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-MEDIUM:CAPS"></a>GNUTLS_PROFILE_MEDIUM</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+corresponds to <em class="parameter"><code>GNUTLS_SEC_PARAM_MEDIUM</code></em>
+ (112 bits)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-HIGH:CAPS"></a>GNUTLS_PROFILE_HIGH</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+corresponds to <em class="parameter"><code>GNUTLS_SEC_PARAM_HIGH</code></em>
+ (128 bits)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-ULTRA:CAPS"></a>GNUTLS_PROFILE_ULTRA</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+corresponds to <em class="parameter"><code>GNUTLS_SEC_PARAM_ULTRA</code></em>
+ (192 bits)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-FUTURE:CAPS"></a>GNUTLS_PROFILE_FUTURE</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+corresponds to <em class="parameter"><code>GNUTLS_SEC_PARAM_FUTURE</code></em>
+ (256 bits)</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-SUITEB128:CAPS"></a>GNUTLS_PROFILE_SUITEB128</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+applies the SUITEB128 rules</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PROFILE-SUITEB192:CAPS"></a>GNUTLS_PROFILE_SUITEB192</p></td>
+<td class="enum_member_description">
+<p>A verification profile that
+applies the SUITEB192 rules</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-VFLAGS-PROFILE-MASK:CAPS"></a><h3>GNUTLS_VFLAGS_PROFILE_MASK</h3>
+<pre class="programlisting">#define GNUTLS_VFLAGS_PROFILE_MASK (0xff000000)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS8-PLAIN:CAPS"></a><h3>GNUTLS_PKCS8_PLAIN</h3>
+<pre class="programlisting">#define GNUTLS_PKCS8_PLAIN GNUTLS_PKCS_PLAIN
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS"></a><h3>GNUTLS_PKCS8_USE_PKCS12_3DES</h3>
+<pre class="programlisting">#define GNUTLS_PKCS8_USE_PKCS12_3DES GNUTLS_PKCS_PKCS12_3DES
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS"></a><h3>GNUTLS_PKCS8_USE_PKCS12_ARCFOUR</h3>
+<pre class="programlisting">#define GNUTLS_PKCS8_USE_PKCS12_ARCFOUR GNUTLS_PKCS_PKCS12_ARCFOUR
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS"></a><h3>GNUTLS_PKCS8_USE_PKCS12_RC2_40</h3>
+<pre class="programlisting">#define GNUTLS_PKCS8_USE_PKCS12_RC2_40 GNUTLS_PKCS_PKCS12_RC2_40
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-pkcs-encrypt-flags-t"></a><h3>enum gnutls_pkcs_encrypt_flags_t</h3>
+<p>Enumeration of different PKCS encryption flags.</p>
+<div class="refsect3">
+<a name="gnutls-pkcs-encrypt-flags-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-PKCS-PLAIN:CAPS"></a>GNUTLS_PKCS_PLAIN</p></td>
+<td class="enum_member_description">
+<p>Unencrypted private key.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PKCS12-3DES:CAPS"></a>GNUTLS_PKCS_PKCS12_3DES</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 3DES.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PKCS12-ARCFOUR:CAPS"></a>GNUTLS_PKCS_PKCS12_ARCFOUR</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 ARCFOUR.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PKCS12-RC2-40:CAPS"></a>GNUTLS_PKCS_PKCS12_RC2_40</p></td>
+<td class="enum_member_description">
+<p>PKCS-12 RC2-40.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-3DES:CAPS"></a>GNUTLS_PKCS_PBES2_3DES</p></td>
+<td class="enum_member_description">
+<p>PBES2 3DES.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-AES-128:CAPS"></a>GNUTLS_PKCS_PBES2_AES_128</p></td>
+<td class="enum_member_description">
+<p>PBES2 AES-128.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-AES-192:CAPS"></a>GNUTLS_PKCS_PBES2_AES_192</p></td>
+<td class="enum_member_description">
+<p>PBES2 AES-192.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-AES-256:CAPS"></a>GNUTLS_PKCS_PBES2_AES_256</p></td>
+<td class="enum_member_description">
+<p>PBES2 AES-256.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-NULL-PASSWORD:CAPS"></a>GNUTLS_PKCS_NULL_PASSWORD</p></td>
+<td class="enum_member_description">
+<p>Some schemas distinguish between an empty and a NULL password.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-DES:CAPS"></a>GNUTLS_PKCS_PBES2_DES</p></td>
+<td class="enum_member_description">
+<p>PBES2 single DES.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES1-DES-MD5:CAPS"></a>GNUTLS_PKCS_PBES1_DES_MD5</p></td>
+<td class="enum_member_description">
+<p>PBES1 with single DES; for compatibility with openssl only.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-GOST-TC26Z:CAPS"></a>GNUTLS_PKCS_PBES2_GOST_TC26Z</p></td>
+<td class="enum_member_description">
+<p>PBES2 GOST 28147-89 CFB with TC26-Z S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-GOST-CPA:CAPS"></a>GNUTLS_PKCS_PBES2_GOST_CPA</p></td>
+<td class="enum_member_description">
+<p>PBES2 GOST 28147-89 CFB with CryptoPro-A S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-GOST-CPB:CAPS"></a>GNUTLS_PKCS_PBES2_GOST_CPB</p></td>
+<td class="enum_member_description">
+<p>PBES2 GOST 28147-89 CFB with CryptoPro-B S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-GOST-CPC:CAPS"></a>GNUTLS_PKCS_PBES2_GOST_CPC</p></td>
+<td class="enum_member_description">
+<p>PBES2 GOST 28147-89 CFB with CryptoPro-C S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-PKCS-PBES2-GOST-CPD:CAPS"></a>GNUTLS_PKCS_PBES2_GOST_CPD</p></td>
+<td class="enum_member_description">
+<p>PBES2 GOST 28147-89 CFB with CryptoPro-D S-box.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PKCS12-3DES:CAPS"></a><h3>GNUTLS_PKCS_USE_PKCS12_3DES</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PKCS12_3DES GNUTLS_PKCS_PKCS12_3DES
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS"></a><h3>GNUTLS_PKCS_USE_PKCS12_ARCFOUR</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PKCS12_ARCFOUR GNUTLS_PKCS_PKCS12_ARCFOUR
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS"></a><h3>GNUTLS_PKCS_USE_PKCS12_RC2_40</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PKCS12_RC2_40 GNUTLS_PKCS_PKCS12_RC2_40
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-3DES:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_3DES</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_3DES GNUTLS_PKCS_PBES2_3DES
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-AES-128:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_AES_128</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_AES_128 GNUTLS_PKCS_PBES2_AES_128
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-AES-192:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_AES_192</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_AES_192 GNUTLS_PKCS_PBES2_AES_192
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-AES-256:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_AES_256</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_AES_256 GNUTLS_PKCS_PBES2_AES_256
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-GOST-TC26Z:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_GOST_TC26Z</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_GOST_TC26Z GNUTLS_PKCS_PBES2_GOST_TC26Z
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-GOST-CPA:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_GOST_CPA</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_GOST_CPA GNUTLS_PKCS_PBES2_GOST_CPA
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-GOST-CPB:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_GOST_CPB</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_GOST_CPB GNUTLS_PKCS_PBES2_GOST_CPB
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-GOST-CPC:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_GOST_CPC</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_GOST_CPC GNUTLS_PKCS_PBES2_GOST_CPC
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GNUTLS-PKCS-USE-PBES2-GOST-CPD:CAPS"></a><h3>GNUTLS_PKCS_USE_PBES2_GOST_CPD</h3>
+<pre class="programlisting">#define GNUTLS_PKCS_USE_PBES2_GOST_CPD GNUTLS_PKCS_PBES2_GOST_CPD
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-keygen-types-t"></a><h3>enum gnutls_keygen_types_t</h3>
+<p>Enumeration of different key generation data options.</p>
+<div class="refsect3">
+<a name="gnutls-keygen-types-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-KEYGEN-SEED:CAPS"></a>GNUTLS_KEYGEN_SEED</p></td>
+<td class="enum_member_description">
+<p>Specifies the seed to be used in key generation.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEYGEN-DIGEST:CAPS"></a>GNUTLS_KEYGEN_DIGEST</p></td>
+<td class="enum_member_description">
+<p>The size field specifies the hash algorithm to be used in key generation.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-KEYGEN-SPKI:CAPS"></a>GNUTLS_KEYGEN_SPKI</p></td>
+<td class="enum_member_description">
+<p>data points to a <a class="link" href="gnutls-x509.html#gnutls-x509-spki-t" title="gnutls_x509_spki_t"><code class="literal">gnutls_x509_spki_t</code></a> structure; it is not used after the key generation call.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-keygen-data-st"></a><h3>gnutls_keygen_data_st</h3>
+<pre class="programlisting">typedef struct {
+ gnutls_keygen_types_t type;
+ unsigned char *data;
+ unsigned int size;
+} gnutls_keygen_data_st;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-t"></a><h3>gnutls_x509_trust_list_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_trust_list_st *gnutls_x509_trust_list_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-trust-list-iter-t"></a><h3>gnutls_x509_trust_list_iter_t</h3>
+<pre class="programlisting">typedef struct gnutls_x509_trust_list_iter *gnutls_x509_trust_list_iter_t;
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-trust-list-flags-t"></a><h3>enum gnutls_trust_list_flags_t</h3>
+<p>Enumeration of different certificate trust list flags.</p>
+<div class="refsect3">
+<a name="gnutls-trust-list-flags-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-TL-VERIFY-CRL:CAPS"></a>GNUTLS_TL_VERIFY_CRL</p></td>
+<td class="enum_member_description">
+<p>If any CRLs are provided they will be verified for validity
+prior to be added. The CA certificates that will be used for verification are the
+ones already added in the trusted list.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TL-USE-IN-TLS:CAPS"></a>GNUTLS_TL_USE_IN_TLS</p></td>
+<td class="enum_member_description">
+<p>Internal flag used by GnuTLS. If provided the trust list
+structure will cache a copy of CA DNs to be used in the certificate request
+TLS message.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TL-NO-DUPLICATES:CAPS"></a>GNUTLS_TL_NO_DUPLICATES</p></td>
+<td class="enum_member_description">
+<p>If this flag is specified, a function adding certificates
+will check and eliminate any duplicates.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TL-NO-DUPLICATE-KEY:CAPS"></a>GNUTLS_TL_NO_DUPLICATE_KEY</p></td>
+<td class="enum_member_description">
+<p>If this flag is specified, a certificate sharing the
+same key as a previously added on will not be added.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TL-GET-COPY:CAPS"></a>GNUTLS_TL_GET_COPY</p></td>
+<td class="enum_member_description">
+<p>The semantics of this flag are documented to the functions which
+are applicable. In general, on returned value, the function will provide a copy
+if this flag is provided, rather than a pointer to internal data.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GNUTLS-TL-FAIL-ON-INVALID-CRL:CAPS"></a>GNUTLS_TL_FAIL_ON_INVALID_CRL</p></td>
+<td class="enum_member_description">
+<p>If an CRL is added which cannot be validated return
+an error instead of ignoring (must be used with <a class="link" href="gnutls-x509.html#GNUTLS-TL-VERIFY-CRL:CAPS"><code class="literal">GNUTLS_TL_VERIFY_CRL</code></a>).</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gnutls-x509-ext-st"></a><h3>gnutls_x509_ext_st</h3>
+<pre class="programlisting">typedef struct {
+ char *oid;
+ unsigned int critical;
+ gnutls_datum_t data;
+} gnutls_x509_ext_st;
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/gnutls.devhelp2 b/doc/reference/html/gnutls.devhelp2
new file mode 100644
index 0000000..f63309e
--- /dev/null
+++ b/doc/reference/html/gnutls.devhelp2
@@ -0,0 +1,2330 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<book xmlns="http://www.devhelp.net/book" title="GnuTLS API Reference Manual" link="index.html" author="" name="gnutls" version="2" language="c" online="https://www.gnutls.org/reference/">
+ <chapters>
+ <sub name="GnuTLS API Reference Manual" link="intro.html">
+ <sub name="gnutls" link="gnutls-gnutls.html"/>
+ <sub name="abstract" link="gnutls-abstract.html"/>
+ <sub name="x509" link="gnutls-x509.html"/>
+ <sub name="openpgp" link="gnutls-openpgp.html"/>
+ <sub name="crypto" link="gnutls-crypto.html"/>
+ <sub name="pkcs11" link="gnutls-pkcs11.html"/>
+ <sub name="pkcs12" link="gnutls-pkcs12.html"/>
+ <sub name="ocsp" link="gnutls-ocsp.html"/>
+ <sub name="dtls" link="gnutls-dtls.html"/>
+ <sub name="tpm" link="gnutls-tpm.html"/>
+ </sub>
+ <sub name="API Index" link="api-index-full.html"/>
+ </chapters>
+ <functions>
+ <keyword type="function" name="gnutls_pk_algorithm_get_name ()" link="gnutls-gnutls.html#gnutls-pk-algorithm-get-name"/>
+ <keyword type="macro" name="GNUTLS_CURVE_TO_BITS()" link="gnutls-gnutls.html#GNUTLS-CURVE-TO-BITS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_BITS_TO_CURVE()" link="gnutls-gnutls.html#GNUTLS-BITS-TO-CURVE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_BITS_ARE_CURVE()" link="gnutls-gnutls.html#GNUTLS-BITS-ARE-CURVE:CAPS"/>
+ <keyword type="function" name="gnutls_init ()" link="gnutls-gnutls.html#gnutls-init"/>
+ <keyword type="function" name="gnutls_deinit ()" link="gnutls-gnutls.html#gnutls-deinit"/>
+ <keyword type="function" name="gnutls_bye ()" link="gnutls-gnutls.html#gnutls-bye"/>
+ <keyword type="function" name="gnutls_handshake ()" link="gnutls-gnutls.html#gnutls-handshake"/>
+ <keyword type="function" name="gnutls_reauth ()" link="gnutls-gnutls.html#gnutls-reauth"/>
+ <keyword type="function" name="gnutls_handshake_set_timeout ()" link="gnutls-gnutls.html#gnutls-handshake-set-timeout" since="3.1.0"/>
+ <keyword type="function" name="gnutls_rehandshake ()" link="gnutls-gnutls.html#gnutls-rehandshake"/>
+ <keyword type="function" name="gnutls_session_key_update ()" link="gnutls-gnutls.html#gnutls-session-key-update" since="3.6.3"/>
+ <keyword type="function" name="gnutls_alert_get ()" link="gnutls-gnutls.html#gnutls-alert-get"/>
+ <keyword type="function" name="gnutls_alert_send ()" link="gnutls-gnutls.html#gnutls-alert-send"/>
+ <keyword type="function" name="gnutls_alert_send_appropriate ()" link="gnutls-gnutls.html#gnutls-alert-send-appropriate"/>
+ <keyword type="function" name="gnutls_alert_get_name ()" link="gnutls-gnutls.html#gnutls-alert-get-name"/>
+ <keyword type="function" name="gnutls_alert_get_strname ()" link="gnutls-gnutls.html#gnutls-alert-get-strname" since="3.0"/>
+ <keyword type="function" name="gnutls_pk_bits_to_sec_param ()" link="gnutls-gnutls.html#gnutls-pk-bits-to-sec-param" since="2.12.0"/>
+ <keyword type="function" name="gnutls_sec_param_get_name ()" link="gnutls-gnutls.html#gnutls-sec-param-get-name" since="2.12.0"/>
+ <keyword type="function" name="gnutls_sec_param_to_pk_bits ()" link="gnutls-gnutls.html#gnutls-sec-param-to-pk-bits" since="2.12.0"/>
+ <keyword type="function" name="gnutls_sec_param_to_symmetric_bits ()" link="gnutls-gnutls.html#gnutls-sec-param-to-symmetric-bits" since="3.3.0"/>
+ <keyword type="function" name="gnutls_group_get ()" link="gnutls-gnutls.html#gnutls-group-get" since="3.6.0"/>
+ <keyword type="function" name="gnutls_cipher_get ()" link="gnutls-gnutls.html#gnutls-cipher-get"/>
+ <keyword type="function" name="gnutls_early_cipher_get ()" link="gnutls-gnutls.html#gnutls-early-cipher-get" since="3.7.2"/>
+ <keyword type="function" name="gnutls_kx_get ()" link="gnutls-gnutls.html#gnutls-kx-get"/>
+ <keyword type="function" name="gnutls_mac_get ()" link="gnutls-gnutls.html#gnutls-mac-get"/>
+ <keyword type="function" name="gnutls_prf_hash_get ()" link="gnutls-gnutls.html#gnutls-prf-hash-get" since="3.6.13"/>
+ <keyword type="function" name="gnutls_early_prf_hash_get ()" link="gnutls-gnutls.html#gnutls-early-prf-hash-get" since="3.7.2"/>
+ <keyword type="function" name="gnutls_certificate_type_get ()" link="gnutls-gnutls.html#gnutls-certificate-type-get"/>
+ <keyword type="function" name="gnutls_certificate_type_get2 ()" link="gnutls-gnutls.html#gnutls-certificate-type-get2" since="3.6.4"/>
+ <keyword type="function" name="gnutls_sign_algorithm_get ()" link="gnutls-gnutls.html#gnutls-sign-algorithm-get" since="3.1.1"/>
+ <keyword type="function" name="gnutls_sign_algorithm_get_client ()" link="gnutls-gnutls.html#gnutls-sign-algorithm-get-client" since="3.1.11"/>
+ <keyword type="function" name="gnutls_sign_algorithm_get_requested ()" link="gnutls-gnutls.html#gnutls-sign-algorithm-get-requested" since="2.10.0"/>
+ <keyword type="function" name="gnutls_cipher_get_name ()" link="gnutls-gnutls.html#gnutls-cipher-get-name"/>
+ <keyword type="function" name="gnutls_oid_to_digest ()" link="gnutls-gnutls.html#gnutls-oid-to-digest" since="3.4.3"/>
+ <keyword type="function" name="gnutls_ecc_curve_set_enabled ()" link="gnutls-gnutls.html#gnutls-ecc-curve-set-enabled" since="3.7.3"/>
+ <keyword type="function" name="gnutls_sign_set_secure ()" link="gnutls-gnutls.html#gnutls-sign-set-secure" since="3.7.3"/>
+ <keyword type="function" name="gnutls_sign_set_secure_for_certs ()" link="gnutls-gnutls.html#gnutls-sign-set-secure-for-certs" since="3.7.3"/>
+ <keyword type="function" name="gnutls_digest_set_secure ()" link="gnutls-gnutls.html#gnutls-digest-set-secure" since="3.7.3"/>
+ <keyword type="function" name="gnutls_protocol_set_enabled ()" link="gnutls-gnutls.html#gnutls-protocol-set-enabled" since="3.7.3"/>
+ <keyword type="function" name="gnutls_error_is_fatal ()" link="gnutls-gnutls.html#gnutls-error-is-fatal"/>
+ <keyword type="function" name="gnutls_perror ()" link="gnutls-gnutls.html#gnutls-perror"/>
+ <keyword type="function" name="gnutls_strerror ()" link="gnutls-gnutls.html#gnutls-strerror"/>
+ <keyword type="function" name="gnutls_handshake_set_random ()" link="gnutls-gnutls.html#gnutls-handshake-set-random"/>
+ <keyword type="function" name="gnutls_handshake_get_last_out ()" link="gnutls-gnutls.html#gnutls-handshake-get-last-out"/>
+ <keyword type="function" name="gnutls_handshake_get_last_in ()" link="gnutls-gnutls.html#gnutls-handshake-get-last-in"/>
+ <keyword type="function" name="gnutls_heartbeat_ping ()" link="gnutls-gnutls.html#gnutls-heartbeat-ping" since="3.1.2"/>
+ <keyword type="function" name="gnutls_heartbeat_pong ()" link="gnutls-gnutls.html#gnutls-heartbeat-pong" since="3.1.2"/>
+ <keyword type="function" name="gnutls_record_set_timeout ()" link="gnutls-gnutls.html#gnutls-record-set-timeout" since="3.1.7"/>
+ <keyword type="function" name="gnutls_record_disable_padding ()" link="gnutls-gnutls.html#gnutls-record-disable-padding"/>
+ <keyword type="function" name="gnutls_record_cork ()" link="gnutls-gnutls.html#gnutls-record-cork" since="3.1.9"/>
+ <keyword type="function" name="gnutls_record_uncork ()" link="gnutls-gnutls.html#gnutls-record-uncork" since="3.1.9"/>
+ <keyword type="function" name="gnutls_record_discard_queued ()" link="gnutls-gnutls.html#gnutls-record-discard-queued" since="3.4.0"/>
+ <keyword type="function" name="gnutls_record_get_state ()" link="gnutls-gnutls.html#gnutls-record-get-state"/>
+ <keyword type="function" name="gnutls_record_set_state ()" link="gnutls-gnutls.html#gnutls-record-set-state"/>
+ <keyword type="function" name="gnutls_range_split ()" link="gnutls-gnutls.html#gnutls-range-split"/>
+ <keyword type="function" name="gnutls_record_send ()" link="gnutls-gnutls.html#gnutls-record-send"/>
+ <keyword type="function" name="gnutls_record_send2 ()" link="gnutls-gnutls.html#gnutls-record-send2" since="3.6.3"/>
+ <keyword type="function" name="gnutls_record_send_range ()" link="gnutls-gnutls.html#gnutls-record-send-range"/>
+ <keyword type="function" name="gnutls_record_send_file ()" link="gnutls-gnutls.html#gnutls-record-send-file"/>
+ <keyword type="function" name="gnutls_record_recv ()" link="gnutls-gnutls.html#gnutls-record-recv"/>
+ <keyword type="function" name="gnutls_record_recv_packet ()" link="gnutls-gnutls.html#gnutls-record-recv-packet" since="3.3.5"/>
+ <keyword type="function" name="gnutls_packet_get ()" link="gnutls-gnutls.html#gnutls-packet-get" since="3.3.5"/>
+ <keyword type="function" name="gnutls_packet_deinit ()" link="gnutls-gnutls.html#gnutls-packet-deinit" since="3.3.5"/>
+ <keyword type="function" name="gnutls_record_recv_seq ()" link="gnutls-gnutls.html#gnutls-record-recv-seq" since="3.0"/>
+ <keyword type="function" name="gnutls_record_overhead_size ()" link="gnutls-gnutls.html#gnutls-record-overhead-size" since="3.2.2"/>
+ <keyword type="function" name="gnutls_est_record_overhead_size ()" link="gnutls-gnutls.html#gnutls-est-record-overhead-size" since="3.2.2"/>
+ <keyword type="macro" name="gnutls_record_set_max_empty_records()" link="gnutls-gnutls.html#gnutls-record-set-max-empty-records"/>
+ <keyword type="function" name="gnutls_record_can_use_length_hiding ()" link="gnutls-gnutls.html#gnutls-record-can-use-length-hiding"/>
+ <keyword type="function" name="gnutls_record_get_direction ()" link="gnutls-gnutls.html#gnutls-record-get-direction"/>
+ <keyword type="function" name="gnutls_record_get_max_size ()" link="gnutls-gnutls.html#gnutls-record-get-max-size"/>
+ <keyword type="function" name="gnutls_record_set_max_size ()" link="gnutls-gnutls.html#gnutls-record-set-max-size" deprecated=""/>
+ <keyword type="function" name="gnutls_record_set_max_recv_size ()" link="gnutls-gnutls.html#gnutls-record-set-max-recv-size" since="3.6.8"/>
+ <keyword type="function" name="gnutls_record_check_pending ()" link="gnutls-gnutls.html#gnutls-record-check-pending"/>
+ <keyword type="function" name="gnutls_record_check_corked ()" link="gnutls-gnutls.html#gnutls-record-check-corked" since="3.2.8"/>
+ <keyword type="function" name="gnutls_record_get_max_early_data_size ()" link="gnutls-gnutls.html#gnutls-record-get-max-early-data-size" since="3.6.5"/>
+ <keyword type="function" name="gnutls_record_set_max_early_data_size ()" link="gnutls-gnutls.html#gnutls-record-set-max-early-data-size" since="3.6.4"/>
+ <keyword type="function" name="gnutls_record_send_early_data ()" link="gnutls-gnutls.html#gnutls-record-send-early-data" since="3.6.5"/>
+ <keyword type="function" name="gnutls_record_recv_early_data ()" link="gnutls-gnutls.html#gnutls-record-recv-early-data" since="3.6.5"/>
+ <keyword type="function" name="gnutls_session_force_valid ()" link="gnutls-gnutls.html#gnutls-session-force-valid"/>
+ <keyword type="function" name="gnutls_prf ()" link="gnutls-gnutls.html#gnutls-prf"/>
+ <keyword type="function" name="gnutls_prf_rfc5705 ()" link="gnutls-gnutls.html#gnutls-prf-rfc5705" since="3.4.4"/>
+ <keyword type="function" name="gnutls_prf_early ()" link="gnutls-gnutls.html#gnutls-prf-early" since="3.6.8"/>
+ <keyword type="function" name="gnutls_prf_raw ()" link="gnutls-gnutls.html#gnutls-prf-raw"/>
+ <keyword type="function" name="gnutls_server_name_set ()" link="gnutls-gnutls.html#gnutls-server-name-set"/>
+ <keyword type="function" name="gnutls_server_name_get ()" link="gnutls-gnutls.html#gnutls-server-name-get"/>
+ <keyword type="function" name="gnutls_heartbeat_get_timeout ()" link="gnutls-gnutls.html#gnutls-heartbeat-get-timeout" since="3.1.2"/>
+ <keyword type="function" name="gnutls_heartbeat_set_timeouts ()" link="gnutls-gnutls.html#gnutls-heartbeat-set-timeouts" since="3.1.2"/>
+ <keyword type="function" name="gnutls_heartbeat_enable ()" link="gnutls-gnutls.html#gnutls-heartbeat-enable" since="3.1.2"/>
+ <keyword type="function" name="gnutls_heartbeat_allowed ()" link="gnutls-gnutls.html#gnutls-heartbeat-allowed" since="3.1.2"/>
+ <keyword type="function" name="gnutls_safe_renegotiation_status ()" link="gnutls-gnutls.html#gnutls-safe-renegotiation-status" since="2.10.0"/>
+ <keyword type="function" name="gnutls_session_ext_master_secret_status ()" link="gnutls-gnutls.html#gnutls-session-ext-master-secret-status"/>
+ <keyword type="function" name="gnutls_session_etm_status ()" link="gnutls-gnutls.html#gnutls-session-etm-status"/>
+ <keyword type="function" name="gnutls_session_get_flags ()" link="gnutls-gnutls.html#gnutls-session-get-flags" since="3.5.0"/>
+ <keyword type="function" name="gnutls_session_ticket_key_generate ()" link="gnutls-gnutls.html#gnutls-session-ticket-key-generate" since="2.10.0"/>
+ <keyword type="function" name="gnutls_session_ticket_enable_client ()" link="gnutls-gnutls.html#gnutls-session-ticket-enable-client" since="2.10.0"/>
+ <keyword type="function" name="gnutls_session_ticket_enable_server ()" link="gnutls-gnutls.html#gnutls-session-ticket-enable-server" since="2.10.0"/>
+ <keyword type="function" name="gnutls_session_ticket_send ()" link="gnutls-gnutls.html#gnutls-session-ticket-send"/>
+ <keyword type="function" name="gnutls_srtp_set_profile ()" link="gnutls-gnutls.html#gnutls-srtp-set-profile"/>
+ <keyword type="function" name="gnutls_srtp_set_profile_direct ()" link="gnutls-gnutls.html#gnutls-srtp-set-profile-direct"/>
+ <keyword type="function" name="gnutls_srtp_get_selected_profile ()" link="gnutls-gnutls.html#gnutls-srtp-get-selected-profile"/>
+ <keyword type="function" name="gnutls_srtp_get_profile_name ()" link="gnutls-gnutls.html#gnutls-srtp-get-profile-name"/>
+ <keyword type="function" name="gnutls_srtp_get_profile_id ()" link="gnutls-gnutls.html#gnutls-srtp-get-profile-id"/>
+ <keyword type="function" name="gnutls_srtp_get_keys ()" link="gnutls-gnutls.html#gnutls-srtp-get-keys"/>
+ <keyword type="function" name="gnutls_srtp_set_mki ()" link="gnutls-gnutls.html#gnutls-srtp-set-mki"/>
+ <keyword type="function" name="gnutls_srtp_get_mki ()" link="gnutls-gnutls.html#gnutls-srtp-get-mki"/>
+ <keyword type="function" name="gnutls_compress_certificate_get_selected_method ()" link="gnutls-gnutls.html#gnutls-compress-certificate-get-selected-method"/>
+ <keyword type="function" name="gnutls_compress_certificate_set_methods ()" link="gnutls-gnutls.html#gnutls-compress-certificate-set-methods"/>
+ <keyword type="function" name="gnutls_alpn_get_selected_protocol ()" link="gnutls-gnutls.html#gnutls-alpn-get-selected-protocol"/>
+ <keyword type="function" name="gnutls_alpn_set_protocols ()" link="gnutls-gnutls.html#gnutls-alpn-set-protocols"/>
+ <keyword type="function" name="gnutls_key_generate ()" link="gnutls-gnutls.html#gnutls-key-generate" since="3.0"/>
+ <keyword type="function" name="gnutls_priority_init ()" link="gnutls-gnutls.html#gnutls-priority-init"/>
+ <keyword type="function" name="gnutls_priority_init2 ()" link="gnutls-gnutls.html#gnutls-priority-init2" since="3.6.3"/>
+ <keyword type="function" name="gnutls_priority_deinit ()" link="gnutls-gnutls.html#gnutls-priority-deinit"/>
+ <keyword type="function" name="gnutls_priority_get_cipher_suite_index ()" link="gnutls-gnutls.html#gnutls-priority-get-cipher-suite-index" since="3.0.9"/>
+ <keyword type="function" name="gnutls_priority_string_list ()" link="gnutls-gnutls.html#gnutls-priority-string-list" since="3.4.0"/>
+ <keyword type="function" name="gnutls_priority_set ()" link="gnutls-gnutls.html#gnutls-priority-set"/>
+ <keyword type="function" name="gnutls_priority_set_direct ()" link="gnutls-gnutls.html#gnutls-priority-set-direct"/>
+ <keyword type="function" name="gnutls_priority_certificate_type_list ()" link="gnutls-gnutls.html#gnutls-priority-certificate-type-list" since="3.0"/>
+ <keyword type="function" name="gnutls_priority_certificate_type_list2 ()" link="gnutls-gnutls.html#gnutls-priority-certificate-type-list2" since="3.6.4"/>
+ <keyword type="function" name="gnutls_priority_sign_list ()" link="gnutls-gnutls.html#gnutls-priority-sign-list" since="3.0"/>
+ <keyword type="function" name="gnutls_priority_protocol_list ()" link="gnutls-gnutls.html#gnutls-priority-protocol-list" since="3.0"/>
+ <keyword type="function" name="gnutls_priority_ecc_curve_list ()" link="gnutls-gnutls.html#gnutls-priority-ecc-curve-list" deprecated="" since="3.0"/>
+ <keyword type="function" name="gnutls_priority_group_list ()" link="gnutls-gnutls.html#gnutls-priority-group-list" since="3.6.0"/>
+ <keyword type="function" name="gnutls_priority_kx_list ()" link="gnutls-gnutls.html#gnutls-priority-kx-list" since="3.2.3"/>
+ <keyword type="function" name="gnutls_priority_cipher_list ()" link="gnutls-gnutls.html#gnutls-priority-cipher-list" since="3.2.3"/>
+ <keyword type="function" name="gnutls_priority_mac_list ()" link="gnutls-gnutls.html#gnutls-priority-mac-list" since="3.2.3"/>
+ <keyword type="function" name="gnutls_get_system_config_file ()" link="gnutls-gnutls.html#gnutls-get-system-config-file" since="3.6.9"/>
+ <keyword type="function" name="gnutls_set_default_priority ()" link="gnutls-gnutls.html#gnutls-set-default-priority" since="2.1.4"/>
+ <keyword type="function" name="gnutls_set_default_priority_append ()" link="gnutls-gnutls.html#gnutls-set-default-priority-append" since="3.6.3"/>
+ <keyword type="function" name="gnutls_cipher_suite_get_name ()" link="gnutls-gnutls.html#gnutls-cipher-suite-get-name"/>
+ <keyword type="function" name="gnutls_protocol_get_name ()" link="gnutls-gnutls.html#gnutls-protocol-get-name"/>
+ <keyword type="function" name="gnutls_session_get_data ()" link="gnutls-gnutls.html#gnutls-session-get-data"/>
+ <keyword type="function" name="gnutls_session_get_data2 ()" link="gnutls-gnutls.html#gnutls-session-get-data2"/>
+ <keyword type="function" name="gnutls_session_get_random ()" link="gnutls-gnutls.html#gnutls-session-get-random" since="3.0"/>
+ <keyword type="function" name="gnutls_session_get_master_secret ()" link="gnutls-gnutls.html#gnutls-session-get-master-secret" since="3.5.0"/>
+ <keyword type="function" name="gnutls_session_get_desc ()" link="gnutls-gnutls.html#gnutls-session-get-desc" since="3.1.10"/>
+ <keyword type="function" name="gnutls_session_set_verify_function ()" link="gnutls-gnutls.html#gnutls-session-set-verify-function" since="3.4.6"/>
+ <keyword type="function" name="gnutls_session_set_verify_cert ()" link="gnutls-gnutls.html#gnutls-session-set-verify-cert" since="3.4.6"/>
+ <keyword type="function" name="gnutls_session_set_verify_cert2 ()" link="gnutls-gnutls.html#gnutls-session-set-verify-cert2" since="3.4.6"/>
+ <keyword type="function" name="gnutls_session_get_verify_cert_status ()" link="gnutls-gnutls.html#gnutls-session-get-verify-cert-status" since="3.4.6"/>
+ <keyword type="function" name="gnutls_session_set_premaster ()" link="gnutls-gnutls.html#gnutls-session-set-premaster"/>
+ <keyword type="function" name="gnutls_session_get_id ()" link="gnutls-gnutls.html#gnutls-session-get-id"/>
+ <keyword type="function" name="gnutls_session_get_id2 ()" link="gnutls-gnutls.html#gnutls-session-get-id2" since="3.1.4"/>
+ <keyword type="function" name="gnutls_session_set_id ()" link="gnutls-gnutls.html#gnutls-session-set-id" since="3.2.1"/>
+ <keyword type="function" name="gnutls_session_channel_binding ()" link="gnutls-gnutls.html#gnutls-session-channel-binding" since="2.12.0"/>
+ <keyword type="function" name="gnutls_session_is_resumed ()" link="gnutls-gnutls.html#gnutls-session-is-resumed"/>
+ <keyword type="function" name="gnutls_session_resumption_requested ()" link="gnutls-gnutls.html#gnutls-session-resumption-requested"/>
+ <keyword type="function" name="gnutls_db_store_func ()" link="gnutls-gnutls.html#gnutls-db-store-func"/>
+ <keyword type="function" name="gnutls_db_remove_func ()" link="gnutls-gnutls.html#gnutls-db-remove-func"/>
+ <keyword type="function" name="gnutls_db_retr_func ()" link="gnutls-gnutls.html#gnutls-db-retr-func"/>
+ <keyword type="function" name="gnutls_db_set_cache_expiration ()" link="gnutls-gnutls.html#gnutls-db-set-cache-expiration"/>
+ <keyword type="function" name="gnutls_db_get_default_cache_expiration ()" link="gnutls-gnutls.html#gnutls-db-get-default-cache-expiration"/>
+ <keyword type="function" name="gnutls_db_remove_session ()" link="gnutls-gnutls.html#gnutls-db-remove-session"/>
+ <keyword type="function" name="gnutls_db_set_retrieve_function ()" link="gnutls-gnutls.html#gnutls-db-set-retrieve-function"/>
+ <keyword type="function" name="gnutls_db_set_remove_function ()" link="gnutls-gnutls.html#gnutls-db-set-remove-function"/>
+ <keyword type="function" name="gnutls_db_set_store_function ()" link="gnutls-gnutls.html#gnutls-db-set-store-function"/>
+ <keyword type="function" name="gnutls_db_set_ptr ()" link="gnutls-gnutls.html#gnutls-db-set-ptr"/>
+ <keyword type="function" name="gnutls_db_get_ptr ()" link="gnutls-gnutls.html#gnutls-db-get-ptr"/>
+ <keyword type="function" name="gnutls_db_check_entry ()" link="gnutls-gnutls.html#gnutls-db-check-entry" deprecated="This function is deprecated."/>
+ <keyword type="function" name="gnutls_db_check_entry_time ()" link="gnutls-gnutls.html#gnutls-db-check-entry-time"/>
+ <keyword type="function" name="gnutls_db_check_entry_expire_time ()" link="gnutls-gnutls.html#gnutls-db-check-entry-expire-time" since="3.6.5"/>
+ <keyword type="function" name="gnutls_handshake_hook_func ()" link="gnutls-gnutls.html#gnutls-handshake-hook-func"/>
+ <keyword type="function" name="gnutls_handshake_set_hook_function ()" link="gnutls-gnutls.html#gnutls-handshake-set-hook-function"/>
+ <keyword type="function" name="gnutls_handshake_simple_hook_func ()" link="gnutls-gnutls.html#gnutls-handshake-simple-hook-func"/>
+ <keyword type="function" name="gnutls_handshake_set_post_client_hello_function ()" link="gnutls-gnutls.html#gnutls-handshake-set-post-client-hello-function"/>
+ <keyword type="function" name="gnutls_handshake_set_max_packet_length ()" link="gnutls-gnutls.html#gnutls-handshake-set-max-packet-length"/>
+ <keyword type="function" name="gnutls_check_version ()" link="gnutls-gnutls.html#gnutls-check-version"/>
+ <keyword type="function" name="gnutls_credentials_set ()" link="gnutls-gnutls.html#gnutls-credentials-set"/>
+ <keyword type="function" name="gnutls_credentials_get ()" link="gnutls-gnutls.html#gnutls-credentials-get" since="3.3.3"/>
+ <keyword type="function" name="gnutls_anon_free_server_credentials ()" link="gnutls-gnutls.html#gnutls-anon-free-server-credentials"/>
+ <keyword type="function" name="gnutls_anon_allocate_server_credentials ()" link="gnutls-gnutls.html#gnutls-anon-allocate-server-credentials"/>
+ <keyword type="function" name="gnutls_anon_set_server_dh_params ()" link="gnutls-gnutls.html#gnutls-anon-set-server-dh-params" deprecated=""/>
+ <keyword type="function" name="gnutls_anon_set_server_known_dh_params ()" link="gnutls-gnutls.html#gnutls-anon-set-server-known-dh-params" deprecated="" since="3.5.6"/>
+ <keyword type="function" name="gnutls_anon_set_server_params_function ()" link="gnutls-gnutls.html#gnutls-anon-set-server-params-function" deprecated=""/>
+ <keyword type="function" name="gnutls_anon_free_client_credentials ()" link="gnutls-gnutls.html#gnutls-anon-free-client-credentials"/>
+ <keyword type="function" name="gnutls_anon_allocate_client_credentials ()" link="gnutls-gnutls.html#gnutls-anon-allocate-client-credentials"/>
+ <keyword type="function" name="gnutls_certificate_free_credentials ()" link="gnutls-gnutls.html#gnutls-certificate-free-credentials"/>
+ <keyword type="function" name="gnutls_certificate_allocate_credentials ()" link="gnutls-gnutls.html#gnutls-certificate-allocate-credentials"/>
+ <keyword type="function" name="gnutls_certificate_get_issuer ()" link="gnutls-gnutls.html#gnutls-certificate-get-issuer" since="3.0"/>
+ <keyword type="function" name="gnutls_certificate_get_crt_raw ()" link="gnutls-gnutls.html#gnutls-certificate-get-crt-raw" since="3.2.5"/>
+ <keyword type="function" name="gnutls_certificate_free_keys ()" link="gnutls-gnutls.html#gnutls-certificate-free-keys"/>
+ <keyword type="function" name="gnutls_certificate_free_cas ()" link="gnutls-gnutls.html#gnutls-certificate-free-cas"/>
+ <keyword type="function" name="gnutls_certificate_free_ca_names ()" link="gnutls-gnutls.html#gnutls-certificate-free-ca-names"/>
+ <keyword type="function" name="gnutls_certificate_free_crls ()" link="gnutls-gnutls.html#gnutls-certificate-free-crls"/>
+ <keyword type="function" name="gnutls_certificate_set_dh_params ()" link="gnutls-gnutls.html#gnutls-certificate-set-dh-params" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_known_dh_params ()" link="gnutls-gnutls.html#gnutls-certificate-set-known-dh-params" deprecated="" since="3.5.6"/>
+ <keyword type="function" name="gnutls_certificate_set_verify_flags ()" link="gnutls-gnutls.html#gnutls-certificate-set-verify-flags"/>
+ <keyword type="function" name="gnutls_certificate_get_verify_flags ()" link="gnutls-gnutls.html#gnutls-certificate-get-verify-flags" since="3.4.0"/>
+ <keyword type="function" name="gnutls_certificate_set_flags ()" link="gnutls-gnutls.html#gnutls-certificate-set-flags" since="3.4.7"/>
+ <keyword type="function" name="gnutls_certificate_set_verify_limits ()" link="gnutls-gnutls.html#gnutls-certificate-set-verify-limits"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_system_trust ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-system-trust" since="3.0.20"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_trust_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-file"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_trust_dir ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-dir" since="3.3.6"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_trust_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-trust-mem"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_crl_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-file"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_crl_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-crl-mem"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_key_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file" since="3.1.11"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_key_file2 ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key-file2"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_key_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_key_mem2 ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key-mem2"/>
+ <keyword type="function" name="gnutls_certificate_send_x509_rdn_sequence ()" link="gnutls-gnutls.html#gnutls-certificate-send-x509-rdn-sequence"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_simple_pkcs12_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-file"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_simple_pkcs12_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-simple-pkcs12-mem" since="2.8.0"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_key ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-key" since="2.4.0"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_trust ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-trust" since="2.4.0"/>
+ <keyword type="function" name="gnutls_certificate_set_x509_crl ()" link="gnutls-gnutls.html#gnutls-certificate-set-x509-crl" since="2.4.0"/>
+ <keyword type="function" name="gnutls_certificate_get_x509_key ()" link="gnutls-gnutls.html#gnutls-certificate-get-x509-key" since="3.4.0"/>
+ <keyword type="function" name="gnutls_certificate_get_x509_crt ()" link="gnutls-gnutls.html#gnutls-certificate-get-x509-crt" since="3.4.0"/>
+ <keyword type="function" name="gnutls_certificate_set_ocsp_status_request_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-function" since="3.1.3"/>
+ <keyword type="function" name="gnutls_certificate_set_ocsp_status_request_function2 ()" link="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-function2" since="3.5.5"/>
+ <keyword type="function" name="gnutls_certificate_set_ocsp_status_request_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-file" since="3.1.3"/>
+ <keyword type="function" name="gnutls_certificate_set_ocsp_status_request_file2 ()" link="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-file2" since="3.1.3"/>
+ <keyword type="function" name="gnutls_certificate_set_ocsp_status_request_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-ocsp-status-request-mem" since="3.6.3"/>
+ <keyword type="function" name="gnutls_certificate_get_ocsp_expiration ()" link="gnutls-gnutls.html#gnutls-certificate-get-ocsp-expiration" since="3.6.3"/>
+ <keyword type="function" name="gnutls_ocsp_status_request_enable_client ()" link="gnutls-gnutls.html#gnutls-ocsp-status-request-enable-client" since="3.1.3"/>
+ <keyword type="function" name="gnutls_ocsp_status_request_get ()" link="gnutls-gnutls.html#gnutls-ocsp-status-request-get" since="3.1.3"/>
+ <keyword type="function" name="gnutls_ocsp_status_request_is_checked ()" link="gnutls-gnutls.html#gnutls-ocsp-status-request-is-checked" since="3.1.4"/>
+ <keyword type="function" name="gnutls_ocsp_status_request_get2 ()" link="gnutls-gnutls.html#gnutls-ocsp-status-request-get2" since="3.6.3"/>
+ <keyword type="function" name="gnutls_certificate_set_rawpk_key_mem ()" link="gnutls-gnutls.html#gnutls-certificate-set-rawpk-key-mem" since="3.6.6"/>
+ <keyword type="function" name="gnutls_certificate_set_rawpk_key_file ()" link="gnutls-gnutls.html#gnutls-certificate-set-rawpk-key-file" since="3.6.6"/>
+ <keyword type="function" name="gnutls_global_init ()" link="gnutls-gnutls.html#gnutls-global-init"/>
+ <keyword type="function" name="gnutls_global_deinit ()" link="gnutls-gnutls.html#gnutls-global-deinit"/>
+ <keyword type="function" name="gnutls_get_library_config ()" link="gnutls-gnutls.html#gnutls-get-library-config" since="3.7.3"/>
+ <keyword type="function" name="gnutls_time_func ()" link="gnutls-gnutls.html#gnutls-time-func"/>
+ <keyword type="function" name="mutex_init_func ()" link="gnutls-gnutls.html#mutex-init-func"/>
+ <keyword type="function" name="mutex_lock_func ()" link="gnutls-gnutls.html#mutex-lock-func"/>
+ <keyword type="function" name="mutex_unlock_func ()" link="gnutls-gnutls.html#mutex-unlock-func"/>
+ <keyword type="function" name="mutex_deinit_func ()" link="gnutls-gnutls.html#mutex-deinit-func"/>
+ <keyword type="function" name="gnutls_global_set_mutex ()" link="gnutls-gnutls.html#gnutls-global-set-mutex" deprecated="This function is discouraged on GnuTLS 3.7.3 or later." since="2.12.0"/>
+ <keyword type="function" name="gnutls_alloc_function ()" link="gnutls-gnutls.html#gnutls-alloc-function"/>
+ <keyword type="function" name="gnutls_calloc_function ()" link="gnutls-gnutls.html#gnutls-calloc-function"/>
+ <keyword type="function" name="gnutls_is_secure_function ()" link="gnutls-gnutls.html#gnutls-is-secure-function"/>
+ <keyword type="function" name="gnutls_free_function ()" link="gnutls-gnutls.html#gnutls-free-function"/>
+ <keyword type="function" name="gnutls_realloc_function ()" link="gnutls-gnutls.html#gnutls-realloc-function"/>
+ <keyword type="function" name="gnutls_global_set_time_function ()" link="gnutls-gnutls.html#gnutls-global-set-time-function" since="2.12.0"/>
+ <keyword type="macro" name="gnutls_free()" link="gnutls-gnutls.html#gnutls-free"/>
+ <keyword type="function" name="gnutls_memset ()" link="gnutls-gnutls.html#gnutls-memset" since="3.4.0"/>
+ <keyword type="function" name="gnutls_memcmp ()" link="gnutls-gnutls.html#gnutls-memcmp" since="3.4.0"/>
+ <keyword type="function" name="gnutls_log_func ()" link="gnutls-gnutls.html#gnutls-log-func"/>
+ <keyword type="function" name="gnutls_audit_log_func ()" link="gnutls-gnutls.html#gnutls-audit-log-func"/>
+ <keyword type="function" name="gnutls_global_set_log_function ()" link="gnutls-gnutls.html#gnutls-global-set-log-function"/>
+ <keyword type="function" name="gnutls_global_set_audit_log_function ()" link="gnutls-gnutls.html#gnutls-global-set-audit-log-function" since="3.0"/>
+ <keyword type="function" name="gnutls_global_set_log_level ()" link="gnutls-gnutls.html#gnutls-global-set-log-level"/>
+ <keyword type="function" name="gnutls_keylog_func ()" link="gnutls-gnutls.html#gnutls-keylog-func" since="3.6.13"/>
+ <keyword type="function" name="gnutls_session_get_keylog_function ()" link="gnutls-gnutls.html#gnutls-session-get-keylog-function" since="3.6.13"/>
+ <keyword type="function" name="gnutls_session_set_keylog_function ()" link="gnutls-gnutls.html#gnutls-session-set-keylog-function" since="3.6.13"/>
+ <keyword type="function" name="gnutls_dh_params_init ()" link="gnutls-gnutls.html#gnutls-dh-params-init"/>
+ <keyword type="function" name="gnutls_dh_params_deinit ()" link="gnutls-gnutls.html#gnutls-dh-params-deinit"/>
+ <keyword type="function" name="gnutls_dh_params_import_raw ()" link="gnutls-gnutls.html#gnutls-dh-params-import-raw"/>
+ <keyword type="function" name="gnutls_dh_params_import_dsa ()" link="gnutls-gnutls.html#gnutls-dh-params-import-dsa"/>
+ <keyword type="function" name="gnutls_dh_params_import_raw2 ()" link="gnutls-gnutls.html#gnutls-dh-params-import-raw2"/>
+ <keyword type="function" name="gnutls_dh_params_import_raw3 ()" link="gnutls-gnutls.html#gnutls-dh-params-import-raw3"/>
+ <keyword type="function" name="gnutls_dh_params_import_pkcs3 ()" link="gnutls-gnutls.html#gnutls-dh-params-import-pkcs3"/>
+ <keyword type="function" name="gnutls_dh_params_generate2 ()" link="gnutls-gnutls.html#gnutls-dh-params-generate2"/>
+ <keyword type="function" name="gnutls_dh_params_export_pkcs3 ()" link="gnutls-gnutls.html#gnutls-dh-params-export-pkcs3"/>
+ <keyword type="function" name="gnutls_dh_params_export2_pkcs3 ()" link="gnutls-gnutls.html#gnutls-dh-params-export2-pkcs3" since="3.1.3"/>
+ <keyword type="function" name="gnutls_dh_params_export_raw ()" link="gnutls-gnutls.html#gnutls-dh-params-export-raw"/>
+ <keyword type="function" name="gnutls_dh_params_cpy ()" link="gnutls-gnutls.html#gnutls-dh-params-cpy"/>
+ <keyword type="function" name="gnutls_pull_func ()" link="gnutls-gnutls.html#gnutls-pull-func"/>
+ <keyword type="function" name="gnutls_push_func ()" link="gnutls-gnutls.html#gnutls-push-func"/>
+ <keyword type="function" name="gnutls_system_recv_timeout ()" link="gnutls-gnutls.html#gnutls-system-recv-timeout" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pull_timeout_func ()" link="gnutls-gnutls.html#gnutls-pull-timeout-func"/>
+ <keyword type="function" name="gnutls_vec_push_func ()" link="gnutls-gnutls.html#gnutls-vec-push-func"/>
+ <keyword type="function" name="gnutls_errno_func ()" link="gnutls-gnutls.html#gnutls-errno-func"/>
+ <keyword type="function" name="gnutls_transport_set_int ()" link="gnutls-gnutls.html#gnutls-transport-set-int" since="3.1.9"/>
+ <keyword type="function" name="gnutls_transport_set_int2 ()" link="gnutls-gnutls.html#gnutls-transport-set-int2" since="3.1.9"/>
+ <keyword type="function" name="gnutls_transport_get_int2 ()" link="gnutls-gnutls.html#gnutls-transport-get-int2" since="3.1.9"/>
+ <keyword type="function" name="gnutls_transport_get_int ()" link="gnutls-gnutls.html#gnutls-transport-get-int" since="3.1.9"/>
+ <keyword type="function" name="gnutls_transport_set_ptr ()" link="gnutls-gnutls.html#gnutls-transport-set-ptr"/>
+ <keyword type="function" name="gnutls_transport_set_ptr2 ()" link="gnutls-gnutls.html#gnutls-transport-set-ptr2"/>
+ <keyword type="function" name="gnutls_transport_get_ptr ()" link="gnutls-gnutls.html#gnutls-transport-get-ptr"/>
+ <keyword type="function" name="gnutls_transport_get_ptr2 ()" link="gnutls-gnutls.html#gnutls-transport-get-ptr2"/>
+ <keyword type="function" name="gnutls_transport_set_vec_push_function ()" link="gnutls-gnutls.html#gnutls-transport-set-vec-push-function" since="2.12.0"/>
+ <keyword type="function" name="gnutls_transport_set_push_function ()" link="gnutls-gnutls.html#gnutls-transport-set-push-function"/>
+ <keyword type="function" name="gnutls_transport_set_pull_function ()" link="gnutls-gnutls.html#gnutls-transport-set-pull-function"/>
+ <keyword type="function" name="gnutls_transport_set_pull_timeout_function ()" link="gnutls-gnutls.html#gnutls-transport-set-pull-timeout-function" since="3.0"/>
+ <keyword type="function" name="gnutls_transport_set_errno_function ()" link="gnutls-gnutls.html#gnutls-transport-set-errno-function" since="2.12.0"/>
+ <keyword type="function" name="gnutls_transport_set_errno ()" link="gnutls-gnutls.html#gnutls-transport-set-errno"/>
+ <keyword type="function" name="gnutls_session_set_ptr ()" link="gnutls-gnutls.html#gnutls-session-set-ptr"/>
+ <keyword type="function" name="gnutls_session_get_ptr ()" link="gnutls-gnutls.html#gnutls-session-get-ptr"/>
+ <keyword type="function" name="gnutls_openpgp_send_cert ()" link="gnutls-gnutls.html#gnutls-openpgp-send-cert"/>
+ <keyword type="function" name="gnutls_fingerprint ()" link="gnutls-gnutls.html#gnutls-fingerprint"/>
+ <keyword type="function" name="gnutls_random_art ()" link="gnutls-gnutls.html#gnutls-random-art"/>
+ <keyword type="function" name="gnutls_idna_map ()" link="gnutls-gnutls.html#gnutls-idna-map" since="3.5.8"/>
+ <keyword type="function" name="gnutls_idna_reverse_map ()" link="gnutls-gnutls.html#gnutls-idna-reverse-map" since="3.5.8"/>
+ <keyword type="function" name="gnutls_srp_free_client_credentials ()" link="gnutls-gnutls.html#gnutls-srp-free-client-credentials"/>
+ <keyword type="function" name="gnutls_srp_allocate_client_credentials ()" link="gnutls-gnutls.html#gnutls-srp-allocate-client-credentials"/>
+ <keyword type="function" name="gnutls_srp_set_client_credentials ()" link="gnutls-gnutls.html#gnutls-srp-set-client-credentials"/>
+ <keyword type="function" name="gnutls_srp_free_server_credentials ()" link="gnutls-gnutls.html#gnutls-srp-free-server-credentials"/>
+ <keyword type="function" name="gnutls_srp_allocate_server_credentials ()" link="gnutls-gnutls.html#gnutls-srp-allocate-server-credentials"/>
+ <keyword type="function" name="gnutls_srp_set_server_credentials_file ()" link="gnutls-gnutls.html#gnutls-srp-set-server-credentials-file"/>
+ <keyword type="function" name="gnutls_srp_server_get_username ()" link="gnutls-gnutls.html#gnutls-srp-server-get-username"/>
+ <keyword type="function" name="gnutls_srp_set_prime_bits ()" link="gnutls-gnutls.html#gnutls-srp-set-prime-bits" since="2.6.0"/>
+ <keyword type="function" name="gnutls_srp_verifier ()" link="gnutls-gnutls.html#gnutls-srp-verifier"/>
+ <keyword type="function" name="gnutls_srp_set_server_credentials_function ()" link="gnutls-gnutls.html#gnutls-srp-set-server-credentials-function"/>
+ <keyword type="function" name="gnutls_srp_set_client_credentials_function ()" link="gnutls-gnutls.html#gnutls-srp-set-client-credentials-function"/>
+ <keyword type="function" name="gnutls_srp_base64_encode ()" link="gnutls-gnutls.html#gnutls-srp-base64-encode"/>
+ <keyword type="function" name="gnutls_srp_base64_encode2 ()" link="gnutls-gnutls.html#gnutls-srp-base64-encode2"/>
+ <keyword type="function" name="gnutls_srp_base64_decode ()" link="gnutls-gnutls.html#gnutls-srp-base64-decode"/>
+ <keyword type="function" name="gnutls_srp_base64_decode2 ()" link="gnutls-gnutls.html#gnutls-srp-base64-decode2"/>
+ <keyword type="function" name="gnutls_srp_set_server_fake_salt_seed ()" link="gnutls-gnutls.html#gnutls-srp-set-server-fake-salt-seed" since="3.3.0"/>
+ <keyword type="function" name="gnutls_psk_free_client_credentials ()" link="gnutls-gnutls.html#gnutls-psk-free-client-credentials"/>
+ <keyword type="function" name="gnutls_psk_allocate_client_credentials ()" link="gnutls-gnutls.html#gnutls-psk-allocate-client-credentials"/>
+ <keyword type="function" name="gnutls_psk_set_client_credentials ()" link="gnutls-gnutls.html#gnutls-psk-set-client-credentials"/>
+ <keyword type="function" name="gnutls_psk_set_client_credentials2 ()" link="gnutls-gnutls.html#gnutls-psk-set-client-credentials2"/>
+ <keyword type="function" name="gnutls_psk_free_server_credentials ()" link="gnutls-gnutls.html#gnutls-psk-free-server-credentials"/>
+ <keyword type="function" name="gnutls_psk_allocate_server_credentials ()" link="gnutls-gnutls.html#gnutls-psk-allocate-server-credentials"/>
+ <keyword type="function" name="gnutls_psk_set_server_credentials_file ()" link="gnutls-gnutls.html#gnutls-psk-set-server-credentials-file"/>
+ <keyword type="function" name="gnutls_psk_set_server_credentials_hint ()" link="gnutls-gnutls.html#gnutls-psk-set-server-credentials-hint" since="2.4.0"/>
+ <keyword type="function" name="gnutls_psk_server_get_username ()" link="gnutls-gnutls.html#gnutls-psk-server-get-username"/>
+ <keyword type="function" name="gnutls_psk_server_get_username2 ()" link="gnutls-gnutls.html#gnutls-psk-server-get-username2"/>
+ <keyword type="function" name="gnutls_psk_client_get_hint ()" link="gnutls-gnutls.html#gnutls-psk-client-get-hint" since="2.4.0"/>
+ <keyword type="function" name="gnutls_psk_set_server_credentials_function ()" link="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function"/>
+ <keyword type="function" name="gnutls_psk_set_server_credentials_function2 ()" link="gnutls-gnutls.html#gnutls-psk-set-server-credentials-function2"/>
+ <keyword type="function" name="gnutls_psk_set_client_credentials_function ()" link="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function"/>
+ <keyword type="function" name="gnutls_psk_set_client_credentials_function2 ()" link="gnutls-gnutls.html#gnutls-psk-set-client-credentials-function2"/>
+ <keyword type="function" name="gnutls_hex_encode ()" link="gnutls-gnutls.html#gnutls-hex-encode"/>
+ <keyword type="function" name="gnutls_hex_decode ()" link="gnutls-gnutls.html#gnutls-hex-decode"/>
+ <keyword type="function" name="gnutls_hex_encode2 ()" link="gnutls-gnutls.html#gnutls-hex-encode2"/>
+ <keyword type="function" name="gnutls_hex_decode2 ()" link="gnutls-gnutls.html#gnutls-hex-decode2"/>
+ <keyword type="function" name="gnutls_psk_set_server_dh_params ()" link="gnutls-gnutls.html#gnutls-psk-set-server-dh-params" deprecated=""/>
+ <keyword type="function" name="gnutls_psk_set_server_known_dh_params ()" link="gnutls-gnutls.html#gnutls-psk-set-server-known-dh-params" deprecated="" since="3.5.6"/>
+ <keyword type="function" name="gnutls_psk_set_server_params_function ()" link="gnutls-gnutls.html#gnutls-psk-set-server-params-function" deprecated=""/>
+ <keyword type="function" name="gnutls_dh_set_prime_bits ()" link="gnutls-gnutls.html#gnutls-dh-set-prime-bits"/>
+ <keyword type="function" name="gnutls_dh_get_secret_bits ()" link="gnutls-gnutls.html#gnutls-dh-get-secret-bits"/>
+ <keyword type="function" name="gnutls_dh_get_peers_public_bits ()" link="gnutls-gnutls.html#gnutls-dh-get-peers-public-bits"/>
+ <keyword type="function" name="gnutls_dh_get_prime_bits ()" link="gnutls-gnutls.html#gnutls-dh-get-prime-bits"/>
+ <keyword type="function" name="gnutls_dh_get_group ()" link="gnutls-gnutls.html#gnutls-dh-get-group"/>
+ <keyword type="function" name="gnutls_dh_get_pubkey ()" link="gnutls-gnutls.html#gnutls-dh-get-pubkey"/>
+ <keyword type="function" name="gnutls_certificate_set_retrieve_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-retrieve-function" since="3.0"/>
+ <keyword type="function" name="gnutls_certificate_set_verify_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-verify-function" since="2.10.0"/>
+ <keyword type="function" name="gnutls_certificate_server_set_request ()" link="gnutls-gnutls.html#gnutls-certificate-server-set-request"/>
+ <keyword type="function" name="gnutls_certificate_get_peers ()" link="gnutls-gnutls.html#gnutls-certificate-get-peers"/>
+ <keyword type="function" name="gnutls_certificate_get_ours ()" link="gnutls-gnutls.html#gnutls-certificate-get-ours"/>
+ <keyword type="function" name="gnutls_certificate_get_peers_subkey_id ()" link="gnutls-gnutls.html#gnutls-certificate-get-peers-subkey-id" since="3.1.3"/>
+ <keyword type="function" name="gnutls_certificate_activation_time_peers ()" link="gnutls-gnutls.html#gnutls-certificate-activation-time-peers" deprecated="gnutls_certificate_verify_peers2() now verifies activation times."/>
+ <keyword type="function" name="gnutls_certificate_expiration_time_peers ()" link="gnutls-gnutls.html#gnutls-certificate-expiration-time-peers" deprecated="gnutls_certificate_verify_peers2() now verifies expiration times."/>
+ <keyword type="function" name="gnutls_certificate_client_get_request_status ()" link="gnutls-gnutls.html#gnutls-certificate-client-get-request-status"/>
+ <keyword type="function" name="gnutls_certificate_verify_peers2 ()" link="gnutls-gnutls.html#gnutls-certificate-verify-peers2"/>
+ <keyword type="function" name="gnutls_certificate_verify_peers3 ()" link="gnutls-gnutls.html#gnutls-certificate-verify-peers3" since="3.1.4"/>
+ <keyword type="function" name="gnutls_certificate_verify_peers ()" link="gnutls-gnutls.html#gnutls-certificate-verify-peers" since="3.3.0"/>
+ <keyword type="function" name="gnutls_certificate_verification_status_print ()" link="gnutls-gnutls.html#gnutls-certificate-verification-status-print" since="3.1.4"/>
+ <keyword type="function" name="gnutls_pem_base64_encode ()" link="gnutls-gnutls.html#gnutls-pem-base64-encode"/>
+ <keyword type="function" name="gnutls_pem_base64_decode ()" link="gnutls-gnutls.html#gnutls-pem-base64-decode"/>
+ <keyword type="function" name="gnutls_pem_base64_encode2 ()" link="gnutls-gnutls.html#gnutls-pem-base64-encode2" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pem_base64_decode2 ()" link="gnutls-gnutls.html#gnutls-pem-base64-decode2" since="3.4.0"/>
+ <keyword type="function" name="gnutls_base64_encode2 ()" link="gnutls-gnutls.html#gnutls-base64-encode2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_base64_decode2 ()" link="gnutls-gnutls.html#gnutls-base64-decode2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_certificate_set_params_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-params-function" deprecated=""/>
+ <keyword type="function" name="gnutls_anon_set_params_function ()" link="gnutls-gnutls.html#gnutls-anon-set-params-function" deprecated=""/>
+ <keyword type="function" name="gnutls_psk_set_params_function ()" link="gnutls-gnutls.html#gnutls-psk-set-params-function" deprecated=""/>
+ <keyword type="function" name="gnutls_hex2bin ()" link="gnutls-gnutls.html#gnutls-hex2bin" since="2.4.0"/>
+ <keyword type="function" name="gnutls_tdb_store_func ()" link="gnutls-gnutls.html#gnutls-tdb-store-func"/>
+ <keyword type="function" name="gnutls_tdb_store_commitment_func ()" link="gnutls-gnutls.html#gnutls-tdb-store-commitment-func"/>
+ <keyword type="function" name="gnutls_tdb_verify_func ()" link="gnutls-gnutls.html#gnutls-tdb-verify-func"/>
+ <keyword type="function" name="gnutls_tdb_init ()" link="gnutls-gnutls.html#gnutls-tdb-init"/>
+ <keyword type="function" name="gnutls_tdb_set_store_func ()" link="gnutls-gnutls.html#gnutls-tdb-set-store-func"/>
+ <keyword type="function" name="gnutls_tdb_set_store_commitment_func ()" link="gnutls-gnutls.html#gnutls-tdb-set-store-commitment-func"/>
+ <keyword type="function" name="gnutls_tdb_set_verify_func ()" link="gnutls-gnutls.html#gnutls-tdb-set-verify-func"/>
+ <keyword type="function" name="gnutls_tdb_deinit ()" link="gnutls-gnutls.html#gnutls-tdb-deinit"/>
+ <keyword type="function" name="gnutls_verify_stored_pubkey ()" link="gnutls-gnutls.html#gnutls-verify-stored-pubkey" since="3.0.13"/>
+ <keyword type="function" name="gnutls_store_commitment ()" link="gnutls-gnutls.html#gnutls-store-commitment" since="3.0"/>
+ <keyword type="function" name="gnutls_store_pubkey ()" link="gnutls-gnutls.html#gnutls-store-pubkey" since="3.0.13"/>
+ <keyword type="function" name="gnutls_load_file ()" link="gnutls-gnutls.html#gnutls-load-file"/>
+ <keyword type="function" name="gnutls_url_is_supported ()" link="gnutls-gnutls.html#gnutls-url-is-supported" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pin_callback_t ()" link="gnutls-gnutls.html#gnutls-pin-callback-t" since="2.12.0"/>
+ <keyword type="function" name="gnutls_certificate_set_pin_function ()" link="gnutls-gnutls.html#gnutls-certificate-set-pin-function"/>
+ <keyword type="function" name="gnutls_buffer_append_data ()" link="gnutls-gnutls.html#gnutls-buffer-append-data" since="3.4.0"/>
+ <keyword type="function" name="gnutls_utf8_password_normalize ()" link="gnutls-gnutls.html#gnutls-utf8-password-normalize" since="3.5.7"/>
+ <keyword type="function" name="gnutls_ext_set_data ()" link="gnutls-gnutls.html#gnutls-ext-set-data" since="3.4.0"/>
+ <keyword type="function" name="gnutls_ext_get_data ()" link="gnutls-gnutls.html#gnutls-ext-get-data" since="3.4.0"/>
+ <keyword type="function" name="gnutls_ext_get_current_msg ()" link="gnutls-gnutls.html#gnutls-ext-get-current-msg" since="3.6.3"/>
+ <keyword type="function" name="gnutls_ext_recv_func ()" link="gnutls-gnutls.html#gnutls-ext-recv-func"/>
+ <keyword type="function" name="gnutls_ext_send_func ()" link="gnutls-gnutls.html#gnutls-ext-send-func"/>
+ <keyword type="function" name="gnutls_ext_deinit_data_func ()" link="gnutls-gnutls.html#gnutls-ext-deinit-data-func"/>
+ <keyword type="function" name="gnutls_ext_pack_func ()" link="gnutls-gnutls.html#gnutls-ext-pack-func"/>
+ <keyword type="function" name="gnutls_ext_unpack_func ()" link="gnutls-gnutls.html#gnutls-ext-unpack-func"/>
+ <keyword type="function" name="gnutls_ext_raw_process_func ()" link="gnutls-gnutls.html#gnutls-ext-raw-process-func"/>
+ <keyword type="function" name="gnutls_ext_raw_parse ()" link="gnutls-gnutls.html#gnutls-ext-raw-parse" since="3.6.3"/>
+ <keyword type="function" name="gnutls_ext_register ()" link="gnutls-gnutls.html#gnutls-ext-register" since="3.4.0"/>
+ <keyword type="function" name="gnutls_session_ext_register ()" link="gnutls-gnutls.html#gnutls-session-ext-register" since="3.5.5"/>
+ <keyword type="function" name="gnutls_ext_get_name ()" link="gnutls-gnutls.html#gnutls-ext-get-name"/>
+ <keyword type="function" name="gnutls_ext_get_name2 ()" link="gnutls-gnutls.html#gnutls-ext-get-name2"/>
+ <keyword type="function" name="gnutls_supp_recv_func ()" link="gnutls-gnutls.html#gnutls-supp-recv-func"/>
+ <keyword type="function" name="gnutls_supp_send_func ()" link="gnutls-gnutls.html#gnutls-supp-send-func"/>
+ <keyword type="function" name="gnutls_supplemental_register ()" link="gnutls-gnutls.html#gnutls-supplemental-register" since="3.4.0"/>
+ <keyword type="function" name="gnutls_session_supplemental_register ()" link="gnutls-gnutls.html#gnutls-session-supplemental-register" since="3.5.5"/>
+ <keyword type="function" name="gnutls_supplemental_recv ()" link="gnutls-gnutls.html#gnutls-supplemental-recv" since="3.4.0"/>
+ <keyword type="function" name="gnutls_supplemental_send ()" link="gnutls-gnutls.html#gnutls-supplemental-send" since="3.4.0"/>
+ <keyword type="function" name="gnutls_anti_replay_init ()" link="gnutls-gnutls.html#gnutls-anti-replay-init" since="3.6.5"/>
+ <keyword type="function" name="gnutls_anti_replay_deinit ()" link="gnutls-gnutls.html#gnutls-anti-replay-deinit" since="3.6.5"/>
+ <keyword type="function" name="gnutls_anti_replay_set_window ()" link="gnutls-gnutls.html#gnutls-anti-replay-set-window" since="3.6.5"/>
+ <keyword type="function" name="gnutls_anti_replay_enable ()" link="gnutls-gnutls.html#gnutls-anti-replay-enable" since="3.6.5"/>
+ <keyword type="function" name="gnutls_db_add_func ()" link="gnutls-gnutls.html#gnutls-db-add-func"/>
+ <keyword type="function" name="gnutls_anti_replay_set_add_function ()" link="gnutls-gnutls.html#gnutls-anti-replay-set-add-function" since="3.6.5"/>
+ <keyword type="function" name="gnutls_anti_replay_set_ptr ()" link="gnutls-gnutls.html#gnutls-anti-replay-set-ptr"/>
+ <keyword type="function" name="gnutls_handshake_read_func ()" link="gnutls-gnutls.html#gnutls-handshake-read-func" since="3.7.0"/>
+ <keyword type="function" name="gnutls_handshake_set_read_function ()" link="gnutls-gnutls.html#gnutls-handshake-set-read-function" since="3.7.0"/>
+ <keyword type="function" name="gnutls_handshake_write ()" link="gnutls-gnutls.html#gnutls-handshake-write" since="3.7.0"/>
+ <keyword type="function" name="gnutls_handshake_secret_func ()" link="gnutls-gnutls.html#gnutls-handshake-secret-func" since="3.7.0"/>
+ <keyword type="function" name="gnutls_handshake_set_secret_function ()" link="gnutls-gnutls.html#gnutls-handshake-set-secret-function" since="3.7.0"/>
+ <keyword type="function" name="gnutls_alert_read_func ()" link="gnutls-gnutls.html#gnutls-alert-read-func" since="3.7.0"/>
+ <keyword type="function" name="gnutls_alert_set_read_function ()" link="gnutls-gnutls.html#gnutls-alert-set-read-function" since="3.7.0"/>
+ <keyword type="function" name="gnutls_fips140_mode_enabled ()" link="gnutls-gnutls.html#gnutls-fips140-mode-enabled" since="3.3.0"/>
+ <keyword type="function" name="gnutls_fips140_set_mode ()" link="gnutls-gnutls.html#gnutls-fips140-set-mode" since="3.6.2"/>
+ <keyword type="macro" name="GNUTLS_FIPS140_SET_LAX_MODE" link="gnutls-gnutls.html#GNUTLS-FIPS140-SET-LAX-MODE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_FIPS140_SET_STRICT_MODE" link="gnutls-gnutls.html#GNUTLS-FIPS140-SET-STRICT-MODE:CAPS"/>
+ <keyword type="function" name="gnutls_fips140_context_init ()" link="gnutls-gnutls.html#gnutls-fips140-context-init" since="3.7.3"/>
+ <keyword type="function" name="gnutls_fips140_context_deinit ()" link="gnutls-gnutls.html#gnutls-fips140-context-deinit" since="3.7.3"/>
+ <keyword type="function" name="gnutls_fips140_get_operation_state ()" link="gnutls-gnutls.html#gnutls-fips140-get-operation-state" since="3.7.3"/>
+ <keyword type="function" name="gnutls_fips140_push_context ()" link="gnutls-gnutls.html#gnutls-fips140-push-context" since="3.7.3"/>
+ <keyword type="function" name="gnutls_fips140_pop_context ()" link="gnutls-gnutls.html#gnutls-fips140-pop-context" since="3.7.3"/>
+ <keyword type="function" name="gnutls_fips140_run_self_tests ()" link="gnutls-gnutls.html#gnutls-fips140-run-self-tests" since="3.7.7"/>
+ <keyword type="macro" name="GNUTLS_VERSION" link="gnutls-gnutls.html#GNUTLS-VERSION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_VERSION_MAJOR" link="gnutls-gnutls.html#GNUTLS-VERSION-MAJOR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_VERSION_MINOR" link="gnutls-gnutls.html#GNUTLS-VERSION-MINOR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_VERSION_PATCH" link="gnutls-gnutls.html#GNUTLS-VERSION-PATCH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_VERSION_NUMBER" link="gnutls-gnutls.html#GNUTLS-VERSION-NUMBER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_CIPHER_RIJNDAEL_128_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-128-CBC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_CIPHER_RIJNDAEL_256_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-256-CBC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_CIPHER_RIJNDAEL_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RIJNDAEL-CBC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_CIPHER_ARCFOUR" link="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_SKIP_GLOBAL_INIT" link="gnutls-gnutls.html#GNUTLS-SKIP-GLOBAL-INIT:CAPS"/>
+ <keyword type="enum" name="enum gnutls_cipher_algorithm_t" link="gnutls-gnutls.html#gnutls-cipher-algorithm-t"/>
+ <keyword type="enum" name="enum gnutls_kx_algorithm_t" link="gnutls-gnutls.html#gnutls-kx-algorithm-t"/>
+ <keyword type="enum" name="enum gnutls_params_type_t" link="gnutls-gnutls.html#gnutls-params-type-t"/>
+ <keyword type="enum" name="enum gnutls_credentials_type_t" link="gnutls-gnutls.html#gnutls-credentials-type-t"/>
+ <keyword type="macro" name="GNUTLS_MAC_SHA" link="gnutls-gnutls.html#GNUTLS-MAC-SHA:CAPS"/>
+ <keyword type="macro" name="GNUTLS_DIG_SHA" link="gnutls-gnutls.html#GNUTLS-DIG-SHA:CAPS"/>
+ <keyword type="enum" name="enum gnutls_mac_algorithm_t" link="gnutls-gnutls.html#gnutls-mac-algorithm-t"/>
+ <keyword type="enum" name="enum gnutls_digest_algorithm_t" link="gnutls-gnutls.html#gnutls-digest-algorithm-t"/>
+ <keyword type="macro" name="GNUTLS_MAX_ALGORITHM_NUM" link="gnutls-gnutls.html#GNUTLS-MAX-ALGORITHM-NUM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_MAX_SESSION_ID_SIZE" link="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID-SIZE:CAPS"/>
+ <keyword type="enum" name="enum gnutls_compression_method_t" link="gnutls-gnutls.html#gnutls-compression-method-t"/>
+ <keyword type="enum" name="enum gnutls_init_flags_t" link="gnutls-gnutls.html#gnutls-init-flags-t"/>
+ <keyword type="macro" name="GNUTLS_SERVER" link="gnutls-gnutls.html#GNUTLS-SERVER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_CLIENT" link="gnutls-gnutls.html#GNUTLS-CLIENT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_DATAGRAM" link="gnutls-gnutls.html#GNUTLS-DATAGRAM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_NONBLOCK" link="gnutls-gnutls.html#GNUTLS-NONBLOCK:CAPS"/>
+ <keyword type="macro" name="GNUTLS_NO_EXTENSIONS" link="gnutls-gnutls.html#GNUTLS-NO-EXTENSIONS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_NO_REPLAY_PROTECTION" link="gnutls-gnutls.html#GNUTLS-NO-REPLAY-PROTECTION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_NO_SIGNAL" link="gnutls-gnutls.html#GNUTLS-NO-SIGNAL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_ALLOW_ID_CHANGE" link="gnutls-gnutls.html#GNUTLS-ALLOW-ID-CHANGE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_ENABLE_FALSE_START" link="gnutls-gnutls.html#GNUTLS-ENABLE-FALSE-START:CAPS"/>
+ <keyword type="macro" name="GNUTLS_FORCE_CLIENT_CERT" link="gnutls-gnutls.html#GNUTLS-FORCE-CLIENT-CERT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_NO_TICKETS" link="gnutls-gnutls.html#GNUTLS-NO-TICKETS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_ENABLE_CERT_TYPE_NEG" link="gnutls-gnutls.html#GNUTLS-ENABLE-CERT-TYPE-NEG:CAPS"/>
+ <keyword type="enum" name="enum gnutls_alert_level_t" link="gnutls-gnutls.html#gnutls-alert-level-t"/>
+ <keyword type="enum" name="enum gnutls_alert_description_t" link="gnutls-gnutls.html#gnutls-alert-description-t"/>
+ <keyword type="enum" name="enum gnutls_handshake_description_t" link="gnutls-gnutls.html#gnutls-handshake-description-t"/>
+ <keyword type="macro" name="GNUTLS_HANDSHAKE_ANY" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-ANY:CAPS"/>
+ <keyword type="enum" name="enum gnutls_certificate_status_t" link="gnutls-gnutls.html#gnutls-certificate-status-t"/>
+ <keyword type="enum" name="enum gnutls_certificate_request_t" link="gnutls-gnutls.html#gnutls-certificate-request-t"/>
+ <keyword type="enum" name="enum gnutls_openpgp_crt_status_t" link="gnutls-gnutls.html#gnutls-openpgp-crt-status-t"/>
+ <keyword type="enum" name="enum gnutls_close_request_t" link="gnutls-gnutls.html#gnutls-close-request-t"/>
+ <keyword type="enum" name="enum gnutls_protocol_t" link="gnutls-gnutls.html#gnutls-protocol-t"/>
+ <keyword type="macro" name="GNUTLS_CRT_RAW" link="gnutls-gnutls.html#GNUTLS-CRT-RAW:CAPS"/>
+ <keyword type="enum" name="enum gnutls_certificate_type_t" link="gnutls-gnutls.html#gnutls-certificate-type-t"/>
+ <keyword type="enum" name="enum gnutls_x509_crt_fmt_t" link="gnutls-gnutls.html#gnutls-x509-crt-fmt-t"/>
+ <keyword type="enum" name="enum gnutls_certificate_print_formats_t" link="gnutls-gnutls.html#gnutls-certificate-print-formats-t"/>
+ <keyword type="macro" name="GNUTLS_PK_ECC" link="gnutls-gnutls.html#GNUTLS-PK-ECC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PK_EC" link="gnutls-gnutls.html#GNUTLS-PK-EC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PK_ECDHX" link="gnutls-gnutls.html#GNUTLS-PK-ECDHX:CAPS"/>
+ <keyword type="enum" name="enum gnutls_pk_algorithm_t" link="gnutls-gnutls.html#gnutls-pk-algorithm-t"/>
+ <keyword type="enum" name="enum gnutls_sign_algorithm_t" link="gnutls-gnutls.html#gnutls-sign-algorithm-t"/>
+ <keyword type="enum" name="enum gnutls_ecc_curve_t" link="gnutls-gnutls.html#gnutls-ecc-curve-t"/>
+ <keyword type="enum" name="enum gnutls_group_t" link="gnutls-gnutls.html#gnutls-group-t"/>
+ <keyword type="enum" name="enum gnutls_sec_param_t" link="gnutls-gnutls.html#gnutls-sec-param-t"/>
+ <keyword type="macro" name="GNUTLS_SEC_PARAM_NORMAL" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-NORMAL:CAPS"/>
+ <keyword type="enum" name="enum gnutls_channel_binding_t" link="gnutls-gnutls.html#gnutls-channel-binding-t"/>
+ <keyword type="enum" name="enum gnutls_gost_paramset_t" link="gnutls-gnutls.html#gnutls-gost-paramset-t"/>
+ <keyword type="enum" name="enum gnutls_ctype_target_t" link="gnutls-gnutls.html#gnutls-ctype-target-t"/>
+ <keyword type="typedef" name="gnutls_transport_ptr_t" link="gnutls-gnutls.html#gnutls-transport-ptr-t"/>
+ <keyword type="typedef" name="gnutls_session_t" link="gnutls-gnutls.html#gnutls-session-t"/>
+ <keyword type="typedef" name="gnutls_dh_params_t" link="gnutls-gnutls.html#gnutls-dh-params-t"/>
+ <keyword type="typedef" name="gnutls_rsa_params_t" link="gnutls-gnutls.html#gnutls-rsa-params-t"/>
+ <keyword type="typedef" name="gnutls_priority_t" link="gnutls-gnutls.html#gnutls-priority-t"/>
+ <keyword type="struct" name="gnutls_datum_t" link="gnutls-gnutls.html#gnutls-datum-t"/>
+ <keyword type="struct" name="gnutls_library_config_st" link="gnutls-gnutls.html#gnutls-library-config-st"/>
+ <keyword type="struct" name="gnutls_params_st" link="gnutls-gnutls.html#gnutls-params-st"/>
+ <keyword type="macro" name="GNUTLS_DEFAULT_HANDSHAKE_TIMEOUT" link="gnutls-gnutls.html#GNUTLS-DEFAULT-HANDSHAKE-TIMEOUT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_INDEFINITE_TIMEOUT" link="gnutls-gnutls.html#GNUTLS-INDEFINITE-TIMEOUT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KU_PEER" link="gnutls-gnutls.html#GNUTLS-KU-PEER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_HEARTBEAT_WAIT" link="gnutls-gnutls.html#GNUTLS-HEARTBEAT-WAIT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_RECORD_WAIT" link="gnutls-gnutls.html#GNUTLS-RECORD-WAIT:CAPS"/>
+ <keyword type="struct" name="gnutls_range_st" link="gnutls-gnutls.html#gnutls-range-st"/>
+ <keyword type="typedef" name="gnutls_packet_t" link="gnutls-gnutls.html#gnutls-packet-t"/>
+ <keyword type="macro" name="gnutls_read" link="gnutls-gnutls.html#gnutls-read"/>
+ <keyword type="macro" name="gnutls_write" link="gnutls-gnutls.html#gnutls-write"/>
+ <keyword type="enum" name="enum gnutls_server_name_type_t" link="gnutls-gnutls.html#gnutls-server-name-type-t"/>
+ <keyword type="macro" name="GNUTLS_HB_PEER_ALLOWED_TO_SEND" link="gnutls-gnutls.html#GNUTLS-HB-PEER-ALLOWED-TO-SEND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_HB_PEER_NOT_ALLOWED_TO_SEND" link="gnutls-gnutls.html#GNUTLS-HB-PEER-NOT-ALLOWED-TO-SEND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_HB_LOCAL_ALLOWED_TO_SEND" link="gnutls-gnutls.html#GNUTLS-HB-LOCAL-ALLOWED-TO-SEND:CAPS"/>
+ <keyword type="enum" name="enum gnutls_session_flags_t" link="gnutls-gnutls.html#gnutls-session-flags-t"/>
+ <keyword type="enum" name="enum gnutls_supplemental_data_format_type_t" link="gnutls-gnutls.html#gnutls-supplemental-data-format-type-t"/>
+ <keyword type="enum" name="enum gnutls_srtp_profile_t" link="gnutls-gnutls.html#gnutls-srtp-profile-t"/>
+ <keyword type="enum" name="enum gnutls_alpn_flags_t" link="gnutls-gnutls.html#gnutls-alpn-flags-t"/>
+ <keyword type="macro" name="GNUTLS_ALPN_MAND" link="gnutls-gnutls.html#GNUTLS-ALPN-MAND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PRIORITY_INIT_DEF_APPEND" link="gnutls-gnutls.html#GNUTLS-PRIORITY-INIT-DEF-APPEND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PRIORITY_LIST_INIT_KEYWORDS" link="gnutls-gnutls.html#GNUTLS-PRIORITY-LIST-INIT-KEYWORDS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PRIORITY_LIST_SPECIAL" link="gnutls-gnutls.html#GNUTLS-PRIORITY-LIST-SPECIAL:CAPS"/>
+ <keyword type="enum" name="enum gnutls_vdata_types_t" link="gnutls-gnutls.html#gnutls-vdata-types-t"/>
+ <keyword type="struct" name="gnutls_typed_vdata_st" link="gnutls-gnutls.html#gnutls-typed-vdata-st"/>
+ <keyword type="macro" name="GNUTLS_MAX_SESSION_ID" link="gnutls-gnutls.html#GNUTLS-MAX-SESSION-ID:CAPS"/>
+ <keyword type="macro" name="GNUTLS_HOOK_POST" link="gnutls-gnutls.html#GNUTLS-HOOK-POST:CAPS"/>
+ <keyword type="macro" name="GNUTLS_HOOK_PRE" link="gnutls-gnutls.html#GNUTLS-HOOK-PRE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_HOOK_BOTH" link="gnutls-gnutls.html#GNUTLS-HOOK-BOTH:CAPS"/>
+ <keyword type="macro" name="gnutls_handshake_post_client_hello_func" link="gnutls-gnutls.html#gnutls-handshake-post-client-hello-func"/>
+ <keyword type="macro" name="gnutls_cred_set" link="gnutls-gnutls.html#gnutls-cred-set"/>
+ <keyword type="typedef" name="gnutls_pubkey_t" link="gnutls-gnutls.html#gnutls-pubkey-t"/>
+ <keyword type="typedef" name="gnutls_privkey_t" link="gnutls-gnutls.html#gnutls-privkey-t"/>
+ <keyword type="typedef" name="gnutls_x509_privkey_t" link="gnutls-gnutls.html#gnutls-x509-privkey-t"/>
+ <keyword type="typedef" name="gnutls_x509_crl_t" link="gnutls-gnutls.html#gnutls-x509-crl-t"/>
+ <keyword type="typedef" name="gnutls_x509_crt_t" link="gnutls-gnutls.html#gnutls-x509-crt-t"/>
+ <keyword type="typedef" name="gnutls_x509_crq_t" link="gnutls-gnutls.html#gnutls-x509-crq-t"/>
+ <keyword type="typedef" name="gnutls_openpgp_keyring_t" link="gnutls-gnutls.html#gnutls-openpgp-keyring-t"/>
+ <keyword type="enum" name="enum gnutls_certificate_flags" link="gnutls-gnutls.html#gnutls-certificate-flags"/>
+ <keyword type="struct" name="gnutls_ocsp_data_st" link="gnutls-gnutls.html#gnutls-ocsp-data-st"/>
+ <keyword type="typedef" name="giovec_t" link="gnutls-gnutls.html#giovec-t"/>
+ <keyword type="enum" name="enum gnutls_random_art_t" link="gnutls-gnutls.html#gnutls-random-art-t"/>
+ <keyword type="macro" name="GNUTLS_IDNA_FORCE_2008" link="gnutls-gnutls.html#GNUTLS-IDNA-FORCE-2008:CAPS"/>
+ <keyword type="macro" name="gnutls_srp_base64_encode_alloc" link="gnutls-gnutls.html#gnutls-srp-base64-encode-alloc"/>
+ <keyword type="macro" name="gnutls_srp_base64_decode_alloc" link="gnutls-gnutls.html#gnutls-srp-base64-decode-alloc"/>
+ <keyword type="enum" name="enum gnutls_psk_key_flags" link="gnutls-gnutls.html#gnutls-psk-key-flags"/>
+ <keyword type="enum" name="enum gnutls_x509_subject_alt_name_t" link="gnutls-gnutls.html#gnutls-x509-subject-alt-name-t"/>
+ <keyword type="typedef" name="gnutls_openpgp_crt_t" link="gnutls-gnutls.html#gnutls-openpgp-crt-t"/>
+ <keyword type="typedef" name="gnutls_openpgp_privkey_t" link="gnutls-gnutls.html#gnutls-openpgp-privkey-t"/>
+ <keyword type="typedef" name="gnutls_pkcs11_privkey_t" link="gnutls-gnutls.html#gnutls-pkcs11-privkey-t"/>
+ <keyword type="enum" name="enum gnutls_privkey_type_t" link="gnutls-gnutls.html#gnutls-privkey-type-t"/>
+ <keyword type="struct" name="gnutls_retr2_st" link="gnutls-gnutls.html#gnutls-retr2-st"/>
+ <keyword type="macro" name="gnutls_pem_base64_encode_alloc" link="gnutls-gnutls.html#gnutls-pem-base64-encode-alloc"/>
+ <keyword type="macro" name="gnutls_pem_base64_decode_alloc" link="gnutls-gnutls.html#gnutls-pem-base64-decode-alloc"/>
+ <keyword type="macro" name="GNUTLS_KEY_DIGITAL_SIGNATURE" link="gnutls-gnutls.html#GNUTLS-KEY-DIGITAL-SIGNATURE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_NON_REPUDIATION" link="gnutls-gnutls.html#GNUTLS-KEY-NON-REPUDIATION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_KEY_ENCIPHERMENT" link="gnutls-gnutls.html#GNUTLS-KEY-KEY-ENCIPHERMENT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_DATA_ENCIPHERMENT" link="gnutls-gnutls.html#GNUTLS-KEY-DATA-ENCIPHERMENT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_KEY_AGREEMENT" link="gnutls-gnutls.html#GNUTLS-KEY-KEY-AGREEMENT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_KEY_CERT_SIGN" link="gnutls-gnutls.html#GNUTLS-KEY-KEY-CERT-SIGN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_CRL_SIGN" link="gnutls-gnutls.html#GNUTLS-KEY-CRL-SIGN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_ENCIPHER_ONLY" link="gnutls-gnutls.html#GNUTLS-KEY-ENCIPHER-ONLY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KEY_DECIPHER_ONLY" link="gnutls-gnutls.html#GNUTLS-KEY-DECIPHER-ONLY:CAPS"/>
+ <keyword type="typedef" name="gnutls_tdb_t" link="gnutls-gnutls.html#gnutls-tdb-t"/>
+ <keyword type="macro" name="GNUTLS_SCOMMIT_FLAG_ALLOW_BROKEN" link="gnutls-gnutls.html#GNUTLS-SCOMMIT-FLAG-ALLOW-BROKEN:CAPS"/>
+ <keyword type="enum" name="enum gnutls_pin_flag_t" link="gnutls-gnutls.html#gnutls-pin-flag-t"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_PIN_USER" link="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-USER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_PIN_SO" link="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-SO:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_PIN_FINAL_TRY" link="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-FINAL-TRY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_PIN_COUNT_LOW" link="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-COUNT-LOW:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_PIN_CONTEXT_SPECIFIC" link="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-CONTEXT-SPECIFIC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_PIN_WRONG" link="gnutls-gnutls.html#GNUTLS-PKCS11-PIN-WRONG:CAPS"/>
+ <keyword type="typedef" name="gnutls_buffer_t" link="gnutls-gnutls.html#gnutls-buffer-t"/>
+ <keyword type="macro" name="GNUTLS_UTF8_IGNORE_ERRS" link="gnutls-gnutls.html#GNUTLS-UTF8-IGNORE-ERRS:CAPS"/>
+ <keyword type="typedef" name="gnutls_ext_priv_data_t" link="gnutls-gnutls.html#gnutls-ext-priv-data-t"/>
+ <keyword type="macro" name="GNUTLS_EXT_RAW_FLAG_TLS_CLIENT_HELLO" link="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-TLS-CLIENT-HELLO:CAPS"/>
+ <keyword type="macro" name="GNUTLS_EXT_RAW_FLAG_DTLS_CLIENT_HELLO" link="gnutls-gnutls.html#GNUTLS-EXT-RAW-FLAG-DTLS-CLIENT-HELLO:CAPS"/>
+ <keyword type="enum" name="enum gnutls_ext_parse_type_t" link="gnutls-gnutls.html#gnutls-ext-parse-type-t"/>
+ <keyword type="enum" name="enum gnutls_ext_flags_t" link="gnutls-gnutls.html#gnutls-ext-flags-t"/>
+ <keyword type="typedef" name="gnutls_anti_replay_t" link="gnutls-gnutls.html#gnutls-anti-replay-t"/>
+ <keyword type="enum" name="enum gnutls_record_encryption_level_t" link="gnutls-gnutls.html#gnutls-record-encryption-level-t" since="3.7.0"/>
+ <keyword type="enum" name="enum gnutls_fips_mode_t" link="gnutls-gnutls.html#gnutls-fips-mode-t"/>
+ <keyword type="macro" name="GNUTLS_FIPS140_SET_MODE_THREAD" link="gnutls-gnutls.html#GNUTLS-FIPS140-SET-MODE-THREAD:CAPS"/>
+ <keyword type="typedef" name="gnutls_fips140_context_t" link="gnutls-gnutls.html#gnutls-fips140-context-t"/>
+ <keyword type="enum" name="enum gnutls_fips140_operation_state_t" link="gnutls-gnutls.html#gnutls-fips140-operation-state-t" since="3.7.3"/>
+ <keyword type="macro" name="GNUTLS_E_SUCCESS" link="gnutls-gnutls.html#GNUTLS-E-SUCCESS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-COMPRESSION-ALGORITHM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_CIPHER_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-TYPE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_LARGE_PACKET" link="gnutls-gnutls.html#GNUTLS-E-LARGE-PACKET:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNSUPPORTED_VERSION_PACKET" link="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-VERSION-PACKET:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TLS_PACKET_DECODING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-TLS-PACKET-DECODING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNEXPECTED_PACKET_LENGTH" link="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET-LENGTH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INVALID_SESSION" link="gnutls-gnutls.html#GNUTLS-E-INVALID-SESSION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_FATAL_ALERT_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-FATAL-ALERT-RECEIVED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNEXPECTED_PACKET" link="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-PACKET:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_WARNING_ALERT_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-WARNING-ALERT-RECEIVED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ERROR_IN_FINISHED_PACKET" link="gnutls-gnutls.html#GNUTLS-E-ERROR-IN-FINISHED-PACKET:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET" link="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-HANDSHAKE-PACKET:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_CIPHER_SUITE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-CIPHER-SUITE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNWANTED_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNWANTED-ALGORITHM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_MPI_SCAN_FAILED" link="gnutls-gnutls.html#GNUTLS-E-MPI-SCAN-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_DECRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-DECRYPTION-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_MEMORY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-MEMORY-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_DECOMPRESSION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-DECOMPRESSION-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_COMPRESSION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-COMPRESSION-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_AGAIN" link="gnutls-gnutls.html#GNUTLS-E-AGAIN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_EXPIRED" link="gnutls-gnutls.html#GNUTLS-E-EXPIRED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_DB_ERROR" link="gnutls-gnutls.html#GNUTLS-E-DB-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SRP_PWD_ERROR" link="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_KEYFILE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-KEYFILE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INSUFFICIENT_CREDENTIALS" link="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CREDENTIALS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INSUFICIENT_CREDENTIALS" link="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CREDENTIALS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INSUFFICIENT_CRED" link="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-CRED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INSUFICIENT_CRED" link="gnutls-gnutls.html#GNUTLS-E-INSUFICIENT-CRED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_HASH_FAILED" link="gnutls-gnutls.html#GNUTLS-E-HASH-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_BASE64_DECODING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-BASE64-DECODING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_MPI_PRINT_FAILED" link="gnutls-gnutls.html#GNUTLS-E-MPI-PRINT-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_REHANDSHAKE" link="gnutls-gnutls.html#GNUTLS-E-REHANDSHAKE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_GOT_APPLICATION_DATA" link="gnutls-gnutls.html#GNUTLS-E-GOT-APPLICATION-DATA:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_RECORD_LIMIT_REACHED" link="gnutls-gnutls.html#GNUTLS-E-RECORD-LIMIT-REACHED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ENCRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-ENCRYPTION-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_ENCRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-ENCRYPTION-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_DECRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-DECRYPTION-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_SIGN_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-SIGN-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION" link="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-CRITICAL-EXTENSION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_KEY_USAGE_VIOLATION" link="gnutls-gnutls.html#GNUTLS-E-KEY-USAGE-VIOLATION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_CERTIFICATE_FOUND" link="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-FOUND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INVALID_REQUEST" link="gnutls-gnutls.html#GNUTLS-E-INVALID-REQUEST:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SHORT_MEMORY_BUFFER" link="gnutls-gnutls.html#GNUTLS-E-SHORT-MEMORY-BUFFER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INTERRUPTED" link="gnutls-gnutls.html#GNUTLS-E-INTERRUPTED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PUSH_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PUSH-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PULL_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PULL-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER" link="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-PARAMETER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE" link="gnutls-gnutls.html#GNUTLS-E-REQUESTED-DATA-NOT-AVAILABLE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS1_WRONG_PAD" link="gnutls-gnutls.html#GNUTLS-E-PKCS1-WRONG-PAD:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION" link="gnutls-gnutls.html#GNUTLS-E-RECEIVED-ILLEGAL-EXTENSION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INTERNAL_ERROR" link="gnutls-gnutls.html#GNUTLS-E-INTERNAL-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_DH_PRIME_UNACCEPTABLE" link="gnutls-gnutls.html#GNUTLS-E-DH-PRIME-UNACCEPTABLE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_FILE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-FILE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TOO_MANY_EMPTY_PACKETS" link="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-EMPTY-PACKETS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_PK_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PK-ALGORITHM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TOO_MANY_HANDSHAKE_PACKETS" link="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-HANDSHAKE-PACKETS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_RECEIVED_DISALLOWED_NAME" link="gnutls-gnutls.html#GNUTLS-E-RECEIVED-DISALLOWED-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CERTIFICATE_REQUIRED" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-REQUIRED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_TEMPORARY_RSA_PARAMS" link="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-RSA-PARAMS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_COMPRESSION_ALGORITHMS" link="gnutls-gnutls.html#GNUTLS-E-NO-COMPRESSION-ALGORITHMS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_CIPHER_SUITES" link="gnutls-gnutls.html#GNUTLS-E-NO-CIPHER-SUITES:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OPENPGP_GETKEY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-GETKEY-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_SIG_VERIFY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-PK-SIG-VERIFY-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ILLEGAL_SRP_USERNAME" link="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-SRP-USERNAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SRP_PWD_PARSING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-SRP-PWD-PARSING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_KEYFILE_PARSING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-KEYFILE-PARSING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_TEMPORARY_DH_PARAMS" link="gnutls-gnutls.html#GNUTLS-E-NO-TEMPORARY-DH-PARAMS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_ELEMENT_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-E-ASN1-ELEMENT-NOT-FOUND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-E-ASN1-IDENTIFIER-NOT-FOUND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_DER_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_VALUE_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-FOUND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_GENERIC_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-GENERIC-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_VALUE_NOT_VALID" link="gnutls-gnutls.html#GNUTLS-E-ASN1-VALUE-NOT-VALID:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_TAG_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_TAG_IMPLICIT" link="gnutls-gnutls.html#GNUTLS-E-ASN1-TAG-IMPLICIT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_TYPE_ANY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-TYPE-ANY-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_SYNTAX_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-SYNTAX-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_DER_OVERFLOW" link="gnutls-gnutls.html#GNUTLS-E-ASN1-DER-OVERFLOW:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OPENPGP_UID_REVOKED" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-UID-REVOKED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CERTIFICATE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_X509_CERTIFICATE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-X509-CERTIFICATE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CERTIFICATE_KEY_MISMATCH" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-KEY-MISMATCH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-CERTIFICATE-TYPE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_X509_UNKNOWN_SAN" link="gnutls-gnutls.html#GNUTLS-E-X509-UNKNOWN-SAN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-FINGERPRINT-UNSUPPORTED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE" link="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-ATTRIBUTE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_HASH_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-HASH-ALGORITHM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-CONTENT-TYPE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-PKCS-BAG-TYPE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INVALID_PASSWORD" link="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_MAC_VERIFY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-MAC-VERIFY-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CONSTRAINT_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CONSTRAINT-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_WARNING_IA_IPHF_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-IPHF-RECEIVED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_WARNING_IA_FPHF_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-WARNING-IA-FPHF-RECEIVED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_IA_VERIFY_FAILED" link="gnutls-gnutls.html#GNUTLS-E-IA-VERIFY-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-ALGORITHM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNSUPPORTED_SIGNATURE_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-E-UNSUPPORTED-SIGNATURE-ALGORITHM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SAFE_RENEGOTIATION_FAILED" link="gnutls-gnutls.html#GNUTLS-E-SAFE-RENEGOTIATION-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNSAFE_RENEGOTIATION_DENIED" link="gnutls-gnutls.html#GNUTLS-E-UNSAFE-RENEGOTIATION-DENIED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNKNOWN_SRP_USERNAME" link="gnutls-gnutls.html#GNUTLS-E-UNKNOWN-SRP-USERNAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PREMATURE_TERMINATION" link="gnutls-gnutls.html#GNUTLS-E-PREMATURE-TERMINATION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_MALFORMED_CIDR" link="gnutls-gnutls.html#GNUTLS-E-MALFORMED-CIDR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_BASE64_ENCODING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-BASE64-ENCODING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY" link="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-GCRYPT-LIBRARY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY" link="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-CRYPTO-LIBRARY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY" link="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-LIBTASN1-LIBRARY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OPENPGP_KEYRING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-KEYRING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_X509_UNSUPPORTED_OID" link="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-OID:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_RANDOM_FAILED" link="gnutls-gnutls.html#GNUTLS-E-RANDOM-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_BASE64_UNEXPECTED_HEADER_ERROR" link="gnutls-gnutls.html#GNUTLS-E-BASE64-UNEXPECTED-HEADER-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OPENPGP_SUBKEY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-SUBKEY-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CRYPTO_ALREADY_REGISTERED" link="gnutls-gnutls.html#GNUTLS-E-CRYPTO-ALREADY-REGISTERED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ALREADY_REGISTERED" link="gnutls-gnutls.html#GNUTLS-E-ALREADY-REGISTERED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_HANDSHAKE_TOO_LARGE" link="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-TOO-LARGE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CRYPTODEV_IOCTL_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-IOCTL-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CRYPTODEV_DEVICE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CRYPTODEV-DEVICE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CHANNEL_BINDING_NOT_AVAILABLE" link="gnutls-gnutls.html#GNUTLS-E-CHANNEL-BINDING-NOT-AVAILABLE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_BAD_COOKIE" link="gnutls-gnutls.html#GNUTLS-E-BAD-COOKIE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OPENPGP_PREFERRED_KEY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-OPENPGP-PREFERRED-KEY-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INCOMPAT_DSA_KEY_WITH_TLS_PROTOCOL" link="gnutls-gnutls.html#GNUTLS-E-INCOMPAT-DSA-KEY-WITH-TLS-PROTOCOL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INSUFFICIENT_SECURITY" link="gnutls-gnutls.html#GNUTLS-E-INSUFFICIENT-SECURITY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_HEARTBEAT_PONG_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-HEARTBEAT-PONG-RECEIVED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_HEARTBEAT_PING_RECEIVED" link="gnutls-gnutls.html#GNUTLS-E-HEARTBEAT-PING-RECEIVED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNRECOGNIZED_NAME" link="gnutls-gnutls.html#GNUTLS-E-UNRECOGNIZED-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_LOAD_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-LOAD-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PARSING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PARSING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_PIN_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_SLOT_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-SLOT-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_LOCKING_ERROR" link="gnutls-gnutls.html#GNUTLS-E-LOCKING-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_ATTRIBUTE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-ATTRIBUTE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_DEVICE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-DEVICE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_DATA_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-DATA-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_UNSUPPORTED_FEATURE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-UNSUPPORTED-FEATURE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_KEY_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-KEY-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_PIN_EXPIRED" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-EXPIRED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_PIN_LOCKED" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-PIN-LOCKED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_SESSION_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-SESSION-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_SIGNATURE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-SIGNATURE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_TOKEN_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-TOKEN-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_USER_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-USER-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CRYPTO_INIT_FAILED" link="gnutls-gnutls.html#GNUTLS-E-CRYPTO-INIT-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TIMEDOUT" link="gnutls-gnutls.html#GNUTLS-E-TIMEDOUT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_USER_ERROR" link="gnutls-gnutls.html#GNUTLS-E-USER-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ECC_NO_SUPPORTED_CURVES" link="gnutls-gnutls.html#GNUTLS-E-ECC-NO-SUPPORTED-CURVES:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ECC_UNSUPPORTED_CURVE" link="gnutls-gnutls.html#GNUTLS-E-ECC-UNSUPPORTED-CURVE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PKCS11_REQUESTED_OBJECT_NOT_AVAILBLE" link="gnutls-gnutls.html#GNUTLS-E-PKCS11-REQUESTED-OBJECT-NOT-AVAILBLE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CERTIFICATE_LIST_UNSORTED" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-LIST-UNSORTED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ILLEGAL_PARAMETER" link="gnutls-gnutls.html#GNUTLS-E-ILLEGAL-PARAMETER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_PRIORITIES_WERE_SET" link="gnutls-gnutls.html#GNUTLS-E-NO-PRIORITIES-WERE-SET:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_X509_UNSUPPORTED_EXTENSION" link="gnutls-gnutls.html#GNUTLS-E-X509-UNSUPPORTED-EXTENSION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SESSION_EOF" link="gnutls-gnutls.html#GNUTLS-E-SESSION-EOF:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TPM_ERROR" link="gnutls-gnutls.html#GNUTLS-E-TPM-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TPM_KEY_PASSWORD_ERROR" link="gnutls-gnutls.html#GNUTLS-E-TPM-KEY-PASSWORD-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TPM_SRK_PASSWORD_ERROR" link="gnutls-gnutls.html#GNUTLS-E-TPM-SRK-PASSWORD-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TPM_SESSION_ERROR" link="gnutls-gnutls.html#GNUTLS-E-TPM-SESSION-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TPM_KEY_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-E-TPM-KEY-NOT-FOUND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TPM_UNINITIALIZED" link="gnutls-gnutls.html#GNUTLS-E-TPM-UNINITIALIZED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TPM_NO_LIB" link="gnutls-gnutls.html#GNUTLS-E-TPM-NO-LIB:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_CERTIFICATE_STATUS" link="gnutls-gnutls.html#GNUTLS-E-NO-CERTIFICATE-STATUS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OCSP_RESPONSE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-OCSP-RESPONSE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_RANDOM_DEVICE_ERROR" link="gnutls-gnutls.html#GNUTLS-E-RANDOM-DEVICE-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_AUTH_ERROR" link="gnutls-gnutls.html#GNUTLS-E-AUTH-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_APPLICATION_PROTOCOL" link="gnutls-gnutls.html#GNUTLS-E-NO-APPLICATION-PROTOCOL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SOCKETS_INIT_ERROR" link="gnutls-gnutls.html#GNUTLS-E-SOCKETS-INIT-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_KEY_IMPORT_FAILED" link="gnutls-gnutls.html#GNUTLS-E-KEY-IMPORT-FAILED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INAPPROPRIATE_FALLBACK" link="gnutls-gnutls.html#GNUTLS-E-INAPPROPRIATE-FALLBACK:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-VERIFICATION-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PRIVKEY_VERIFICATION_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PRIVKEY-VERIFICATION-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNEXPECTED_EXTENSIONS_LENGTH" link="gnutls-gnutls.html#GNUTLS-E-UNEXPECTED-EXTENSIONS-LENGTH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_EMBEDDED_NULL_IN_STRING" link="gnutls-gnutls.html#GNUTLS-E-ASN1-EMBEDDED-NULL-IN-STRING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SELF_TEST_ERROR" link="gnutls-gnutls.html#GNUTLS-E-SELF-TEST-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_SELF_TEST" link="gnutls-gnutls.html#GNUTLS-E-NO-SELF-TEST:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_LIB_IN_ERROR_STATE" link="gnutls-gnutls.html#GNUTLS-E-LIB-IN-ERROR-STATE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_GENERATION_ERROR" link="gnutls-gnutls.html#GNUTLS-E-PK-GENERATION-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_IDNA_ERROR" link="gnutls-gnutls.html#GNUTLS-E-IDNA-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NEED_FALLBACK" link="gnutls-gnutls.html#GNUTLS-E-NEED-FALLBACK:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_SESSION_USER_ID_CHANGED" link="gnutls-gnutls.html#GNUTLS-E-SESSION-USER-ID-CHANGED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_HANDSHAKE_DURING_FALSE_START" link="gnutls-gnutls.html#GNUTLS-E-HANDSHAKE-DURING-FALSE-START:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNAVAILABLE_DURING_HANDSHAKE" link="gnutls-gnutls.html#GNUTLS-E-UNAVAILABLE-DURING-HANDSHAKE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_INVALID_PUBKEY" link="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PUBKEY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_INVALID_PRIVKEY" link="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PRIVKEY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NOT_YET_ACTIVATED" link="gnutls-gnutls.html#GNUTLS-E-NOT-YET-ACTIVATED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INVALID_UTF8_STRING" link="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-STRING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_EMBEDDED_DATA" link="gnutls-gnutls.html#GNUTLS-E-NO-EMBEDDED-DATA:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INVALID_UTF8_EMAIL" link="gnutls-gnutls.html#GNUTLS-E-INVALID-UTF8-EMAIL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INVALID_PASSWORD_STRING" link="gnutls-gnutls.html#GNUTLS-E-INVALID-PASSWORD-STRING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CERTIFICATE_TIME_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CERTIFICATE-TIME-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_RECORD_OVERFLOW" link="gnutls-gnutls.html#GNUTLS-E-RECORD-OVERFLOW:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_ASN1_TIME_ERROR" link="gnutls-gnutls.html#GNUTLS-E-ASN1-TIME-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INCOMPATIBLE_SIG_WITH_KEY" link="gnutls-gnutls.html#GNUTLS-E-INCOMPATIBLE-SIG-WITH-KEY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_INVALID_PUBKEY_PARAMS" link="gnutls-gnutls.html#GNUTLS-E-PK-INVALID-PUBKEY-PARAMS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_PK_NO_VALIDATION_PARAMS" link="gnutls-gnutls.html#GNUTLS-E-PK-NO-VALIDATION-PARAMS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_OCSP_MISMATCH_WITH_CERTS" link="gnutls-gnutls.html#GNUTLS-E-OCSP-MISMATCH-WITH-CERTS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_NO_COMMON_KEY_SHARE" link="gnutls-gnutls.html#GNUTLS-E-NO-COMMON-KEY-SHARE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_REAUTH_REQUEST" link="gnutls-gnutls.html#GNUTLS-E-REAUTH-REQUEST:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_TOO_MANY_MATCHES" link="gnutls-gnutls.html#GNUTLS-E-TOO-MANY-MATCHES:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_CRL_VERIFICATION_ERROR" link="gnutls-gnutls.html#GNUTLS-E-CRL-VERIFICATION-ERROR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_MISSING_EXTENSION" link="gnutls-gnutls.html#GNUTLS-E-MISSING-EXTENSION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_DB_ENTRY_EXISTS" link="gnutls-gnutls.html#GNUTLS-E-DB-ENTRY-EXISTS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_EARLY_DATA_REJECTED" link="gnutls-gnutls.html#GNUTLS-E-EARLY-DATA-REJECTED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_X509_DUPLICATE_EXTENSION" link="gnutls-gnutls.html#GNUTLS-E-X509-DUPLICATE-EXTENSION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_UNIMPLEMENTED_FEATURE" link="gnutls-gnutls.html#GNUTLS-E-UNIMPLEMENTED-FEATURE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INT_RET_0" link="gnutls-gnutls.html#GNUTLS-E-INT-RET-0:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_INT_CHECK_AGAIN" link="gnutls-gnutls.html#GNUTLS-E-INT-CHECK-AGAIN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_APPLICATION_ERROR_MAX" link="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MAX:CAPS"/>
+ <keyword type="macro" name="GNUTLS_E_APPLICATION_ERROR_MIN" link="gnutls-gnutls.html#GNUTLS-E-APPLICATION-ERROR-MIN:CAPS"/>
+ <keyword type="struct" name="struct gnutls_certificate_credentials_st" link="gnutls-gnutls.html#gnutls-certificate-credentials-st"/>
+ <keyword type="struct" name="struct gnutls_dh_params_int" link="gnutls-gnutls.html#gnutls-dh-params-int"/>
+ <keyword type="struct" name="struct gnutls_openpgp_crt_int" link="gnutls-gnutls.html#gnutls-openpgp-crt-int"/>
+ <keyword type="struct" name="struct gnutls_openpgp_keyring_int" link="gnutls-gnutls.html#gnutls-openpgp-keyring-int"/>
+ <keyword type="struct" name="struct gnutls_openpgp_privkey_int" link="gnutls-gnutls.html#gnutls-openpgp-privkey-int"/>
+ <keyword type="struct" name="struct gnutls_pkcs11_privkey_st" link="gnutls-gnutls.html#gnutls-pkcs11-privkey-st"/>
+ <keyword type="struct" name="struct gnutls_priority_st" link="gnutls-gnutls.html#gnutls-priority-st"/>
+ <keyword type="struct" name="struct gnutls_privkey_st" link="gnutls-gnutls.html#gnutls-privkey-st"/>
+ <keyword type="struct" name="struct gnutls_pubkey_st" link="gnutls-gnutls.html#gnutls-pubkey-st"/>
+ <keyword type="struct" name="struct gnutls_session_int" link="gnutls-gnutls.html#gnutls-session-int"/>
+ <keyword type="struct" name="struct gnutls_tdb_int" link="gnutls-gnutls.html#gnutls-tdb-int"/>
+ <keyword type="struct" name="gnutls_x509_crl_int" link="gnutls-gnutls.html#gnutls-x509-crl-int"/>
+ <keyword type="struct" name="gnutls_x509_crq_int" link="gnutls-gnutls.html#gnutls-x509-crq-int"/>
+ <keyword type="struct" name="gnutls_x509_crt_int" link="gnutls-gnutls.html#gnutls-x509-crt-int"/>
+ <keyword type="struct" name="gnutls_x509_privkey_int" link="gnutls-gnutls.html#gnutls-x509-privkey-int"/>
+ <keyword type="function" name="gnutls_privkey_sign_func ()" link="gnutls-abstract.html#gnutls-privkey-sign-func"/>
+ <keyword type="function" name="gnutls_privkey_decrypt_func ()" link="gnutls-abstract.html#gnutls-privkey-decrypt-func"/>
+ <keyword type="function" name="gnutls_privkey_decrypt_func2 ()" link="gnutls-abstract.html#gnutls-privkey-decrypt-func2"/>
+ <keyword type="function" name="gnutls_privkey_sign_hash_func ()" link="gnutls-abstract.html#gnutls-privkey-sign-hash-func"/>
+ <keyword type="function" name="gnutls_privkey_sign_data_func ()" link="gnutls-abstract.html#gnutls-privkey-sign-data-func"/>
+ <keyword type="function" name="gnutls_privkey_deinit_func ()" link="gnutls-abstract.html#gnutls-privkey-deinit-func"/>
+ <keyword type="macro" name="GNUTLS_SIGN_ALGO_TO_FLAGS()" link="gnutls-abstract.html#GNUTLS-SIGN-ALGO-TO-FLAGS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_FLAGS_TO_SIGN_ALGO()" link="gnutls-abstract.html#GNUTLS-FLAGS-TO-SIGN-ALGO:CAPS"/>
+ <keyword type="function" name="gnutls_privkey_info_func ()" link="gnutls-abstract.html#gnutls-privkey-info-func"/>
+ <keyword type="function" name="gnutls_pubkey_init ()" link="gnutls-abstract.html#gnutls-pubkey-init" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_deinit ()" link="gnutls-abstract.html#gnutls-pubkey-deinit" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_verify_params ()" link="gnutls-abstract.html#gnutls-pubkey-verify-params" since="3.3.0"/>
+ <keyword type="function" name="gnutls_pubkey_set_pin_function ()" link="gnutls-abstract.html#gnutls-pubkey-set-pin-function" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pubkey_get_pk_algorithm ()" link="gnutls-abstract.html#gnutls-pubkey-get-pk-algorithm" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_set_spki ()" link="gnutls-abstract.html#gnutls-pubkey-set-spki" since="3.6.0"/>
+ <keyword type="function" name="gnutls_pubkey_get_spki ()" link="gnutls-abstract.html#gnutls-pubkey-get-spki" since="3.6.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_x509 ()" link="gnutls-abstract.html#gnutls-pubkey-import-x509" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_x509_crq ()" link="gnutls-abstract.html#gnutls-pubkey-import-x509-crq" since="3.1.5"/>
+ <keyword type="function" name="gnutls_pubkey_import_pkcs11 ()" link="gnutls-abstract.html#gnutls-pubkey-import-pkcs11" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_openpgp ()" link="gnutls-abstract.html#gnutls-pubkey-import-openpgp" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_openpgp_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-openpgp-raw" since="3.1.3"/>
+ <keyword type="function" name="gnutls_pubkey_import_x509_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-x509-raw" since="3.1.3"/>
+ <keyword type="function" name="gnutls_pubkey_import_privkey ()" link="gnutls-abstract.html#gnutls-pubkey-import-privkey" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_tpm_url ()" link="gnutls-abstract.html#gnutls-pubkey-import-tpm-url" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_url ()" link="gnutls-abstract.html#gnutls-pubkey-import-url" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_tpm_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-tpm-raw" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pubkey_get_preferred_hash_algorithm ()" link="gnutls-abstract.html#gnutls-pubkey-get-preferred-hash-algorithm" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_export_rsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-export-rsa-raw" since="3.3.0"/>
+ <keyword type="function" name="gnutls_pubkey_export_rsa_raw2 ()" link="gnutls-abstract.html#gnutls-pubkey-export-rsa-raw2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_pubkey_export_dsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-export-dsa-raw" since="3.3.0"/>
+ <keyword type="function" name="gnutls_pubkey_export_dsa_raw2 ()" link="gnutls-abstract.html#gnutls-pubkey-export-dsa-raw2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_pubkey_export_ecc_raw2 ()" link="gnutls-abstract.html#gnutls-pubkey-export-ecc-raw2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_pubkey_export_gost_raw2 ()" link="gnutls-abstract.html#gnutls-pubkey-export-gost-raw2" since="3.6.3"/>
+ <keyword type="function" name="gnutls_pubkey_export_ecc_raw ()" link="gnutls-abstract.html#gnutls-pubkey-export-ecc-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_pubkey_export_ecc_x962 ()" link="gnutls-abstract.html#gnutls-pubkey-export-ecc-x962" since="3.3.0"/>
+ <keyword type="function" name="gnutls_pubkey_export ()" link="gnutls-abstract.html#gnutls-pubkey-export" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_export2 ()" link="gnutls-abstract.html#gnutls-pubkey-export2" since="3.1.3"/>
+ <keyword type="function" name="gnutls_pubkey_get_key_id ()" link="gnutls-abstract.html#gnutls-pubkey-get-key-id" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_get_openpgp_key_id ()" link="gnutls-abstract.html#gnutls-pubkey-get-openpgp-key-id"/>
+ <keyword type="function" name="gnutls_pubkey_get_key_usage ()" link="gnutls-abstract.html#gnutls-pubkey-get-key-usage" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_set_key_usage ()" link="gnutls-abstract.html#gnutls-pubkey-set-key-usage" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import ()" link="gnutls-abstract.html#gnutls-pubkey-import" since="2.12.0"/>
+ <keyword type="macro" name="gnutls_pubkey_import_pkcs11_url()" link="gnutls-abstract.html#gnutls-pubkey-import-pkcs11-url" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_dsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-dsa-raw" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_rsa_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-rsa-raw" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_ecc_x962 ()" link="gnutls-abstract.html#gnutls-pubkey-import-ecc-x962" since="3.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_ecc_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-ecc-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_pubkey_import_gost_raw ()" link="gnutls-abstract.html#gnutls-pubkey-import-gost-raw" since="3.6.3"/>
+ <keyword type="function" name="gnutls_pubkey_encrypt_data ()" link="gnutls-abstract.html#gnutls-pubkey-encrypt-data" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_pubkey ()" link="gnutls-abstract.html#gnutls-x509-crt-set-pubkey" since="2.12.0"/>
+ <keyword type="function" name="gnutls_x509_crq_set_pubkey ()" link="gnutls-abstract.html#gnutls-x509-crq-set-pubkey" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pubkey_verify_hash2 ()" link="gnutls-abstract.html#gnutls-pubkey-verify-hash2" since="3.0"/>
+ <keyword type="function" name="gnutls_pubkey_verify_data2 ()" link="gnutls-abstract.html#gnutls-pubkey-verify-data2" since="3.0"/>
+ <keyword type="function" name="gnutls_privkey_init ()" link="gnutls-abstract.html#gnutls-privkey-init" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_deinit ()" link="gnutls-abstract.html#gnutls-privkey-deinit" since="2.12.0"/>
+ <keyword type="macro" name="GNUTLS_SUBGROUP_TO_BITS()" link="gnutls-abstract.html#GNUTLS-SUBGROUP-TO-BITS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_BITS_TO_SUBGROUP()" link="gnutls-abstract.html#GNUTLS-BITS-TO-SUBGROUP:CAPS"/>
+ <keyword type="macro" name="GNUTLS_BITS_TO_GROUP()" link="gnutls-abstract.html#GNUTLS-BITS-TO-GROUP:CAPS"/>
+ <keyword type="macro" name="GNUTLS_BITS_HAVE_SUBGROUP()" link="gnutls-abstract.html#GNUTLS-BITS-HAVE-SUBGROUP:CAPS"/>
+ <keyword type="function" name="gnutls_privkey_generate ()" link="gnutls-abstract.html#gnutls-privkey-generate" since="3.3.0"/>
+ <keyword type="function" name="gnutls_privkey_generate2 ()" link="gnutls-abstract.html#gnutls-privkey-generate2" since="3.5.0"/>
+ <keyword type="function" name="gnutls_privkey_set_spki ()" link="gnutls-abstract.html#gnutls-privkey-set-spki" since="3.6.0"/>
+ <keyword type="function" name="gnutls_privkey_get_spki ()" link="gnutls-abstract.html#gnutls-privkey-get-spki" since="3.6.0"/>
+ <keyword type="function" name="gnutls_privkey_verify_seed ()" link="gnutls-abstract.html#gnutls-privkey-verify-seed" since="3.5.0"/>
+ <keyword type="function" name="gnutls_privkey_get_seed ()" link="gnutls-abstract.html#gnutls-privkey-get-seed" since="3.5.0"/>
+ <keyword type="function" name="gnutls_privkey_verify_params ()" link="gnutls-abstract.html#gnutls-privkey-verify-params" since="3.3.0"/>
+ <keyword type="function" name="gnutls_privkey_set_flags ()" link="gnutls-abstract.html#gnutls-privkey-set-flags" since="3.5.0"/>
+ <keyword type="function" name="gnutls_privkey_set_pin_function ()" link="gnutls-abstract.html#gnutls-privkey-set-pin-function" since="3.1.0"/>
+ <keyword type="function" name="gnutls_privkey_get_pk_algorithm ()" link="gnutls-abstract.html#gnutls-privkey-get-pk-algorithm" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_status ()" link="gnutls-abstract.html#gnutls-privkey-status" since="3.1.10"/>
+ <keyword type="function" name="gnutls_privkey_import_pkcs11 ()" link="gnutls-abstract.html#gnutls-privkey-import-pkcs11" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_import_x509 ()" link="gnutls-abstract.html#gnutls-privkey-import-x509" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_import_openpgp ()" link="gnutls-abstract.html#gnutls-privkey-import-openpgp" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_export_x509 ()" link="gnutls-abstract.html#gnutls-privkey-export-x509" since="3.4.0"/>
+ <keyword type="function" name="gnutls_privkey_export_openpgp ()" link="gnutls-abstract.html#gnutls-privkey-export-openpgp" since="3.4.0"/>
+ <keyword type="function" name="gnutls_privkey_export_pkcs11 ()" link="gnutls-abstract.html#gnutls-privkey-export-pkcs11" since="3.4.0"/>
+ <keyword type="function" name="gnutls_privkey_import_openpgp_raw ()" link="gnutls-abstract.html#gnutls-privkey-import-openpgp-raw" since="3.1.0"/>
+ <keyword type="function" name="gnutls_privkey_import_x509_raw ()" link="gnutls-abstract.html#gnutls-privkey-import-x509-raw" since="3.1.0"/>
+ <keyword type="function" name="gnutls_privkey_import_tpm_raw ()" link="gnutls-abstract.html#gnutls-privkey-import-tpm-raw" since="3.1.0"/>
+ <keyword type="function" name="gnutls_privkey_import_tpm_url ()" link="gnutls-abstract.html#gnutls-privkey-import-tpm-url" since="3.1.0"/>
+ <keyword type="function" name="gnutls_privkey_import_url ()" link="gnutls-abstract.html#gnutls-privkey-import-url" since="3.1.0"/>
+ <keyword type="function" name="gnutls_privkey_import_pkcs11_url ()" link="gnutls-abstract.html#gnutls-privkey-import-pkcs11-url" since="3.1.0"/>
+ <keyword type="function" name="gnutls_privkey_import_ext ()" link="gnutls-abstract.html#gnutls-privkey-import-ext" since="3.0"/>
+ <keyword type="function" name="gnutls_privkey_import_ext2 ()" link="gnutls-abstract.html#gnutls-privkey-import-ext2" since="3.1"/>
+ <keyword type="function" name="gnutls_privkey_import_ext3 ()" link="gnutls-abstract.html#gnutls-privkey-import-ext3" since="3.4.0"/>
+ <keyword type="function" name="gnutls_privkey_import_ext4 ()" link="gnutls-abstract.html#gnutls-privkey-import-ext4" since="3.6.0"/>
+ <keyword type="function" name="gnutls_privkey_import_dsa_raw ()" link="gnutls-abstract.html#gnutls-privkey-import-dsa-raw"/>
+ <keyword type="function" name="gnutls_privkey_import_rsa_raw ()" link="gnutls-abstract.html#gnutls-privkey-import-rsa-raw"/>
+ <keyword type="function" name="gnutls_privkey_import_ecc_raw ()" link="gnutls-abstract.html#gnutls-privkey-import-ecc-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_privkey_import_gost_raw ()" link="gnutls-abstract.html#gnutls-privkey-import-gost-raw" since="3.6.3"/>
+ <keyword type="function" name="gnutls_privkey_sign_data ()" link="gnutls-abstract.html#gnutls-privkey-sign-data" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_sign_data2 ()" link="gnutls-abstract.html#gnutls-privkey-sign-data2" since="3.6.0"/>
+ <keyword type="macro" name="gnutls_privkey_sign_raw_data()" link="gnutls-abstract.html#gnutls-privkey-sign-raw-data"/>
+ <keyword type="function" name="gnutls_privkey_sign_hash ()" link="gnutls-abstract.html#gnutls-privkey-sign-hash" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_sign_hash2 ()" link="gnutls-abstract.html#gnutls-privkey-sign-hash2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_privkey_decrypt_data ()" link="gnutls-abstract.html#gnutls-privkey-decrypt-data" since="2.12.0"/>
+ <keyword type="function" name="gnutls_privkey_decrypt_data2 ()" link="gnutls-abstract.html#gnutls-privkey-decrypt-data2" since="3.6.5"/>
+ <keyword type="function" name="gnutls_privkey_export_rsa_raw ()" link="gnutls-abstract.html#gnutls-privkey-export-rsa-raw" since="3.3.0"/>
+ <keyword type="function" name="gnutls_privkey_export_rsa_raw2 ()" link="gnutls-abstract.html#gnutls-privkey-export-rsa-raw2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_privkey_export_dsa_raw ()" link="gnutls-abstract.html#gnutls-privkey-export-dsa-raw" since="3.3.0"/>
+ <keyword type="function" name="gnutls_privkey_export_dsa_raw2 ()" link="gnutls-abstract.html#gnutls-privkey-export-dsa-raw2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_privkey_export_ecc_raw ()" link="gnutls-abstract.html#gnutls-privkey-export-ecc-raw" since="3.3.0"/>
+ <keyword type="function" name="gnutls_privkey_export_ecc_raw2 ()" link="gnutls-abstract.html#gnutls-privkey-export-ecc-raw2" since="3.6.0"/>
+ <keyword type="function" name="gnutls_privkey_export_gost_raw2 ()" link="gnutls-abstract.html#gnutls-privkey-export-gost-raw2" since="3.6.3"/>
+ <keyword type="function" name="gnutls_x509_crt_privkey_sign ()" link="gnutls-abstract.html#gnutls-x509-crt-privkey-sign"/>
+ <keyword type="function" name="gnutls_x509_crl_privkey_sign ()" link="gnutls-abstract.html#gnutls-x509-crl-privkey-sign"/>
+ <keyword type="function" name="gnutls_x509_crq_privkey_sign ()" link="gnutls-abstract.html#gnutls-x509-crq-privkey-sign" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pcert_import_x509 ()" link="gnutls-abstract.html#gnutls-pcert-import-x509" since="3.0"/>
+ <keyword type="function" name="gnutls_pcert_import_x509_list ()" link="gnutls-abstract.html#gnutls-pcert-import-x509-list" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pcert_export_x509 ()" link="gnutls-abstract.html#gnutls-pcert-export-x509" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pcert_list_import_x509_raw ()" link="gnutls-abstract.html#gnutls-pcert-list-import-x509-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_pcert_list_import_x509_file ()" link="gnutls-abstract.html#gnutls-pcert-list-import-x509-file"/>
+ <keyword type="function" name="gnutls_pcert_import_x509_raw ()" link="gnutls-abstract.html#gnutls-pcert-import-x509-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_pcert_import_openpgp_raw ()" link="gnutls-abstract.html#gnutls-pcert-import-openpgp-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_pcert_import_openpgp ()" link="gnutls-abstract.html#gnutls-pcert-import-openpgp" since="3.0"/>
+ <keyword type="function" name="gnutls_pcert_export_openpgp ()" link="gnutls-abstract.html#gnutls-pcert-export-openpgp"/>
+ <keyword type="function" name="gnutls_pcert_deinit ()" link="gnutls-abstract.html#gnutls-pcert-deinit" since="3.0"/>
+ <keyword type="function" name="gnutls_pcert_import_rawpk ()" link="gnutls-abstract.html#gnutls-pcert-import-rawpk" since="3.6.6"/>
+ <keyword type="function" name="gnutls_pcert_import_rawpk_raw ()" link="gnutls-abstract.html#gnutls-pcert-import-rawpk-raw" since="3.6.6"/>
+ <keyword type="function" name="gnutls_certificate_set_retrieve_function2 ()" link="gnutls-abstract.html#gnutls-certificate-set-retrieve-function2" since="3.0"/>
+ <keyword type="function" name="gnutls_certificate_set_retrieve_function3 ()" link="gnutls-abstract.html#gnutls-certificate-set-retrieve-function3" since="3.6.3"/>
+ <keyword type="function" name="gnutls_certificate_set_key ()" link="gnutls-abstract.html#gnutls-certificate-set-key" since="3.0"/>
+ <keyword type="function" name="gnutls_pubkey_print ()" link="gnutls-abstract.html#gnutls-pubkey-print" since="3.1.5"/>
+ <keyword type="macro" name="GNUTLS_PUBKEY_VERIFY_FLAG_TLS_RSA" link="gnutls-abstract.html#GNUTLS-PUBKEY-VERIFY-FLAG-TLS-RSA:CAPS"/>
+ <keyword type="enum" name="enum gnutls_pubkey_flags_t" link="gnutls-abstract.html#gnutls-pubkey-flags-t"/>
+ <keyword type="enum" name="enum gnutls_abstract_export_flags_t" link="gnutls-abstract.html#gnutls-abstract-export-flags-t"/>
+ <keyword type="macro" name="GNUTLS_PUBKEY_VERIFY_FLAG_TLS1_RSA" link="gnutls-abstract.html#GNUTLS-PUBKEY-VERIFY-FLAG-TLS1-RSA:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PRIVKEY_INFO_PK_ALGO" link="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PRIVKEY_INFO_SIGN_ALGO" link="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-SIGN-ALGO:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PRIVKEY_INFO_HAVE_SIGN_ALGO" link="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-HAVE-SIGN-ALGO:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PRIVKEY_INFO_PK_ALGO_BITS" link="gnutls-abstract.html#GNUTLS-PRIVKEY-INFO-PK-ALGO-BITS:CAPS"/>
+ <keyword type="macro" name="gnutls_pubkey_get_pk_rsa_raw" link="gnutls-abstract.html#gnutls-pubkey-get-pk-rsa-raw"/>
+ <keyword type="macro" name="gnutls_pubkey_get_pk_dsa_raw" link="gnutls-abstract.html#gnutls-pubkey-get-pk-dsa-raw"/>
+ <keyword type="macro" name="gnutls_pubkey_get_pk_ecc_raw" link="gnutls-abstract.html#gnutls-pubkey-get-pk-ecc-raw"/>
+ <keyword type="macro" name="gnutls_pubkey_get_pk_ecc_x962" link="gnutls-abstract.html#gnutls-pubkey-get-pk-ecc-x962"/>
+ <keyword type="enum" name="enum gnutls_privkey_flags_t" link="gnutls-abstract.html#gnutls-privkey-flags-t"/>
+ <keyword type="struct" name="gnutls_pcert_st" link="gnutls-abstract.html#gnutls-pcert-st"/>
+ <keyword type="macro" name="GNUTLS_PCERT_NO_CERT" link="gnutls-abstract.html#GNUTLS-PCERT-NO-CERT:CAPS"/>
+ <keyword type="struct" name="struct gnutls_cert_retr_st" link="gnutls-abstract.html#gnutls-cert-retr-st"/>
+ <keyword type="macro" name="GNUTLS_CERT_RETR_DEINIT_ALL" link="gnutls-abstract.html#GNUTLS-CERT-RETR-DEINIT-ALL:CAPS"/>
+ <keyword type="function" name="gnutls_x509_crt_init ()" link="gnutls-x509.html#gnutls-x509-crt-init"/>
+ <keyword type="function" name="gnutls_x509_crt_deinit ()" link="gnutls-x509.html#gnutls-x509-crt-deinit"/>
+ <keyword type="function" name="gnutls_x509_crt_set_flags ()" link="gnutls-x509.html#gnutls-x509-crt-set-flags" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_crt_equals ()" link="gnutls-x509.html#gnutls-x509-crt-equals"/>
+ <keyword type="function" name="gnutls_x509_crt_equals2 ()" link="gnutls-x509.html#gnutls-x509-crt-equals2"/>
+ <keyword type="function" name="gnutls_x509_crt_import ()" link="gnutls-x509.html#gnutls-x509-crt-import"/>
+ <keyword type="function" name="gnutls_x509_crt_list_import2 ()" link="gnutls-x509.html#gnutls-x509-crt-list-import2" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_list_import ()" link="gnutls-x509.html#gnutls-x509-crt-list-import"/>
+ <keyword type="function" name="gnutls_x509_crt_import_url ()" link="gnutls-x509.html#gnutls-x509-crt-import-url" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_crt_list_import_url ()" link="gnutls-x509.html#gnutls-x509-crt-list-import-url" since="3.6.3"/>
+ <keyword type="function" name="gnutls_x509_crt_export ()" link="gnutls-x509.html#gnutls-x509-crt-export"/>
+ <keyword type="function" name="gnutls_x509_crt_export2 ()" link="gnutls-x509.html#gnutls-x509-crt-export2" since="3.1.3"/>
+ <keyword type="function" name="gnutls_x509_crt_get_private_key_usage_period ()" link="gnutls-x509.html#gnutls-x509-crt-get-private-key-usage-period"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_dn2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn2" since="3.1.10"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_dn3 ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn3" since="3.5.7"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-dn-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_get_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn"/>
+ <keyword type="function" name="gnutls_x509_crt_get_dn2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn2" since="3.1.10"/>
+ <keyword type="function" name="gnutls_x509_crt_get_dn3 ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn3" since="3.5.7"/>
+ <keyword type="function" name="gnutls_x509_crt_get_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_get_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-dn-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_check_hostname ()" link="gnutls-x509.html#gnutls-x509-crt-check-hostname"/>
+ <keyword type="function" name="gnutls_x509_crt_check_hostname2 ()" link="gnutls-x509.html#gnutls-x509-crt-check-hostname2" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_check_email ()" link="gnutls-x509.html#gnutls-x509-crt-check-email"/>
+ <keyword type="function" name="gnutls_x509_crt_check_ip ()" link="gnutls-x509.html#gnutls-x509-crt-check-ip"/>
+ <keyword type="function" name="gnutls_x509_crt_get_signature_algorithm ()" link="gnutls-x509.html#gnutls-x509-crt-get-signature-algorithm"/>
+ <keyword type="function" name="gnutls_x509_crt_get_signature ()" link="gnutls-x509.html#gnutls-x509-crt-get-signature"/>
+ <keyword type="function" name="gnutls_x509_crt_get_version ()" link="gnutls-x509.html#gnutls-x509-crt-get-version"/>
+ <keyword type="function" name="gnutls_x509_crt_get_pk_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-oid" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_signature_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-signature-oid" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-key-id"/>
+ <keyword type="function" name="gnutls_x509_crt_set_private_key_usage_period ()" link="gnutls-x509.html#gnutls-x509-crt-set-private-key-usage-period"/>
+ <keyword type="function" name="gnutls_x509_crt_set_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-set-authority-key-id"/>
+ <keyword type="function" name="gnutls_x509_crt_get_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-authority-key-id"/>
+ <keyword type="function" name="gnutls_x509_crt_get_authority_key_gn_serial ()" link="gnutls-x509.html#gnutls-x509-crt-get-authority-key-gn-serial" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_subject_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-key-id"/>
+ <keyword type="function" name="gnutls_x509_crt_get_subject_unique_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-unique-id"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_unique_id ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-unique-id" since="2.12.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_pin_function ()" link="gnutls-x509.html#gnutls-x509-crt-set-pin-function" since="3.1.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_authority_info_access ()" link="gnutls-x509.html#gnutls-x509-crt-get-authority-info-access" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_check ()" link="gnutls-x509.html#gnutls-x509-name-constraints-check" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_check_crt ()" link="gnutls-x509.html#gnutls-x509-name-constraints-check-crt" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_init ()" link="gnutls-x509.html#gnutls-x509-name-constraints-init" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_deinit ()" link="gnutls-x509.html#gnutls-x509-name-constraints-deinit" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_name_constraints ()" link="gnutls-x509.html#gnutls-x509-crt-get-name-constraints" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_add_permitted ()" link="gnutls-x509.html#gnutls-x509-name-constraints-add-permitted" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_add_excluded ()" link="gnutls-x509.html#gnutls-x509-name-constraints-add-excluded" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_name_constraints ()" link="gnutls-x509.html#gnutls-x509-crt-set-name-constraints" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_get_permitted ()" link="gnutls-x509.html#gnutls-x509-name-constraints-get-permitted" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_name_constraints_get_excluded ()" link="gnutls-x509.html#gnutls-x509-name-constraints-get-excluded" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_cidr_to_rfc5280 ()" link="gnutls-x509.html#gnutls-x509-cidr-to-rfc5280" since="3.5.4"/>
+ <keyword type="function" name="gnutls_x509_crt_get_crl_dist_points ()" link="gnutls-x509.html#gnutls-x509-crt-get-crl-dist-points"/>
+ <keyword type="function" name="gnutls_x509_crt_set_crl_dist_points2 ()" link="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points2" since="2.6.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_crl_dist_points ()" link="gnutls-x509.html#gnutls-x509-crt-set-crl-dist-points"/>
+ <keyword type="function" name="gnutls_x509_crt_cpy_crl_dist_points ()" link="gnutls-x509.html#gnutls-x509-crt-cpy-crl-dist-points"/>
+ <keyword type="function" name="gnutls_x509_crl_sign ()" link="gnutls-x509.html#gnutls-x509-crl-sign"/>
+ <keyword type="function" name="gnutls_x509_crl_sign2 ()" link="gnutls-x509.html#gnutls-x509-crl-sign2"/>
+ <keyword type="function" name="gnutls_x509_crt_get_activation_time ()" link="gnutls-x509.html#gnutls-x509-crt-get-activation-time"/>
+ <keyword type="function" name="gnutls_x509_crt_get_expiration_time ()" link="gnutls-x509.html#gnutls-x509-crt-get-expiration-time"/>
+ <keyword type="function" name="gnutls_x509_crt_get_serial ()" link="gnutls-x509.html#gnutls-x509-crt-get-serial"/>
+ <keyword type="function" name="gnutls_x509_spki_init ()" link="gnutls-x509.html#gnutls-x509-spki-init" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_spki_deinit ()" link="gnutls-x509.html#gnutls-x509-spki-deinit" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_spki_get_rsa_pss_params ()" link="gnutls-x509.html#gnutls-x509-spki-get-rsa-pss-params" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_spki_set_rsa_pss_params ()" link="gnutls-x509.html#gnutls-x509-spki-set-rsa-pss-params" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_pk_algorithm ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-algorithm"/>
+ <keyword type="function" name="gnutls_x509_crt_set_spki ()" link="gnutls-x509.html#gnutls-x509-crt-set-spki" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_spki ()" link="gnutls-x509.html#gnutls-x509-crt-get-spki" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_pk_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-rsa-raw"/>
+ <keyword type="function" name="gnutls_x509_crt_get_pk_dsa_raw ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-dsa-raw"/>
+ <keyword type="function" name="gnutls_x509_crt_get_pk_ecc_raw ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-ecc-raw" since="3.4.1"/>
+ <keyword type="function" name="gnutls_x509_crt_get_pk_gost_raw ()" link="gnutls-x509.html#gnutls-x509-crt-get-pk-gost-raw" since="3.6.3"/>
+ <keyword type="function" name="gnutls_x509_crt_get_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name"/>
+ <keyword type="function" name="gnutls_x509_crt_get_subject_alt_name2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-name2"/>
+ <keyword type="function" name="gnutls_x509_crt_get_subject_alt_othername_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject-alt-othername-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_alt_name ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name" since="2.10.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_alt_name2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-name2" since="2.10.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer_alt_othername_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer-alt-othername-oid" since="2.10.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_ca_status ()" link="gnutls-x509.html#gnutls-x509-crt-get-ca-status"/>
+ <keyword type="function" name="gnutls_x509_crt_get_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crt-get-basic-constraints"/>
+ <keyword type="function" name="gnutls_x509_crt_get_key_usage ()" link="gnutls-x509.html#gnutls-x509-crt-get-key-usage"/>
+ <keyword type="function" name="gnutls_x509_crt_set_key_usage ()" link="gnutls-x509.html#gnutls-x509-crt-set-key-usage"/>
+ <keyword type="function" name="gnutls_x509_crt_set_authority_info_access ()" link="gnutls-x509.html#gnutls-x509-crt-set-authority-info-access" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_inhibit_anypolicy ()" link="gnutls-x509.html#gnutls-x509-crt-get-inhibit-anypolicy" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_inhibit_anypolicy ()" link="gnutls-x509.html#gnutls-x509-crt-set-inhibit-anypolicy"/>
+ <keyword type="function" name="gnutls_x509_crt_get_proxy ()" link="gnutls-x509.html#gnutls-x509-crt-get-proxy"/>
+ <keyword type="function" name="gnutls_x509_tlsfeatures_init ()" link="gnutls-x509.html#gnutls-x509-tlsfeatures-init" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_tlsfeatures_deinit ()" link="gnutls-x509.html#gnutls-x509-tlsfeatures-deinit" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_tlsfeatures_get ()" link="gnutls-x509.html#gnutls-x509-tlsfeatures-get" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_crt_set_tlsfeatures ()" link="gnutls-x509.html#gnutls-x509-crt-set-tlsfeatures" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_crt_get_tlsfeatures ()" link="gnutls-x509.html#gnutls-x509-crt-get-tlsfeatures" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_tlsfeatures_check_crt ()" link="gnutls-x509.html#gnutls-x509-tlsfeatures-check-crt"/>
+ <keyword type="function" name="gnutls_x509_policy_release ()" link="gnutls-x509.html#gnutls-x509-policy-release" since="3.1.5"/>
+ <keyword type="function" name="gnutls_x509_crt_get_policy ()" link="gnutls-x509.html#gnutls-x509-crt-get-policy" since="3.1.5"/>
+ <keyword type="function" name="gnutls_x509_crt_set_policy ()" link="gnutls-x509.html#gnutls-x509-crt-set-policy" since="3.1.5"/>
+ <keyword type="function" name="gnutls_x509_dn_oid_known ()" link="gnutls-x509.html#gnutls-x509-dn-oid-known"/>
+ <keyword type="function" name="gnutls_x509_dn_oid_name ()" link="gnutls-x509.html#gnutls-x509-dn-oid-name" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_get_extension_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_get_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crq_get_signature_algorithm ()" link="gnutls-x509.html#gnutls-x509-crq-get-signature-algorithm" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_extension_by_oid2 ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid2" since="3.3.8"/>
+ <keyword type="function" name="gnutls_x509_crt_get_extension_info ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-info"/>
+ <keyword type="function" name="gnutls_x509_crt_get_extension_data ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-data"/>
+ <keyword type="function" name="gnutls_x509_crt_get_extension_data2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-data2"/>
+ <keyword type="function" name="gnutls_x509_crt_set_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-extension-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_set_dn ()" link="gnutls-x509.html#gnutls-x509-crt-set-dn"/>
+ <keyword type="function" name="gnutls_x509_crt_set_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-dn-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_set_issuer_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-issuer-dn-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_set_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crt-set-issuer-dn"/>
+ <keyword type="function" name="gnutls_x509_crt_set_version ()" link="gnutls-x509.html#gnutls-x509-crt-set-version"/>
+ <keyword type="function" name="gnutls_x509_crt_set_key ()" link="gnutls-x509.html#gnutls-x509-crt-set-key"/>
+ <keyword type="function" name="gnutls_x509_crt_set_ca_status ()" link="gnutls-x509.html#gnutls-x509-crt-set-ca-status"/>
+ <keyword type="function" name="gnutls_x509_crt_set_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crt-set-basic-constraints"/>
+ <keyword type="function" name="gnutls_x509_crt_set_subject_unique_id ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-unique-id" since="3.4.7"/>
+ <keyword type="function" name="gnutls_x509_crt_set_issuer_unique_id ()" link="gnutls-x509.html#gnutls-x509-crt-set-issuer-unique-id" since="3.4.7"/>
+ <keyword type="function" name="gnutls_x509_crt_set_subject_alternative_name ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-alternative-name"/>
+ <keyword type="function" name="gnutls_x509_crt_set_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-name" since="2.6.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_subject_alt_othername ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-alt-othername" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_issuer_alt_name ()" link="gnutls-x509.html#gnutls-x509-crt-set-issuer-alt-name" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_issuer_alt_othername ()" link="gnutls-x509.html#gnutls-x509-crt-set-issuer-alt-othername" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crt_sign ()" link="gnutls-x509.html#gnutls-x509-crt-sign"/>
+ <keyword type="function" name="gnutls_x509_crt_sign2 ()" link="gnutls-x509.html#gnutls-x509-crt-sign2"/>
+ <keyword type="function" name="gnutls_x509_crt_set_activation_time ()" link="gnutls-x509.html#gnutls-x509-crt-set-activation-time"/>
+ <keyword type="function" name="gnutls_x509_crt_set_expiration_time ()" link="gnutls-x509.html#gnutls-x509-crt-set-expiration-time"/>
+ <keyword type="function" name="gnutls_x509_crt_set_serial ()" link="gnutls-x509.html#gnutls-x509-crt-set-serial"/>
+ <keyword type="function" name="gnutls_x509_crt_set_subject_key_id ()" link="gnutls-x509.html#gnutls-x509-crt-set-subject-key-id"/>
+ <keyword type="function" name="gnutls_x509_crt_set_proxy_dn ()" link="gnutls-x509.html#gnutls-x509-crt-set-proxy-dn"/>
+ <keyword type="function" name="gnutls_x509_crt_set_proxy ()" link="gnutls-x509.html#gnutls-x509-crt-set-proxy"/>
+ <keyword type="function" name="gnutls_x509_crt_print ()" link="gnutls-x509.html#gnutls-x509-crt-print"/>
+ <keyword type="function" name="gnutls_x509_crl_print ()" link="gnutls-x509.html#gnutls-x509-crl-print"/>
+ <keyword type="function" name="gnutls_x509_crt_get_raw_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-raw-issuer-dn"/>
+ <keyword type="function" name="gnutls_x509_crt_get_raw_dn ()" link="gnutls-x509.html#gnutls-x509-crt-get-raw-dn"/>
+ <keyword type="function" name="gnutls_x509_rdn_get ()" link="gnutls-x509.html#gnutls-x509-rdn-get"/>
+ <keyword type="function" name="gnutls_x509_rdn_get2 ()" link="gnutls-x509.html#gnutls-x509-rdn-get2"/>
+ <keyword type="function" name="gnutls_x509_rdn_get_oid ()" link="gnutls-x509.html#gnutls-x509-rdn-get-oid" since="2.4.0"/>
+ <keyword type="function" name="gnutls_x509_rdn_get_by_oid ()" link="gnutls-x509.html#gnutls-x509-rdn-get-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_get_subject ()" link="gnutls-x509.html#gnutls-x509-crt-get-subject"/>
+ <keyword type="function" name="gnutls_x509_crt_get_issuer ()" link="gnutls-x509.html#gnutls-x509-crt-get-issuer"/>
+ <keyword type="function" name="gnutls_x509_dn_get_rdn_ava ()" link="gnutls-x509.html#gnutls-x509-dn-get-rdn-ava"/>
+ <keyword type="function" name="gnutls_x509_dn_get_str ()" link="gnutls-x509.html#gnutls-x509-dn-get-str" since="3.5.7"/>
+ <keyword type="function" name="gnutls_x509_dn_get_str2 ()" link="gnutls-x509.html#gnutls-x509-dn-get-str2"/>
+ <keyword type="function" name="gnutls_x509_dn_set_str ()" link="gnutls-x509.html#gnutls-x509-dn-set-str" since="3.5.3"/>
+ <keyword type="function" name="gnutls_x509_dn_init ()" link="gnutls-x509.html#gnutls-x509-dn-init" since="2.4.0"/>
+ <keyword type="function" name="gnutls_x509_dn_import ()" link="gnutls-x509.html#gnutls-x509-dn-import" since="2.4.0"/>
+ <keyword type="function" name="gnutls_x509_dn_export ()" link="gnutls-x509.html#gnutls-x509-dn-export"/>
+ <keyword type="function" name="gnutls_x509_dn_export2 ()" link="gnutls-x509.html#gnutls-x509-dn-export2" since="3.1.3"/>
+ <keyword type="function" name="gnutls_x509_dn_deinit ()" link="gnutls-x509.html#gnutls-x509-dn-deinit" since="2.4.0"/>
+ <keyword type="function" name="gnutls_x509_crl_init ()" link="gnutls-x509.html#gnutls-x509-crl-init"/>
+ <keyword type="function" name="gnutls_x509_crl_deinit ()" link="gnutls-x509.html#gnutls-x509-crl-deinit"/>
+ <keyword type="function" name="gnutls_x509_crl_import ()" link="gnutls-x509.html#gnutls-x509-crl-import"/>
+ <keyword type="function" name="gnutls_x509_crl_export ()" link="gnutls-x509.html#gnutls-x509-crl-export"/>
+ <keyword type="function" name="gnutls_x509_crl_export2 ()" link="gnutls-x509.html#gnutls-x509-crl-export2"/>
+ <keyword type="function" name="gnutls_x509_crl_get_raw_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crl-get-raw-issuer-dn" since="2.12.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_issuer_dn ()" link="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn"/>
+ <keyword type="function" name="gnutls_x509_crl_get_issuer_dn2 ()" link="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn2" since="3.1.10"/>
+ <keyword type="function" name="gnutls_x509_crl_get_issuer_dn3 ()" link="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn3" since="3.5.7"/>
+ <keyword type="function" name="gnutls_x509_crl_get_issuer_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crl-get-issuer-dn-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crl_get_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crl-get-dn-oid"/>
+ <keyword type="function" name="gnutls_x509_crl_get_signature_algorithm ()" link="gnutls-x509.html#gnutls-x509-crl-get-signature-algorithm"/>
+ <keyword type="function" name="gnutls_x509_crl_get_signature ()" link="gnutls-x509.html#gnutls-x509-crl-get-signature"/>
+ <keyword type="function" name="gnutls_x509_crl_get_version ()" link="gnutls-x509.html#gnutls-x509-crl-get-version"/>
+ <keyword type="function" name="gnutls_x509_crl_get_signature_oid ()" link="gnutls-x509.html#gnutls-x509-crl-get-signature-oid" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_this_update ()" link="gnutls-x509.html#gnutls-x509-crl-get-this-update"/>
+ <keyword type="function" name="gnutls_x509_crl_get_next_update ()" link="gnutls-x509.html#gnutls-x509-crl-get-next-update"/>
+ <keyword type="function" name="gnutls_x509_crl_get_crt_count ()" link="gnutls-x509.html#gnutls-x509-crl-get-crt-count"/>
+ <keyword type="function" name="gnutls_x509_crl_get_crt_serial ()" link="gnutls-x509.html#gnutls-x509-crl-get-crt-serial"/>
+ <keyword type="function" name="gnutls_x509_crl_iter_crt_serial ()" link="gnutls-x509.html#gnutls-x509-crl-iter-crt-serial"/>
+ <keyword type="function" name="gnutls_x509_crl_iter_deinit ()" link="gnutls-x509.html#gnutls-x509-crl-iter-deinit"/>
+ <keyword type="function" name="gnutls_x509_crl_check_issuer ()" link="gnutls-x509.html#gnutls-x509-crl-check-issuer"/>
+ <keyword type="function" name="gnutls_x509_crl_list_import2 ()" link="gnutls-x509.html#gnutls-x509-crl-list-import2" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crl_list_import ()" link="gnutls-x509.html#gnutls-x509-crl-list-import" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crl_set_version ()" link="gnutls-x509.html#gnutls-x509-crl-set-version"/>
+ <keyword type="function" name="gnutls_x509_crl_set_this_update ()" link="gnutls-x509.html#gnutls-x509-crl-set-this-update"/>
+ <keyword type="function" name="gnutls_x509_crl_set_next_update ()" link="gnutls-x509.html#gnutls-x509-crl-set-next-update"/>
+ <keyword type="function" name="gnutls_x509_crl_set_crt_serial ()" link="gnutls-x509.html#gnutls-x509-crl-set-crt-serial"/>
+ <keyword type="function" name="gnutls_x509_crl_set_crt ()" link="gnutls-x509.html#gnutls-x509-crl-set-crt"/>
+ <keyword type="function" name="gnutls_x509_crl_get_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crl-get-authority-key-id" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_authority_key_gn_serial ()" link="gnutls-x509.html#gnutls-x509-crl-get-authority-key-gn-serial" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_number ()" link="gnutls-x509.html#gnutls-x509-crl-get-number" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_extension_oid ()" link="gnutls-x509.html#gnutls-x509-crl-get-extension-oid" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_extension_info ()" link="gnutls-x509.html#gnutls-x509-crl-get-extension-info" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_extension_data ()" link="gnutls-x509.html#gnutls-x509-crl-get-extension-data" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crl_get_extension_data2 ()" link="gnutls-x509.html#gnutls-x509-crl-get-extension-data2"/>
+ <keyword type="function" name="gnutls_x509_crl_set_authority_key_id ()" link="gnutls-x509.html#gnutls-x509-crl-set-authority-key-id" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crl_set_number ()" link="gnutls-x509.html#gnutls-x509-crl-set-number" since="2.8.0"/>
+ <keyword type="macro" name="GNUTLS_PROFILE_TO_VFLAGS()" link="gnutls-x509.html#GNUTLS-PROFILE-TO-VFLAGS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_VFLAGS_TO_PROFILE()" link="gnutls-x509.html#GNUTLS-VFLAGS-TO-PROFILE:CAPS"/>
+ <keyword type="function" name="gnutls_certificate_verification_profile_get_name ()" link="gnutls-x509.html#gnutls-certificate-verification-profile-get-name"/>
+ <keyword type="function" name="gnutls_x509_crt_list_verify ()" link="gnutls-x509.html#gnutls-x509-crt-list-verify"/>
+ <keyword type="function" name="gnutls_x509_crt_verify ()" link="gnutls-x509.html#gnutls-x509-crt-verify"/>
+ <keyword type="function" name="gnutls_x509_crl_verify ()" link="gnutls-x509.html#gnutls-x509-crl-verify"/>
+ <keyword type="function" name="gnutls_x509_crt_verify_data2 ()" link="gnutls-x509.html#gnutls-x509-crt-verify-data2" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_crt_check_revocation ()" link="gnutls-x509.html#gnutls-x509-crt-check-revocation"/>
+ <keyword type="function" name="gnutls_x509_crt_get_fingerprint ()" link="gnutls-x509.html#gnutls-x509-crt-get-fingerprint"/>
+ <keyword type="function" name="gnutls_x509_crt_get_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crt-get-key-purpose-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_set_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-key-purpose-oid"/>
+ <keyword type="function" name="gnutls_x509_crt_check_key_purpose ()" link="gnutls-x509.html#gnutls-x509-crt-check-key-purpose" since="3.5.6"/>
+ <keyword type="macro" name="GNUTLS_PKCS_CIPHER_MASK()" link="gnutls-x509.html#GNUTLS-PKCS-CIPHER-MASK:CAPS"/>
+ <keyword type="function" name="gnutls_pkcs_schema_get_name ()" link="gnutls-x509.html#gnutls-pkcs-schema-get-name" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs_schema_get_oid ()" link="gnutls-x509.html#gnutls-pkcs-schema-get-oid" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_init ()" link="gnutls-x509.html#gnutls-x509-privkey-init"/>
+ <keyword type="function" name="gnutls_x509_privkey_deinit ()" link="gnutls-x509.html#gnutls-x509-privkey-deinit"/>
+ <keyword type="function" name="gnutls_x509_privkey_sec_param ()" link="gnutls-x509.html#gnutls-x509-privkey-sec-param" since="2.12.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_set_pin_function ()" link="gnutls-x509.html#gnutls-x509-privkey-set-pin-function" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_cpy ()" link="gnutls-x509.html#gnutls-x509-privkey-cpy"/>
+ <keyword type="function" name="gnutls_x509_privkey_import ()" link="gnutls-x509.html#gnutls-x509-privkey-import"/>
+ <keyword type="function" name="gnutls_x509_privkey_import_pkcs8 ()" link="gnutls-x509.html#gnutls-x509-privkey-import-pkcs8"/>
+ <keyword type="function" name="gnutls_x509_privkey_import_openssl ()" link="gnutls-x509.html#gnutls-x509-privkey-import-openssl"/>
+ <keyword type="function" name="gnutls_pkcs8_info ()" link="gnutls-x509.html#gnutls-pkcs8-info" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_import2 ()" link="gnutls-x509.html#gnutls-x509-privkey-import2"/>
+ <keyword type="function" name="gnutls_x509_privkey_import_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw"/>
+ <keyword type="function" name="gnutls_x509_privkey_import_rsa_raw2 ()" link="gnutls-x509.html#gnutls-x509-privkey-import-rsa-raw2"/>
+ <keyword type="function" name="gnutls_x509_privkey_import_ecc_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-import-ecc-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_import_gost_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-import-gost-raw" since="3.6.3"/>
+ <keyword type="function" name="gnutls_x509_privkey_fix ()" link="gnutls-x509.html#gnutls-x509-privkey-fix"/>
+ <keyword type="function" name="gnutls_x509_privkey_export_dsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-export-dsa-raw"/>
+ <keyword type="function" name="gnutls_x509_privkey_import_dsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-import-dsa-raw"/>
+ <keyword type="function" name="gnutls_x509_privkey_get_pk_algorithm ()" link="gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm"/>
+ <keyword type="function" name="gnutls_x509_privkey_get_pk_algorithm2 ()" link="gnutls-x509.html#gnutls-x509-privkey-get-pk-algorithm2"/>
+ <keyword type="function" name="gnutls_x509_privkey_get_spki ()" link="gnutls-x509.html#gnutls-x509-privkey-get-spki"/>
+ <keyword type="function" name="gnutls_x509_privkey_set_spki ()" link="gnutls-x509.html#gnutls-x509-privkey-set-spki"/>
+ <keyword type="function" name="gnutls_x509_privkey_get_key_id ()" link="gnutls-x509.html#gnutls-x509-privkey-get-key-id"/>
+ <keyword type="function" name="gnutls_x509_privkey_generate ()" link="gnutls-x509.html#gnutls-x509-privkey-generate"/>
+ <keyword type="function" name="gnutls_x509_privkey_set_flags ()" link="gnutls-x509.html#gnutls-x509-privkey-set-flags" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_generate2 ()" link="gnutls-x509.html#gnutls-x509-privkey-generate2"/>
+ <keyword type="function" name="gnutls_x509_privkey_verify_seed ()" link="gnutls-x509.html#gnutls-x509-privkey-verify-seed" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_get_seed ()" link="gnutls-x509.html#gnutls-x509-privkey-get-seed" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_verify_params ()" link="gnutls-x509.html#gnutls-x509-privkey-verify-params"/>
+ <keyword type="function" name="gnutls_x509_privkey_export ()" link="gnutls-x509.html#gnutls-x509-privkey-export"/>
+ <keyword type="function" name="gnutls_x509_privkey_export2 ()" link="gnutls-x509.html#gnutls-x509-privkey-export2"/>
+ <keyword type="function" name="gnutls_x509_privkey_export_pkcs8 ()" link="gnutls-x509.html#gnutls-x509-privkey-export-pkcs8"/>
+ <keyword type="function" name="gnutls_x509_privkey_export2_pkcs8 ()" link="gnutls-x509.html#gnutls-x509-privkey-export2-pkcs8"/>
+ <keyword type="function" name="gnutls_x509_privkey_export_rsa_raw2 ()" link="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw2" since="2.12.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_export_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-export-rsa-raw"/>
+ <keyword type="function" name="gnutls_x509_privkey_export_ecc_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-export-ecc-raw" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_privkey_export_gost_raw ()" link="gnutls-x509.html#gnutls-x509-privkey-export-gost-raw" since="3.6.3"/>
+ <keyword type="function" name="gnutls_x509_privkey_sign_data ()" link="gnutls-x509.html#gnutls-x509-privkey-sign-data"/>
+ <keyword type="function" name="gnutls_x509_crq_sign ()" link="gnutls-x509.html#gnutls-x509-crq-sign"/>
+ <keyword type="function" name="gnutls_x509_crq_sign2 ()" link="gnutls-x509.html#gnutls-x509-crq-sign2"/>
+ <keyword type="function" name="gnutls_x509_crq_print ()" link="gnutls-x509.html#gnutls-x509-crq-print" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_verify ()" link="gnutls-x509.html#gnutls-x509-crq-verify"/>
+ <keyword type="function" name="gnutls_x509_crq_init ()" link="gnutls-x509.html#gnutls-x509-crq-init"/>
+ <keyword type="function" name="gnutls_x509_crq_deinit ()" link="gnutls-x509.html#gnutls-x509-crq-deinit"/>
+ <keyword type="function" name="gnutls_x509_crq_import ()" link="gnutls-x509.html#gnutls-x509-crq-import"/>
+ <keyword type="function" name="gnutls_x509_crq_get_private_key_usage_period ()" link="gnutls-x509.html#gnutls-x509-crq-get-private-key-usage-period"/>
+ <keyword type="function" name="gnutls_x509_crq_get_dn ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn"/>
+ <keyword type="function" name="gnutls_x509_crq_get_dn2 ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn2" since="3.1.10"/>
+ <keyword type="function" name="gnutls_x509_crq_get_dn3 ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn3" since="3.5.7"/>
+ <keyword type="function" name="gnutls_x509_crq_get_dn_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn-oid"/>
+ <keyword type="function" name="gnutls_x509_crq_get_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-dn-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crq_set_dn ()" link="gnutls-x509.html#gnutls-x509-crq-set-dn"/>
+ <keyword type="function" name="gnutls_x509_crq_set_dn_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-set-dn-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crq_set_version ()" link="gnutls-x509.html#gnutls-x509-crq-set-version"/>
+ <keyword type="function" name="gnutls_x509_crq_get_version ()" link="gnutls-x509.html#gnutls-x509-crq-get-version"/>
+ <keyword type="function" name="gnutls_x509_crq_set_key ()" link="gnutls-x509.html#gnutls-x509-crq-set-key"/>
+ <keyword type="function" name="gnutls_x509_crq_set_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-set-extension-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crq_set_challenge_password ()" link="gnutls-x509.html#gnutls-x509-crq-set-challenge-password"/>
+ <keyword type="function" name="gnutls_x509_crq_get_challenge_password ()" link="gnutls-x509.html#gnutls-x509-crq-get-challenge-password"/>
+ <keyword type="function" name="gnutls_x509_crq_set_attribute_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-set-attribute-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crq_get_attribute_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-attribute-by-oid"/>
+ <keyword type="function" name="gnutls_x509_crq_export ()" link="gnutls-x509.html#gnutls-x509-crq-export"/>
+ <keyword type="function" name="gnutls_x509_crq_export2 ()" link="gnutls-x509.html#gnutls-x509-crq-export2"/>
+ <keyword type="function" name="gnutls_x509_crt_set_crq ()" link="gnutls-x509.html#gnutls-x509-crt-set-crq"/>
+ <keyword type="function" name="gnutls_x509_crt_set_crq_extensions ()" link="gnutls-x509.html#gnutls-x509-crt-set-crq-extensions" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crt_set_crq_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crt-set-crq-extension-by-oid" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_crq_set_private_key_usage_period ()" link="gnutls-x509.html#gnutls-x509-crq-set-private-key-usage-period"/>
+ <keyword type="function" name="gnutls_x509_crq_set_key_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-crq-set-key-rsa-raw" since="2.6.0"/>
+ <keyword type="function" name="gnutls_x509_crq_set_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-name" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_set_subject_alt_othername ()" link="gnutls-x509.html#gnutls-x509-crq-set-subject-alt-othername" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crq_set_key_usage ()" link="gnutls-x509.html#gnutls-x509-crq-set-key-usage" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_set_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crq-set-basic-constraints" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_set_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crq-set-key-purpose-oid" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_key_purpose_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-purpose-oid" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_extension_data ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-data" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_extension_data2 ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-data2" since="3.3.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_extension_info ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-info" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_attribute_data ()" link="gnutls-x509.html#gnutls-x509-crq-get-attribute-data" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_attribute_info ()" link="gnutls-x509.html#gnutls-x509-crq-get-attribute-info" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_pk_algorithm ()" link="gnutls-x509.html#gnutls-x509-crq-get-pk-algorithm"/>
+ <keyword type="function" name="gnutls_x509_crq_get_spki ()" link="gnutls-x509.html#gnutls-x509-crq-get-spki"/>
+ <keyword type="function" name="gnutls_x509_crq_set_spki ()" link="gnutls-x509.html#gnutls-x509-crq-set-spki" since="3.6.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_signature_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-signature-oid" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_pk_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-pk-oid" since="3.5.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_key_id ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-id" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_key_rsa_raw ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-rsa-raw" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_key_usage ()" link="gnutls-x509.html#gnutls-x509-crq-get-key-usage" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_basic_constraints ()" link="gnutls-x509.html#gnutls-x509-crq-get-basic-constraints" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_subject_alt_name ()" link="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-name" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_subject_alt_othername_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-subject-alt-othername-oid" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_extension_by_oid ()" link="gnutls-x509.html#gnutls-x509-crq-get-extension-by-oid" since="2.8.0"/>
+ <keyword type="function" name="gnutls_x509_crq_get_tlsfeatures ()" link="gnutls-x509.html#gnutls-x509-crq-get-tlsfeatures" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_crq_set_tlsfeatures ()" link="gnutls-x509.html#gnutls-x509-crq-set-tlsfeatures" since="3.5.1"/>
+ <keyword type="function" name="gnutls_x509_crt_get_extension_by_oid2 ()" link="gnutls-x509.html#gnutls-x509-crt-get-extension-by-oid2" since="3.3.8"/>
+ <keyword type="function" name="gnutls_x509_trust_list_init ()" link="gnutls-x509.html#gnutls-x509-trust-list-init" since="3.0.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_deinit ()" link="gnutls-x509.html#gnutls-x509-trust-list-deinit" since="3.0.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_get_issuer ()" link="gnutls-x509.html#gnutls-x509-trust-list-get-issuer" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_get_issuer_by_dn ()" link="gnutls-x509.html#gnutls-x509-trust-list-get-issuer-by-dn" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_get_issuer_by_subject_key_id ()" link="gnutls-x509.html#gnutls-x509-trust-list-get-issuer-by-subject-key-id" since="3.4.2"/>
+ <keyword type="function" name="gnutls_x509_trust_list_add_cas ()" link="gnutls-x509.html#gnutls-x509-trust-list-add-cas" since="3.0.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_remove_cas ()" link="gnutls-x509.html#gnutls-x509-trust-list-remove-cas" since="3.1.10"/>
+ <keyword type="function" name="gnutls_x509_trust_list_add_named_crt ()" link="gnutls-x509.html#gnutls-x509-trust-list-add-named-crt" since="3.0.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_add_crls ()" link="gnutls-x509.html#gnutls-x509-trust-list-add-crls" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_iter_get_ca ()" link="gnutls-x509.html#gnutls-x509-trust-list-iter-get-ca" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_iter_deinit ()" link="gnutls-x509.html#gnutls-x509-trust-list-iter-deinit" since="3.4.0"/>
+ <keyword type="function" name="gnutls_session_set_verify_output_function ()" link="gnutls-x509.html#gnutls-session-set-verify-output-function" since="3.7.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_verify_named_crt ()" link="gnutls-x509.html#gnutls-x509-trust-list-verify-named-crt" since="3.0.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_verify_crt2 ()" link="gnutls-x509.html#gnutls-x509-trust-list-verify-crt2" since="3.3.8"/>
+ <keyword type="function" name="gnutls_x509_trust_list_verify_crt ()" link="gnutls-x509.html#gnutls-x509-trust-list-verify-crt" since="3.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_add_trust_mem ()" link="gnutls-x509.html#gnutls-x509-trust-list-add-trust-mem" since="3.1"/>
+ <keyword type="function" name="gnutls_x509_trust_list_add_trust_file ()" link="gnutls-x509.html#gnutls-x509-trust-list-add-trust-file" since="3.1"/>
+ <keyword type="function" name="gnutls_x509_trust_list_add_trust_dir ()" link="gnutls-x509.html#gnutls-x509-trust-list-add-trust-dir" since="3.3.6"/>
+ <keyword type="function" name="gnutls_x509_trust_list_remove_trust_file ()" link="gnutls-x509.html#gnutls-x509-trust-list-remove-trust-file" since="3.1.10"/>
+ <keyword type="function" name="gnutls_x509_trust_list_remove_trust_mem ()" link="gnutls-x509.html#gnutls-x509-trust-list-remove-trust-mem" since="3.1.10"/>
+ <keyword type="function" name="gnutls_x509_trust_list_add_system_trust ()" link="gnutls-x509.html#gnutls-x509-trust-list-add-system-trust" since="3.1"/>
+ <keyword type="function" name="gnutls_x509_trust_list_set_getissuer_function ()" link="gnutls-x509.html#gnutls-x509-trust-list-set-getissuer-function" since="3.7.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_set_ptr ()" link="gnutls-x509.html#gnutls-x509-trust-list-set-ptr" since="3.7.0"/>
+ <keyword type="function" name="gnutls_x509_trust_list_get_ptr ()" link="gnutls-x509.html#gnutls-x509-trust-list-get-ptr" since="3.7.0"/>
+ <keyword type="function" name="gnutls_certificate_set_trust_list ()" link="gnutls-x509.html#gnutls-certificate-set-trust-list" since="3.2.2"/>
+ <keyword type="function" name="gnutls_certificate_get_trust_list ()" link="gnutls-x509.html#gnutls-certificate-get-trust-list" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_ext_deinit ()" link="gnutls-x509.html#gnutls-x509-ext-deinit"/>
+ <keyword type="function" name="gnutls_x509_ext_print ()" link="gnutls-x509.html#gnutls-x509-ext-print"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_COUNTRY_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-COUNTRY-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_ORGANIZATION_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATION-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_ORGANIZATIONAL_UNIT_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-ORGANIZATIONAL-UNIT-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_COMMON_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-COMMON-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_LOCALITY_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-LOCALITY-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_STATE_OR_PROVINCE_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-STATE-OR-PROVINCE-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_INITIALS" link="gnutls-x509.html#GNUTLS-OID-X520-INITIALS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_GENERATION_QUALIFIER" link="gnutls-x509.html#GNUTLS-OID-X520-GENERATION-QUALIFIER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_SURNAME" link="gnutls-x509.html#GNUTLS-OID-X520-SURNAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_GIVEN_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-GIVEN-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_TITLE" link="gnutls-x509.html#GNUTLS-OID-X520-TITLE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_DN_QUALIFIER" link="gnutls-x509.html#GNUTLS-OID-X520-DN-QUALIFIER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_PSEUDONYM" link="gnutls-x509.html#GNUTLS-OID-X520-PSEUDONYM:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_POSTALCODE" link="gnutls-x509.html#GNUTLS-OID-X520-POSTALCODE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_X520_NAME" link="gnutls-x509.html#GNUTLS-OID-X520-NAME:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_LDAP_DC" link="gnutls-x509.html#GNUTLS-OID-LDAP-DC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_LDAP_UID" link="gnutls-x509.html#GNUTLS-OID-LDAP-UID:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_PKCS9_EMAIL" link="gnutls-x509.html#GNUTLS-OID-PKCS9-EMAIL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_PKIX_DATE_OF_BIRTH" link="gnutls-x509.html#GNUTLS-OID-PKIX-DATE-OF-BIRTH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_PKIX_PLACE_OF_BIRTH" link="gnutls-x509.html#GNUTLS-OID-PKIX-PLACE-OF-BIRTH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_PKIX_GENDER" link="gnutls-x509.html#GNUTLS-OID-PKIX-GENDER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_PKIX_COUNTRY_OF_CITIZENSHIP" link="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-CITIZENSHIP:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_PKIX_COUNTRY_OF_RESIDENCE" link="gnutls-x509.html#GNUTLS-OID-PKIX-COUNTRY-OF-RESIDENCE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_TLS_WWW_SERVER" link="gnutls-x509.html#GNUTLS-KP-TLS-WWW-SERVER:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_TLS_WWW_CLIENT" link="gnutls-x509.html#GNUTLS-KP-TLS-WWW-CLIENT:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_CODE_SIGNING" link="gnutls-x509.html#GNUTLS-KP-CODE-SIGNING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_MS_SMART_CARD_LOGON" link="gnutls-x509.html#GNUTLS-KP-MS-SMART-CARD-LOGON:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_EMAIL_PROTECTION" link="gnutls-x509.html#GNUTLS-KP-EMAIL-PROTECTION:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_TIME_STAMPING" link="gnutls-x509.html#GNUTLS-KP-TIME-STAMPING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_OCSP_SIGNING" link="gnutls-x509.html#GNUTLS-KP-OCSP-SIGNING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_IPSEC_IKE" link="gnutls-x509.html#GNUTLS-KP-IPSEC-IKE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_ANY" link="gnutls-x509.html#GNUTLS-KP-ANY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_KP_FLAG_DISALLOW_ANY" link="gnutls-x509.html#GNUTLS-KP-FLAG-DISALLOW-ANY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_AIA" link="gnutls-x509.html#GNUTLS-OID-AIA:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_AD_OCSP" link="gnutls-x509.html#GNUTLS-OID-AD-OCSP:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OID_AD_CAISSUERS" link="gnutls-x509.html#GNUTLS-OID-AD-CAISSUERS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_FSAN_SET" link="gnutls-x509.html#GNUTLS-FSAN-SET:CAPS"/>
+ <keyword type="macro" name="GNUTLS_FSAN_APPEND" link="gnutls-x509.html#GNUTLS-FSAN-APPEND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_FSAN_ENCODE_OCTET_STRING" link="gnutls-x509.html#GNUTLS-FSAN-ENCODE-OCTET-STRING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_FSAN_ENCODE_UTF8_STRING" link="gnutls-x509.html#GNUTLS-FSAN-ENCODE-UTF8-STRING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_SUBJECT_KEY_ID" link="gnutls-x509.html#GNUTLS-X509EXT-OID-SUBJECT-KEY-ID:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_KEY_USAGE" link="gnutls-x509.html#GNUTLS-X509EXT-OID-KEY-USAGE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_PRIVATE_KEY_USAGE_PERIOD" link="gnutls-x509.html#GNUTLS-X509EXT-OID-PRIVATE-KEY-USAGE-PERIOD:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_SAN" link="gnutls-x509.html#GNUTLS-X509EXT-OID-SAN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_IAN" link="gnutls-x509.html#GNUTLS-X509EXT-OID-IAN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_BASIC_CONSTRAINTS" link="gnutls-x509.html#GNUTLS-X509EXT-OID-BASIC-CONSTRAINTS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_NAME_CONSTRAINTS" link="gnutls-x509.html#GNUTLS-X509EXT-OID-NAME-CONSTRAINTS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_CRL_DIST_POINTS" link="gnutls-x509.html#GNUTLS-X509EXT-OID-CRL-DIST-POINTS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_CRT_POLICY" link="gnutls-x509.html#GNUTLS-X509EXT-OID-CRT-POLICY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_AUTHORITY_KEY_ID" link="gnutls-x509.html#GNUTLS-X509EXT-OID-AUTHORITY-KEY-ID:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_EXTENDED_KEY_USAGE" link="gnutls-x509.html#GNUTLS-X509EXT-OID-EXTENDED-KEY-USAGE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_INHIBIT_ANYPOLICY" link="gnutls-x509.html#GNUTLS-X509EXT-OID-INHIBIT-ANYPOLICY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_AUTHORITY_INFO_ACCESS" link="gnutls-x509.html#GNUTLS-X509EXT-OID-AUTHORITY-INFO-ACCESS:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_PROXY_CRT_INFO" link="gnutls-x509.html#GNUTLS-X509EXT-OID-PROXY-CRT-INFO:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_TLSFEATURES" link="gnutls-x509.html#GNUTLS-X509EXT-OID-TLSFEATURES:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509EXT_OID_CT_SCT_V1" link="gnutls-x509.html#GNUTLS-X509EXT-OID-CT-SCT-V1:CAPS"/>
+ <keyword type="macro" name="GNUTLS_X509_OID_POLICY_ANY" link="gnutls-x509.html#GNUTLS-X509-OID-POLICY-ANY:CAPS"/>
+ <keyword type="enum" name="enum gnutls_certificate_import_flags" link="gnutls-x509.html#gnutls-certificate-import-flags"/>
+ <keyword type="enum" name="enum gnutls_x509_crt_flags" link="gnutls-x509.html#gnutls-x509-crt-flags"/>
+ <keyword type="enum" name="enum gnutls_keyid_flags_t" link="gnutls-x509.html#gnutls-keyid-flags-t"/>
+ <keyword type="enum" name="enum gnutls_info_access_what_t" link="gnutls-x509.html#gnutls-info-access-what-t"/>
+ <keyword type="typedef" name="gnutls_x509_name_constraints_t" link="gnutls-x509.html#gnutls-x509-name-constraints-t"/>
+ <keyword type="macro" name="GNUTLS_EXT_FLAG_APPEND" link="gnutls-x509.html#GNUTLS-EXT-FLAG-APPEND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_NAME_CONSTRAINTS_FLAG_APPEND" link="gnutls-x509.html#GNUTLS-NAME-CONSTRAINTS-FLAG-APPEND:CAPS"/>
+ <keyword type="macro" name="GNUTLS_CRL_REASON_SUPERSEEDED" link="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEEDED:CAPS"/>
+ <keyword type="enum" name="enum gnutls_x509_crl_reason_flags_t" link="gnutls-x509.html#gnutls-x509-crl-reason-flags-t"/>
+ <keyword type="macro" name="GNUTLS_X509_NO_WELL_DEFINED_EXPIRATION" link="gnutls-x509.html#GNUTLS-X509-NO-WELL-DEFINED-EXPIRATION:CAPS"/>
+ <keyword type="typedef" name="gnutls_x509_spki_t" link="gnutls-x509.html#gnutls-x509-spki-t"/>
+ <keyword type="typedef" name="gnutls_x509_tlsfeatures_t" link="gnutls-x509.html#gnutls-x509-tlsfeatures-t"/>
+ <keyword type="macro" name="GNUTLS_MAX_QUALIFIERS" link="gnutls-x509.html#GNUTLS-MAX-QUALIFIERS:CAPS"/>
+ <keyword type="enum" name="enum gnutls_x509_qualifier_t" link="gnutls-x509.html#gnutls-x509-qualifier-t"/>
+ <keyword type="struct" name="gnutls_x509_policy_st" link="gnutls-x509.html#gnutls-x509-policy-st"/>
+ <keyword type="macro" name="GNUTLS_X509_DN_OID_RETURN_OID" link="gnutls-x509.html#GNUTLS-X509-DN-OID-RETURN-OID:CAPS"/>
+ <keyword type="typedef" name="gnutls_x509_dn_t" link="gnutls-x509.html#gnutls-x509-dn-t"/>
+ <keyword type="struct" name="gnutls_x509_ava_st" link="gnutls-x509.html#gnutls-x509-ava-st"/>
+ <keyword type="macro" name="GNUTLS_X509_DN_FLAG_COMPAT" link="gnutls-x509.html#GNUTLS-X509-DN-FLAG-COMPAT:CAPS"/>
+ <keyword type="typedef" name="gnutls_x509_crl_iter_t" link="gnutls-x509.html#gnutls-x509-crl-iter-t"/>
+ <keyword type="macro" name="gnutls_x509_crl_get_certificate_count" link="gnutls-x509.html#gnutls-x509-crl-get-certificate-count"/>
+ <keyword type="macro" name="gnutls_x509_crl_get_certificate" link="gnutls-x509.html#gnutls-x509-crl-get-certificate"/>
+ <keyword type="enum" name="enum gnutls_certificate_verify_flags" link="gnutls-x509.html#gnutls-certificate-verify-flags"/>
+ <keyword type="macro" name="GNUTLS_VERIFY_ALLOW_BROKEN" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-BROKEN:CAPS"/>
+ <keyword type="enum" name="enum gnutls_certificate_verification_profiles_t" link="gnutls-x509.html#gnutls-certificate-verification-profiles-t"/>
+ <keyword type="macro" name="GNUTLS_VFLAGS_PROFILE_MASK" link="gnutls-x509.html#GNUTLS-VFLAGS-PROFILE-MASK:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS8_PLAIN" link="gnutls-x509.html#GNUTLS-PKCS8-PLAIN:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS8_USE_PKCS12_3DES" link="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-3DES:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS8_USE_PKCS12_ARCFOUR" link="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-ARCFOUR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS8_USE_PKCS12_RC2_40" link="gnutls-x509.html#GNUTLS-PKCS8-USE-PKCS12-RC2-40:CAPS"/>
+ <keyword type="enum" name="enum gnutls_pkcs_encrypt_flags_t" link="gnutls-x509.html#gnutls-pkcs-encrypt-flags-t"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PKCS12_3DES" link="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-3DES:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PKCS12_ARCFOUR" link="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-ARCFOUR:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PKCS12_RC2_40" link="gnutls-x509.html#GNUTLS-PKCS-USE-PKCS12-RC2-40:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_3DES" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-3DES:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_AES_128" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-128:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_AES_192" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-192:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_AES_256" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-AES-256:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_GOST_TC26Z" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-TC26Z:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_GOST_CPA" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPA:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_GOST_CPB" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPB:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_GOST_CPC" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPC:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS_USE_PBES2_GOST_CPD" link="gnutls-x509.html#GNUTLS-PKCS-USE-PBES2-GOST-CPD:CAPS"/>
+ <keyword type="enum" name="enum gnutls_keygen_types_t" link="gnutls-x509.html#gnutls-keygen-types-t"/>
+ <keyword type="struct" name="gnutls_keygen_data_st" link="gnutls-x509.html#gnutls-keygen-data-st"/>
+ <keyword type="typedef" name="gnutls_x509_trust_list_t" link="gnutls-x509.html#gnutls-x509-trust-list-t"/>
+ <keyword type="typedef" name="gnutls_x509_trust_list_iter_t" link="gnutls-x509.html#gnutls-x509-trust-list-iter-t"/>
+ <keyword type="enum" name="enum gnutls_trust_list_flags_t" link="gnutls-x509.html#gnutls-trust-list-flags-t"/>
+ <keyword type="struct" name="gnutls_x509_ext_st" link="gnutls-x509.html#gnutls-x509-ext-st"/>
+ <keyword type="function" name="gnutls_openpgp_crt_init ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-init" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_deinit ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-deinit" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_import ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-import" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_export ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-export" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_export2 ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-export2" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_print ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-print" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_key_usage ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-usage" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-fingerprint" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-fingerprint" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_name ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-name" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-algorithm" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_version ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-version" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_creation_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-creation-time" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_expiration_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-expiration-time" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-key-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_check_hostname ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_check_hostname2 ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-check-hostname2" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_check_email ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-check-email" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-revoked-status" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_count ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-count" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_idx ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-idx" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-revoked-status" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-algorithm" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_creation_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-creation-time" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_expiration_time ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-expiration-time" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_usage ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-usage" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_pk_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-dsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_subkey_pk_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-subkey-pk-rsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_pk_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-dsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_pk_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-pk-rsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-preferred-key-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_set_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-set-preferred-key-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_init ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-init" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_deinit ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-deinit" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-pk-algorithm" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_sec_param ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-sec-param" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_import ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-import" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-fingerprint" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_fingerprint ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-fingerprint" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-key-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_count ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-count" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_idx ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-idx" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-revoked-status" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_revoked_status ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-revoked-status" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_pk_algorithm ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-pk-algorithm" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_expiration_time ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-expiration-time" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_subkey_creation_time ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-subkey-creation-time" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_export_subkey_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-dsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_export_subkey_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-subkey-rsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_export_dsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-dsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_export_rsa_raw ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export-rsa-raw" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_export ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_export2 ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-export2" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_set_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-set-preferred-key-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_privkey_get_preferred_key_id ()" link="gnutls-openpgp.html#gnutls-openpgp-privkey-get-preferred-key-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_get_auth_subkey ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-get-auth-subkey" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_keyring_init ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-init" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_keyring_deinit ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-deinit" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_keyring_import ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-import" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_keyring_check_id ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-check-id" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_verify_ring ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-verify-ring" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_crt_verify_self ()" link="gnutls-openpgp.html#gnutls-openpgp-crt-verify-self" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_keyring_get_crt ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_keyring_get_crt_count ()" link="gnutls-openpgp.html#gnutls-openpgp-keyring-get-crt-count" deprecated=""/>
+ <keyword type="function" name="gnutls_openpgp_recv_key_func ()" link="gnutls-openpgp.html#gnutls-openpgp-recv-key-func"/>
+ <keyword type="function" name="gnutls_openpgp_set_recv_key_function ()" link="gnutls-openpgp.html#gnutls-openpgp-set-recv-key-function" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_openpgp_key ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_get_openpgp_key ()" link="gnutls-openpgp.html#gnutls-certificate-get-openpgp-key" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_get_openpgp_crt ()" link="gnutls-openpgp.html#gnutls-certificate-get-openpgp-crt" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_openpgp_key_file ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_openpgp_key_mem ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_openpgp_key_file2 ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-file2" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_openpgp_key_mem2 ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-key-mem2" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_openpgp_keyring_mem ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-mem" deprecated=""/>
+ <keyword type="function" name="gnutls_certificate_set_openpgp_keyring_file ()" link="gnutls-openpgp.html#gnutls-certificate-set-openpgp-keyring-file" deprecated=""/>
+ <keyword type="enum" name="enum gnutls_openpgp_crt_fmt_t" link="gnutls-openpgp.html#gnutls-openpgp-crt-fmt-t"/>
+ <keyword type="macro" name="GNUTLS_OPENPGP_KEYID_SIZE" link="gnutls-openpgp.html#GNUTLS-OPENPGP-KEYID-SIZE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OPENPGP_V4_FINGERPRINT_SIZE" link="gnutls-openpgp.html#GNUTLS-OPENPGP-V4-FINGERPRINT-SIZE:CAPS"/>
+ <keyword type="macro" name="GNUTLS_OPENPGP_MASTER_KEYID_IDX" link="gnutls-openpgp.html#GNUTLS-OPENPGP-MASTER-KEYID-IDX:CAPS"/>
+ <keyword type="function" name="gnutls_cipher_init ()" link="gnutls-crypto.html#gnutls-cipher-init" since="2.10.0"/>
+ <keyword type="function" name="gnutls_cipher_encrypt ()" link="gnutls-crypto.html#gnutls-cipher-encrypt" since="2.10.0"/>
+ <keyword type="function" name="gnutls_cipher_decrypt ()" link="gnutls-crypto.html#gnutls-cipher-decrypt" since="2.10.0"/>
+ <keyword type="function" name="gnutls_cipher_decrypt2 ()" link="gnutls-crypto.html#gnutls-cipher-decrypt2" since="2.12.0"/>
+ <keyword type="function" name="gnutls_cipher_encrypt2 ()" link="gnutls-crypto.html#gnutls-cipher-encrypt2" since="2.12.0"/>
+ <keyword type="function" name="gnutls_cipher_encrypt3 ()" link="gnutls-crypto.html#gnutls-cipher-encrypt3" since="3.7.7"/>
+ <keyword type="function" name="gnutls_cipher_decrypt3 ()" link="gnutls-crypto.html#gnutls-cipher-decrypt3" since="3.7.7"/>
+ <keyword type="function" name="gnutls_cipher_set_iv ()" link="gnutls-crypto.html#gnutls-cipher-set-iv" since="3.0"/>
+ <keyword type="function" name="gnutls_cipher_tag ()" link="gnutls-crypto.html#gnutls-cipher-tag" since="3.0"/>
+ <keyword type="function" name="gnutls_cipher_add_auth ()" link="gnutls-crypto.html#gnutls-cipher-add-auth" since="3.0"/>
+ <keyword type="function" name="gnutls_cipher_deinit ()" link="gnutls-crypto.html#gnutls-cipher-deinit" since="2.10.0"/>
+ <keyword type="function" name="gnutls_cipher_get_block_size ()" link="gnutls-crypto.html#gnutls-cipher-get-block-size" since="2.10.0"/>
+ <keyword type="function" name="gnutls_aead_cipher_set_key ()" link="gnutls-crypto.html#gnutls-aead-cipher-set-key" since="3.7.5"/>
+ <keyword type="function" name="gnutls_aead_cipher_decrypt ()" link="gnutls-crypto.html#gnutls-aead-cipher-decrypt" since="3.4.0"/>
+ <keyword type="function" name="gnutls_aead_cipher_encrypt ()" link="gnutls-crypto.html#gnutls-aead-cipher-encrypt" since="3.4.0"/>
+ <keyword type="function" name="gnutls_aead_cipher_encryptv ()" link="gnutls-crypto.html#gnutls-aead-cipher-encryptv" since="3.6.3"/>
+ <keyword type="function" name="gnutls_aead_cipher_encryptv2 ()" link="gnutls-crypto.html#gnutls-aead-cipher-encryptv2" since="3.6.10"/>
+ <keyword type="function" name="gnutls_aead_cipher_decryptv2 ()" link="gnutls-crypto.html#gnutls-aead-cipher-decryptv2" since="3.6.10"/>
+ <keyword type="function" name="gnutls_aead_cipher_deinit ()" link="gnutls-crypto.html#gnutls-aead-cipher-deinit" since="3.4.0"/>
+ <keyword type="function" name="gnutls_mac_get_nonce_size ()" link="gnutls-crypto.html#gnutls-mac-get-nonce-size" since="3.2.0"/>
+ <keyword type="function" name="gnutls_hmac_set_nonce ()" link="gnutls-crypto.html#gnutls-hmac-set-nonce" since="3.2.0"/>
+ <keyword type="function" name="gnutls_hmac ()" link="gnutls-crypto.html#gnutls-hmac" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hmac_output ()" link="gnutls-crypto.html#gnutls-hmac-output" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hmac_deinit ()" link="gnutls-crypto.html#gnutls-hmac-deinit" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hmac_get_len ()" link="gnutls-crypto.html#gnutls-hmac-get-len" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hmac_copy ()" link="gnutls-crypto.html#gnutls-hmac-copy" since="3.6.9"/>
+ <keyword type="function" name="gnutls_hash_init ()" link="gnutls-crypto.html#gnutls-hash-init" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hash ()" link="gnutls-crypto.html#gnutls-hash" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hash_output ()" link="gnutls-crypto.html#gnutls-hash-output" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hash_deinit ()" link="gnutls-crypto.html#gnutls-hash-deinit" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hash_get_len ()" link="gnutls-crypto.html#gnutls-hash-get-len" since="2.10.0"/>
+ <keyword type="function" name="gnutls_hash_copy ()" link="gnutls-crypto.html#gnutls-hash-copy" since="3.6.9"/>
+ <keyword type="function" name="gnutls_hkdf_extract ()" link="gnutls-crypto.html#gnutls-hkdf-extract" since="3.6.13"/>
+ <keyword type="function" name="gnutls_hkdf_expand ()" link="gnutls-crypto.html#gnutls-hkdf-expand" since="3.6.13"/>
+ <keyword type="function" name="gnutls_pbkdf2 ()" link="gnutls-crypto.html#gnutls-pbkdf2" since="3.6.13"/>
+ <keyword type="function" name="gnutls_rnd ()" link="gnutls-crypto.html#gnutls-rnd" since="2.12.0"/>
+ <keyword type="function" name="gnutls_rnd_refresh ()" link="gnutls-crypto.html#gnutls-rnd-refresh" since="3.1.7"/>
+ <keyword type="function" name="gnutls_cipher_init_func ()" link="gnutls-crypto.html#gnutls-cipher-init-func"/>
+ <keyword type="function" name="gnutls_cipher_setkey_func ()" link="gnutls-crypto.html#gnutls-cipher-setkey-func"/>
+ <keyword type="function" name="gnutls_cipher_setiv_func ()" link="gnutls-crypto.html#gnutls-cipher-setiv-func"/>
+ <keyword type="function" name="gnutls_cipher_getiv_func ()" link="gnutls-crypto.html#gnutls-cipher-getiv-func"/>
+ <keyword type="function" name="gnutls_cipher_encrypt_func ()" link="gnutls-crypto.html#gnutls-cipher-encrypt-func"/>
+ <keyword type="function" name="gnutls_cipher_decrypt_func ()" link="gnutls-crypto.html#gnutls-cipher-decrypt-func"/>
+ <keyword type="function" name="gnutls_cipher_auth_func ()" link="gnutls-crypto.html#gnutls-cipher-auth-func"/>
+ <keyword type="function" name="gnutls_cipher_tag_func ()" link="gnutls-crypto.html#gnutls-cipher-tag-func"/>
+ <keyword type="function" name="gnutls_cipher_aead_encrypt_func ()" link="gnutls-crypto.html#gnutls-cipher-aead-encrypt-func"/>
+ <keyword type="function" name="gnutls_cipher_aead_decrypt_func ()" link="gnutls-crypto.html#gnutls-cipher-aead-decrypt-func"/>
+ <keyword type="function" name="gnutls_cipher_deinit_func ()" link="gnutls-crypto.html#gnutls-cipher-deinit-func"/>
+ <keyword type="function" name="gnutls_crypto_register_cipher ()" link="gnutls-crypto.html#gnutls-crypto-register-cipher" deprecated="since 3.7.0 it is no longer possible to override cipher implementation" since="3.4.0"/>
+ <keyword type="function" name="gnutls_crypto_register_aead_cipher ()" link="gnutls-crypto.html#gnutls-crypto-register-aead-cipher" deprecated="since 3.7.0 it is no longer possible to override cipher implementation" since="3.4.0"/>
+ <keyword type="function" name="gnutls_mac_init_func ()" link="gnutls-crypto.html#gnutls-mac-init-func"/>
+ <keyword type="function" name="gnutls_mac_setkey_func ()" link="gnutls-crypto.html#gnutls-mac-setkey-func"/>
+ <keyword type="function" name="gnutls_mac_setnonce_func ()" link="gnutls-crypto.html#gnutls-mac-setnonce-func"/>
+ <keyword type="function" name="gnutls_mac_hash_func ()" link="gnutls-crypto.html#gnutls-mac-hash-func"/>
+ <keyword type="function" name="gnutls_mac_output_func ()" link="gnutls-crypto.html#gnutls-mac-output-func"/>
+ <keyword type="function" name="gnutls_mac_deinit_func ()" link="gnutls-crypto.html#gnutls-mac-deinit-func"/>
+ <keyword type="function" name="gnutls_mac_fast_func ()" link="gnutls-crypto.html#gnutls-mac-fast-func"/>
+ <keyword type="function" name="gnutls_mac_copy_func ()" link="gnutls-crypto.html#gnutls-mac-copy-func"/>
+ <keyword type="function" name="gnutls_crypto_register_mac ()" link="gnutls-crypto.html#gnutls-crypto-register-mac" deprecated="since 3.7.0 it is no longer possible to override cipher implementation" since="3.4.0"/>
+ <keyword type="function" name="gnutls_digest_init_func ()" link="gnutls-crypto.html#gnutls-digest-init-func"/>
+ <keyword type="function" name="gnutls_digest_hash_func ()" link="gnutls-crypto.html#gnutls-digest-hash-func"/>
+ <keyword type="function" name="gnutls_digest_output_func ()" link="gnutls-crypto.html#gnutls-digest-output-func"/>
+ <keyword type="function" name="gnutls_digest_deinit_func ()" link="gnutls-crypto.html#gnutls-digest-deinit-func"/>
+ <keyword type="function" name="gnutls_digest_fast_func ()" link="gnutls-crypto.html#gnutls-digest-fast-func"/>
+ <keyword type="function" name="gnutls_digest_copy_func ()" link="gnutls-crypto.html#gnutls-digest-copy-func"/>
+ <keyword type="function" name="gnutls_crypto_register_digest ()" link="gnutls-crypto.html#gnutls-crypto-register-digest" deprecated="since 3.7.0 it is no longer possible to override cipher implementation" since="3.4.0"/>
+ <keyword type="function" name="gnutls_encode_ber_digest_info ()" link="gnutls-crypto.html#gnutls-encode-ber-digest-info" since="3.5.0"/>
+ <keyword type="function" name="gnutls_decode_ber_digest_info ()" link="gnutls-crypto.html#gnutls-decode-ber-digest-info" since="3.5.0"/>
+ <keyword type="function" name="gnutls_decode_rs_value ()" link="gnutls-crypto.html#gnutls-decode-rs-value" since="3.6.0"/>
+ <keyword type="function" name="gnutls_encode_rs_value ()" link="gnutls-crypto.html#gnutls-encode-rs-value" since="3.6.0"/>
+ <keyword type="function" name="gnutls_encode_gost_rs_value ()" link="gnutls-crypto.html#gnutls-encode-gost-rs-value" since="3.6.0"/>
+ <keyword type="function" name="gnutls_decode_gost_rs_value ()" link="gnutls-crypto.html#gnutls-decode-gost-rs-value" since="3.6.0"/>
+ <keyword type="typedef" name="gnutls_cipher_hd_t" link="gnutls-crypto.html#gnutls-cipher-hd-t"/>
+ <keyword type="enum" name="enum gnutls_cipher_flags_t" link="gnutls-crypto.html#gnutls-cipher-flags-t" since="3.7.7"/>
+ <keyword type="typedef" name="gnutls_hash_hd_t" link="gnutls-crypto.html#gnutls-hash-hd-t"/>
+ <keyword type="typedef" name="gnutls_hmac_hd_t" link="gnutls-crypto.html#gnutls-hmac-hd-t"/>
+ <keyword type="enum" name="enum gnutls_rnd_level_t" link="gnutls-crypto.html#gnutls-rnd-level-t"/>
+ <keyword type="function" name="gnutls_pkcs11_token_callback_t ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-callback-t" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_init ()" link="gnutls-pkcs11.html#gnutls-pkcs11-init" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_reinit ()" link="gnutls-pkcs11.html#gnutls-pkcs11-reinit" since="3.0"/>
+ <keyword type="function" name="gnutls_pkcs11_deinit ()" link="gnutls-pkcs11.html#gnutls-pkcs11-deinit" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_set_token_function ()" link="gnutls-pkcs11.html#gnutls-pkcs11-set-token-function" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_set_pin_function ()" link="gnutls-pkcs11.html#gnutls-pkcs11-set-pin-function" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_get_pin_function ()" link="gnutls-pkcs11.html#gnutls-pkcs11-get-pin-function" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pkcs11_add_provider ()" link="gnutls-pkcs11.html#gnutls-pkcs11-add-provider" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_init ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-init" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_set_pin_function ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-set-pin-function" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_import_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-import-url" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_export_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-export-url" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_deinit ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-deinit" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_export ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-export" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_export2 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-export2" since="3.1.3"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_export3 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-export3" since="3.2.7"/>
+ <keyword type="function" name="gnutls_pkcs11_get_raw_issuer ()" link="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer" since="3.2.7"/>
+ <keyword type="function" name="gnutls_pkcs11_get_raw_issuer_by_dn ()" link="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer-by-dn" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs11_get_raw_issuer_by_subject_key_id ()" link="gnutls-pkcs11.html#gnutls-pkcs11-get-raw-issuer-by-subject-key-id" since="3.4.2"/>
+ <keyword type="function" name="gnutls_pkcs11_crt_is_known ()" link="gnutls-pkcs11.html#gnutls-pkcs11-crt-is-known" since="3.3.0"/>
+ <keyword type="function" name="gnutls_pkcs11_copy_x509_crt ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_copy_x509_privkey ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_generate2 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate2" since="3.1.5"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_generate ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate" since="3.0"/>
+ <keyword type="function" name="gnutls_pkcs11_copy_pubkey ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-pubkey" since="3.4.6"/>
+ <keyword type="function" name="gnutls_pkcs11_copy_x509_crt2 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-crt2" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs11_copy_x509_privkey2 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-x509-privkey2" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs11_delete_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-delete-url" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_copy_secret_key ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-secret-key" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_get_ptr ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-ptr" since="3.6.3"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_get_info ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-info" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_set_info ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-set-info" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs11_token_init ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-init"/>
+ <keyword type="function" name="gnutls_pkcs11_token_get_ptr ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-ptr" since="3.6.3"/>
+ <keyword type="function" name="gnutls_pkcs11_token_get_mechanism ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-mechanism" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_token_check_mechanism ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-check-mechanism" since="3.6.0"/>
+ <keyword type="function" name="gnutls_pkcs11_token_set_pin ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-set-pin"/>
+ <keyword type="function" name="gnutls_pkcs11_token_get_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-url" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_token_get_info ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-info" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_token_get_flags ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-flags" since="2.12.0"/>
+ <keyword type="macro" name="gnutls_pkcs11_obj_list_import_url()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url"/>
+ <keyword type="macro" name="gnutls_pkcs11_obj_list_import_url2()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url2"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_list_import_url3 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url3" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_list_import_url4 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-list-import-url4" since="3.4.0"/>
+ <keyword type="function" name="gnutls_x509_crt_import_pkcs11 ()" link="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_type_get_name ()" link="gnutls-pkcs11.html#gnutls-pkcs11-type-get-name" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_get_exts ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-exts" since="3.3.8"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_get_flags ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-get-flags" since="3.3.7"/>
+ <keyword type="function" name="gnutls_pkcs11_obj_flags_get_str ()" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-flags-get-str" since="3.3.7"/>
+ <keyword type="function" name="gnutls_x509_crt_list_import_pkcs11 ()" link="gnutls-pkcs11.html#gnutls-x509-crt-list-import-pkcs11" since="2.12.0"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_init ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-init"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_cpy ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-cpy" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_set_pin_function ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-set-pin-function" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_deinit ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-deinit"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_get_pk_algorithm ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-pk-algorithm"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_get_info ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-get-info"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_import_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-import-url"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_export_url ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-url"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_status ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-status" since="3.1.9"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_generate3 ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-generate3" since="3.4.0"/>
+ <keyword type="function" name="gnutls_pkcs11_privkey_export_pubkey ()" link="gnutls-pkcs11.html#gnutls-pkcs11-privkey-export-pubkey" since="3.3.7"/>
+ <keyword type="function" name="gnutls_pkcs11_token_get_random ()" link="gnutls-pkcs11.html#gnutls-pkcs11-token-get-random"/>
+ <keyword type="function" name="gnutls_pkcs11_copy_attached_extension ()" link="gnutls-pkcs11.html#gnutls-pkcs11-copy-attached-extension" since="3.3.8"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_MAX_PIN_LEN" link="gnutls-pkcs11.html#GNUTLS-PKCS11-MAX-PIN-LEN:CAPS"/>
+ <keyword type="typedef" name="gnutls_pkcs11_obj_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-t"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_FLAG_MANUAL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-MANUAL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_FLAG_AUTO" link="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_FLAG_AUTO_TRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-FLAG-AUTO-TRUSTED:CAPS"/>
+ <keyword type="enum" name="enum gnutls_pkcs11_obj_flags" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-flags"/>
+ <keyword type="macro" name="gnutls_pkcs11_obj_attr_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-attr-t"/>
+ <keyword type="enum" name="enum gnutls_pkcs11_url_type_t" link="gnutls-pkcs11.html#gnutls-pkcs11-url-type-t"/>
+ <keyword type="enum" name="enum gnutls_pkcs11_obj_info_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-info-t"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_ALL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-ALL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_MATCH" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-MATCH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_ALL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-ALL:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_WITH_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-WITH-PRIVKEY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_CRT_TRUSTED_CA" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-CRT-TRUSTED-CA:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_PUBKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PUBKEY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_OBJ_ATTR_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ATTR-PRIVKEY:CAPS"/>
+ <keyword type="enum" name="enum gnutls_pkcs11_token_info_t" link="gnutls-pkcs11.html#gnutls-pkcs11-token-info-t"/>
+ <keyword type="enum" name="enum gnutls_pkcs11_obj_type_t" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-type-t"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_HW" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-HW:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_TRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-TRUSTED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_RNG" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-RNG:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_LOGIN_REQUIRED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-LOGIN-REQUIRED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_PROTECTED_AUTHENTICATION_PATH" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-PROTECTED-AUTHENTICATION-PATH:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_INITIALIZED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-INITIALIZED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_USER_PIN_COUNT_LOW" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-COUNT-LOW:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_USER_PIN_FINAL_TRY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-FINAL-TRY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_USER_PIN_LOCKED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-LOCKED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_SO_PIN_COUNT_LOW" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SO-PIN-COUNT-LOW:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_SO_PIN_FINAL_TRY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SO-PIN-FINAL-TRY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_SO_PIN_LOCKED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SO-PIN-LOCKED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_USER_PIN_INITIALIZED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-USER-PIN-INITIALIZED:CAPS"/>
+ <keyword type="macro" name="GNUTLS_PKCS11_TOKEN_ERROR_STATE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-ERROR-STATE:CAPS"/>
+ <keyword type="macro" name="gnutls_x509_crt_import_pkcs11_url" link="gnutls-pkcs11.html#gnutls-x509-crt-import-pkcs11-url"/>
+ <keyword type="struct" name="struct gnutls_pkcs11_obj_st" link="gnutls-pkcs11.html#gnutls-pkcs11-obj-st"/>
+ <keyword type="function" name="gnutls_pkcs12_init ()" link="gnutls-pkcs12.html#gnutls-pkcs12-init"/>
+ <keyword type="function" name="gnutls_pkcs12_deinit ()" link="gnutls-pkcs12.html#gnutls-pkcs12-deinit"/>
+ <keyword type="function" name="gnutls_pkcs12_import ()" link="gnutls-pkcs12.html#gnutls-pkcs12-import"/>
+ <keyword type="function" name="gnutls_pkcs12_export ()" link="gnutls-pkcs12.html#gnutls-pkcs12-export"/>
+ <keyword type="function" name="gnutls_pkcs12_export2 ()" link="gnutls-pkcs12.html#gnutls-pkcs12-export2" since="3.1.3"/>
+ <keyword type="function" name="gnutls_pkcs12_get_bag ()" link="gnutls-pkcs12.html#gnutls-pkcs12-get-bag"/>
+ <keyword type="function" name="gnutls_pkcs12_set_bag ()" link="gnutls-pkcs12.html#gnutls-pkcs12-set-bag"/>
+ <keyword type="function" name="gnutls_pkcs12_generate_mac ()" link="gnutls-pkcs12.html#gnutls-pkcs12-generate-mac"/>
+ <keyword type="function" name="gnutls_pkcs12_generate_mac2 ()" link="gnutls-pkcs12.html#gnutls-pkcs12-generate-mac2"/>
+ <keyword type="function" name="gnutls_pkcs12_verify_mac ()" link="gnutls-pkcs12.html#gnutls-pkcs12-verify-mac"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_decrypt ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-decrypt"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_encrypt ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-encrypt"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_enc_info ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-enc-info"/>
+ <keyword type="function" name="gnutls_pkcs12_mac_info ()" link="gnutls-pkcs12.html#gnutls-pkcs12-mac-info"/>
+ <keyword type="function" name="gnutls_pkcs12_simple_parse ()" link="gnutls-pkcs12.html#gnutls-pkcs12-simple-parse" since="3.1.0"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_get_data ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-data"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_set_data ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-data"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_set_crl ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crl"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_set_crt ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-crt"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_set_privkey ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-privkey"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_init ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-init"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_deinit ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-deinit"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_get_count ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-count"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_get_key_id ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-key-id"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_set_key_id ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-key-id"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_get_friendly_name ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-get-friendly-name"/>
+ <keyword type="function" name="gnutls_pkcs12_bag_set_friendly_name ()" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-set-friendly-name"/>
+ <keyword type="typedef" name="gnutls_pkcs12_t" link="gnutls-pkcs12.html#gnutls-pkcs12-t"/>
+ <keyword type="typedef" name="gnutls_pkcs12_bag_t" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-t"/>
+ <keyword type="macro" name="GNUTLS_PKCS12_SP_INCLUDE_SELF_SIGNED" link="gnutls-pkcs12.html#GNUTLS-PKCS12-SP-INCLUDE-SELF-SIGNED:CAPS"/>
+ <keyword type="enum" name="enum gnutls_pkcs12_bag_type_t" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-type-t"/>
+ <keyword type="struct" name="gnutls_pkcs12_bag_int" link="gnutls-pkcs12.html#gnutls-pkcs12-bag-int"/>
+ <keyword type="struct" name="gnutls_pkcs12_int" link="gnutls-pkcs12.html#gnutls-pkcs12-int"/>
+ <keyword type="macro" name="MAX_OCSP_VALIDITY_SECS" link="gnutls-ocsp.html#MAX-OCSP-VALIDITY-SECS:CAPS"/>
+ <keyword type="macro" name="MAX_OCSP_MSG_SIZE" link="gnutls-ocsp.html#MAX-OCSP-MSG-SIZE:CAPS"/>
+ <keyword type="function" name="gnutls_dtls_set_timeouts ()" link="gnutls-dtls.html#gnutls-dtls-set-timeouts" since="3.0"/>
+ <keyword type="function" name="gnutls_dtls_get_mtu ()" link="gnutls-dtls.html#gnutls-dtls-get-mtu" since="3.0"/>
+ <keyword type="function" name="gnutls_dtls_get_data_mtu ()" link="gnutls-dtls.html#gnutls-dtls-get-data-mtu" since="3.0"/>
+ <keyword type="function" name="gnutls_dtls_set_mtu ()" link="gnutls-dtls.html#gnutls-dtls-set-mtu" since="3.0"/>
+ <keyword type="function" name="gnutls_dtls_set_data_mtu ()" link="gnutls-dtls.html#gnutls-dtls-set-data-mtu" since="3.1"/>
+ <keyword type="function" name="gnutls_dtls_get_timeout ()" link="gnutls-dtls.html#gnutls-dtls-get-timeout" since="3.0"/>
+ <keyword type="function" name="gnutls_dtls_cookie_send ()" link="gnutls-dtls.html#gnutls-dtls-cookie-send" since="3.0"/>
+ <keyword type="function" name="gnutls_dtls_cookie_verify ()" link="gnutls-dtls.html#gnutls-dtls-cookie-verify" since="3.0"/>
+ <keyword type="function" name="gnutls_dtls_prestate_set ()" link="gnutls-dtls.html#gnutls-dtls-prestate-set" since="3.0"/>
+ <keyword type="function" name="gnutls_record_get_discarded ()" link="gnutls-dtls.html#gnutls-record-get-discarded" since="3.0"/>
+ <keyword type="macro" name="GNUTLS_COOKIE_KEY_SIZE" link="gnutls-dtls.html#GNUTLS-COOKIE-KEY-SIZE:CAPS"/>
+ <keyword type="struct" name="gnutls_dtls_prestate_st" link="gnutls-dtls.html#gnutls-dtls-prestate-st"/>
+ <keyword type="function" name="gnutls_tpm_privkey_generate ()" link="gnutls-tpm.html#gnutls-tpm-privkey-generate" since="3.1.0"/>
+ <keyword type="function" name="gnutls_tpm_key_list_deinit ()" link="gnutls-tpm.html#gnutls-tpm-key-list-deinit" since="3.1.0"/>
+ <keyword type="function" name="gnutls_tpm_key_list_get_url ()" link="gnutls-tpm.html#gnutls-tpm-key-list-get-url" since="3.1.0"/>
+ <keyword type="function" name="gnutls_tpm_get_registered ()" link="gnutls-tpm.html#gnutls-tpm-get-registered" since="3.1.0"/>
+ <keyword type="function" name="gnutls_tpm_privkey_delete ()" link="gnutls-tpm.html#gnutls-tpm-privkey-delete" since="3.1.0"/>
+ <keyword type="typedef" name="gnutls_tpm_key_list_t" link="gnutls-tpm.html#gnutls-tpm-key-list-t"/>
+ <keyword type="macro" name="GNUTLS_TPM_KEY_SIGNING" link="gnutls-tpm.html#GNUTLS-TPM-KEY-SIGNING:CAPS"/>
+ <keyword type="macro" name="GNUTLS_TPM_REGISTER_KEY" link="gnutls-tpm.html#GNUTLS-TPM-REGISTER-KEY:CAPS"/>
+ <keyword type="macro" name="GNUTLS_TPM_KEY_USER" link="gnutls-tpm.html#GNUTLS-TPM-KEY-USER:CAPS"/>
+ <keyword type="enum" name="enum gnutls_tpmkey_fmt_t" link="gnutls-tpm.html#gnutls-tpmkey-fmt-t"/>
+ <keyword type="struct" name="struct tpm_key_list_st" link="gnutls-tpm.html#tpm-key-list-st"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-CIPHER-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_NULL" link="gnutls-gnutls.html#GNUTLS-CIPHER-NULL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_ARCFOUR_128" link="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR-128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_3DES_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-3DES-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_128_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_256_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_ARCFOUR_40" link="gnutls-gnutls.html#GNUTLS-CIPHER-ARCFOUR-40:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CAMELLIA_128_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-128-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CAMELLIA_256_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-256-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_192_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-192-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_128_GCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-GCM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_256_GCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-GCM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CAMELLIA_192_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-192-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_SALSA20_256" link="gnutls-gnutls.html#GNUTLS-CIPHER-SALSA20-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_ESTREAM_SALSA20_256" link="gnutls-gnutls.html#GNUTLS-CIPHER-ESTREAM-SALSA20-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CAMELLIA_128_GCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-128-GCM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CAMELLIA_256_GCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAMELLIA-256-GCM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_RC2_40_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-RC2-40-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_DES_CBC" link="gnutls-gnutls.html#GNUTLS-CIPHER-DES-CBC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_128_CCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-CCM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_256_CCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-CCM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_128_CCM_8" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-CCM-8:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_256_CCM_8" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-CCM-8:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CHACHA20_POLY1305" link="gnutls-gnutls.html#GNUTLS-CIPHER-CHACHA20-POLY1305:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_GOST28147_TC26Z_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-GOST28147-TC26Z-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_GOST28147_CPA_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-GOST28147-CPA-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_GOST28147_CPB_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-GOST28147-CPB-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_GOST28147_CPC_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-GOST28147-CPC-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_GOST28147_CPD_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-GOST28147-CPD-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_128_CFB8" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-CFB8:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_192_CFB8" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-192-CFB8:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_256_CFB8" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-CFB8:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_128_XTS" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-XTS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_256_XTS" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-XTS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_GOST28147_TC26Z_CNT" link="gnutls-gnutls.html#GNUTLS-CIPHER-GOST28147-TC26Z-CNT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CHACHA20_64" link="gnutls-gnutls.html#GNUTLS-CIPHER-CHACHA20-64:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CHACHA20_32" link="gnutls-gnutls.html#GNUTLS-CIPHER-CHACHA20-32:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_128_SIV" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-128-SIV:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_256_SIV" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-256-SIV:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES_192_GCM" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES-192-GCM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_MAGMA_CTR_ACPKM" link="gnutls-gnutls.html#GNUTLS-CIPHER-MAGMA-CTR-ACPKM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_KUZNYECHIK_CTR_ACPKM" link="gnutls-gnutls.html#GNUTLS-CIPHER-KUZNYECHIK-CTR-ACPKM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_IDEA_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-IDEA-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_3DES_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-3DES-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_CAST5_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-CAST5-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_BLOWFISH_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-BLOWFISH-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_SAFER_SK128_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-SAFER-SK128-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES128_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES128-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES192_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES192-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_AES256_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-AES256-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_TWOFISH_PGP_CFB" link="gnutls-gnutls.html#GNUTLS-CIPHER-TWOFISH-PGP-CFB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-KX-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_RSA" link="gnutls-gnutls.html#GNUTLS-KX-RSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_DHE_DSS" link="gnutls-gnutls.html#GNUTLS-KX-DHE-DSS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_DHE_RSA" link="gnutls-gnutls.html#GNUTLS-KX-DHE-RSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_ANON_DH" link="gnutls-gnutls.html#GNUTLS-KX-ANON-DH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_SRP" link="gnutls-gnutls.html#GNUTLS-KX-SRP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_RSA_EXPORT" link="gnutls-gnutls.html#GNUTLS-KX-RSA-EXPORT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_SRP_RSA" link="gnutls-gnutls.html#GNUTLS-KX-SRP-RSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_SRP_DSS" link="gnutls-gnutls.html#GNUTLS-KX-SRP-DSS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_PSK" link="gnutls-gnutls.html#GNUTLS-KX-PSK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_DHE_PSK" link="gnutls-gnutls.html#GNUTLS-KX-DHE-PSK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_ANON_ECDH" link="gnutls-gnutls.html#GNUTLS-KX-ANON-ECDH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_ECDHE_RSA" link="gnutls-gnutls.html#GNUTLS-KX-ECDHE-RSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_ECDHE_ECDSA" link="gnutls-gnutls.html#GNUTLS-KX-ECDHE-ECDSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_ECDHE_PSK" link="gnutls-gnutls.html#GNUTLS-KX-ECDHE-PSK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_RSA_PSK" link="gnutls-gnutls.html#GNUTLS-KX-RSA-PSK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KX_VKO_GOST_12" link="gnutls-gnutls.html#GNUTLS-KX-VKO-GOST-12:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PARAMS_RSA_EXPORT" link="gnutls-gnutls.html#GNUTLS-PARAMS-RSA-EXPORT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PARAMS_DH" link="gnutls-gnutls.html#GNUTLS-PARAMS-DH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PARAMS_ECDH" link="gnutls-gnutls.html#GNUTLS-PARAMS-ECDH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRD_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-CRD-CERTIFICATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRD_ANON" link="gnutls-gnutls.html#GNUTLS-CRD-ANON:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRD_SRP" link="gnutls-gnutls.html#GNUTLS-CRD-SRP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRD_PSK" link="gnutls-gnutls.html#GNUTLS-CRD-PSK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRD_IA" link="gnutls-gnutls.html#GNUTLS-CRD-IA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-MAC-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_NULL" link="gnutls-gnutls.html#GNUTLS-MAC-NULL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_MD5" link="gnutls-gnutls.html#GNUTLS-MAC-MD5:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA1" link="gnutls-gnutls.html#GNUTLS-MAC-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_RMD160" link="gnutls-gnutls.html#GNUTLS-MAC-RMD160:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_MD2" link="gnutls-gnutls.html#GNUTLS-MAC-MD2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA256" link="gnutls-gnutls.html#GNUTLS-MAC-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA384" link="gnutls-gnutls.html#GNUTLS-MAC-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA512" link="gnutls-gnutls.html#GNUTLS-MAC-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA224" link="gnutls-gnutls.html#GNUTLS-MAC-SHA224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA3_224" link="gnutls-gnutls.html#GNUTLS-MAC-SHA3-224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA3_256" link="gnutls-gnutls.html#GNUTLS-MAC-SHA3-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA3_384" link="gnutls-gnutls.html#GNUTLS-MAC-SHA3-384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHA3_512" link="gnutls-gnutls.html#GNUTLS-MAC-SHA3-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_MD5_SHA1" link="gnutls-gnutls.html#GNUTLS-MAC-MD5-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_GOSTR_94" link="gnutls-gnutls.html#GNUTLS-MAC-GOSTR-94:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_STREEBOG_256" link="gnutls-gnutls.html#GNUTLS-MAC-STREEBOG-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_STREEBOG_512" link="gnutls-gnutls.html#GNUTLS-MAC-STREEBOG-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_AEAD" link="gnutls-gnutls.html#GNUTLS-MAC-AEAD:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_UMAC_96" link="gnutls-gnutls.html#GNUTLS-MAC-UMAC-96:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_UMAC_128" link="gnutls-gnutls.html#GNUTLS-MAC-UMAC-128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_AES_CMAC_128" link="gnutls-gnutls.html#GNUTLS-MAC-AES-CMAC-128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_AES_CMAC_256" link="gnutls-gnutls.html#GNUTLS-MAC-AES-CMAC-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_AES_GMAC_128" link="gnutls-gnutls.html#GNUTLS-MAC-AES-GMAC-128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_AES_GMAC_192" link="gnutls-gnutls.html#GNUTLS-MAC-AES-GMAC-192:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_AES_GMAC_256" link="gnutls-gnutls.html#GNUTLS-MAC-AES-GMAC-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_GOST28147_TC26Z_IMIT" link="gnutls-gnutls.html#GNUTLS-MAC-GOST28147-TC26Z-IMIT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHAKE_128" link="gnutls-gnutls.html#GNUTLS-MAC-SHAKE-128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_SHAKE_256" link="gnutls-gnutls.html#GNUTLS-MAC-SHAKE-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_MAGMA_OMAC" link="gnutls-gnutls.html#GNUTLS-MAC-MAGMA-OMAC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_MAC_KUZNYECHIK_OMAC" link="gnutls-gnutls.html#GNUTLS-MAC-KUZNYECHIK-OMAC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-DIG-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_NULL" link="gnutls-gnutls.html#GNUTLS-DIG-NULL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_MD5" link="gnutls-gnutls.html#GNUTLS-DIG-MD5:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA1" link="gnutls-gnutls.html#GNUTLS-DIG-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_RMD160" link="gnutls-gnutls.html#GNUTLS-DIG-RMD160:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_MD2" link="gnutls-gnutls.html#GNUTLS-DIG-MD2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA256" link="gnutls-gnutls.html#GNUTLS-DIG-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA384" link="gnutls-gnutls.html#GNUTLS-DIG-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA512" link="gnutls-gnutls.html#GNUTLS-DIG-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA224" link="gnutls-gnutls.html#GNUTLS-DIG-SHA224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA3_224" link="gnutls-gnutls.html#GNUTLS-DIG-SHA3-224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA3_256" link="gnutls-gnutls.html#GNUTLS-DIG-SHA3-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA3_384" link="gnutls-gnutls.html#GNUTLS-DIG-SHA3-384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHA3_512" link="gnutls-gnutls.html#GNUTLS-DIG-SHA3-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_MD5_SHA1" link="gnutls-gnutls.html#GNUTLS-DIG-MD5-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_GOSTR_94" link="gnutls-gnutls.html#GNUTLS-DIG-GOSTR-94:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_STREEBOG_256" link="gnutls-gnutls.html#GNUTLS-DIG-STREEBOG-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_STREEBOG_512" link="gnutls-gnutls.html#GNUTLS-DIG-STREEBOG-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHAKE_128" link="gnutls-gnutls.html#GNUTLS-DIG-SHAKE-128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DIG_SHAKE_256" link="gnutls-gnutls.html#GNUTLS-DIG-SHAKE-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_COMP_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-COMP-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_COMP_NULL" link="gnutls-gnutls.html#GNUTLS-COMP-NULL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_COMP_DEFLATE" link="gnutls-gnutls.html#GNUTLS-COMP-DEFLATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_COMP_ZLIB" link="gnutls-gnutls.html#GNUTLS-COMP-ZLIB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_COMP_BROTLI" link="gnutls-gnutls.html#GNUTLS-COMP-BROTLI:CAPS"/>
+ <keyword type="constant" name="GNUTLS_COMP_ZSTD" link="gnutls-gnutls.html#GNUTLS-COMP-ZSTD:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SERVER" link="gnutls-gnutls.html#GNUTLS-SERVER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CLIENT" link="gnutls-gnutls.html#GNUTLS-CLIENT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DATAGRAM" link="gnutls-gnutls.html#GNUTLS-DATAGRAM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NONBLOCK" link="gnutls-gnutls.html#GNUTLS-NONBLOCK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_EXTENSIONS" link="gnutls-gnutls.html#GNUTLS-NO-EXTENSIONS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_REPLAY_PROTECTION" link="gnutls-gnutls.html#GNUTLS-NO-REPLAY-PROTECTION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_SIGNAL" link="gnutls-gnutls.html#GNUTLS-NO-SIGNAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ALLOW_ID_CHANGE" link="gnutls-gnutls.html#GNUTLS-ALLOW-ID-CHANGE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENABLE_FALSE_START" link="gnutls-gnutls.html#GNUTLS-ENABLE-FALSE-START:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FORCE_CLIENT_CERT" link="gnutls-gnutls.html#GNUTLS-FORCE-CLIENT-CERT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_TICKETS" link="gnutls-gnutls.html#GNUTLS-NO-TICKETS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEY_SHARE_TOP" link="gnutls-gnutls.html#GNUTLS-KEY-SHARE-TOP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEY_SHARE_TOP2" link="gnutls-gnutls.html#GNUTLS-KEY-SHARE-TOP2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEY_SHARE_TOP3" link="gnutls-gnutls.html#GNUTLS-KEY-SHARE-TOP3:CAPS"/>
+ <keyword type="constant" name="GNUTLS_POST_HANDSHAKE_AUTH" link="gnutls-gnutls.html#GNUTLS-POST-HANDSHAKE-AUTH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_AUTO_REKEY" link="gnutls-gnutls.html#GNUTLS-NO-AUTO-REKEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAFE_PADDING_CHECK" link="gnutls-gnutls.html#GNUTLS-SAFE-PADDING-CHECK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENABLE_EARLY_START" link="gnutls-gnutls.html#GNUTLS-ENABLE-EARLY-START:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENABLE_RAWPK" link="gnutls-gnutls.html#GNUTLS-ENABLE-RAWPK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_AUTO_REAUTH" link="gnutls-gnutls.html#GNUTLS-AUTO-REAUTH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENABLE_EARLY_DATA" link="gnutls-gnutls.html#GNUTLS-ENABLE-EARLY-DATA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_AUTO_SEND_TICKET" link="gnutls-gnutls.html#GNUTLS-NO-AUTO-SEND-TICKET:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_END_OF_EARLY_DATA" link="gnutls-gnutls.html#GNUTLS-NO-END-OF-EARLY-DATA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NO_TICKETS_TLS12" link="gnutls-gnutls.html#GNUTLS-NO-TICKETS-TLS12:CAPS"/>
+ <keyword type="constant" name="GNUTLS_AL_WARNING" link="gnutls-gnutls.html#GNUTLS-AL-WARNING:CAPS"/>
+ <keyword type="constant" name="GNUTLS_AL_FATAL" link="gnutls-gnutls.html#GNUTLS-AL-FATAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_CLOSE_NOTIFY" link="gnutls-gnutls.html#GNUTLS-A-CLOSE-NOTIFY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_UNEXPECTED_MESSAGE" link="gnutls-gnutls.html#GNUTLS-A-UNEXPECTED-MESSAGE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_BAD_RECORD_MAC" link="gnutls-gnutls.html#GNUTLS-A-BAD-RECORD-MAC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_DECRYPTION_FAILED" link="gnutls-gnutls.html#GNUTLS-A-DECRYPTION-FAILED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_RECORD_OVERFLOW" link="gnutls-gnutls.html#GNUTLS-A-RECORD-OVERFLOW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_DECOMPRESSION_FAILURE" link="gnutls-gnutls.html#GNUTLS-A-DECOMPRESSION-FAILURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_HANDSHAKE_FAILURE" link="gnutls-gnutls.html#GNUTLS-A-HANDSHAKE-FAILURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_SSL3_NO_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-A-SSL3-NO-CERTIFICATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_BAD_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-A-BAD-CERTIFICATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_UNSUPPORTED_CERTIFICATE" link="gnutls-gnutls.html#GNUTLS-A-UNSUPPORTED-CERTIFICATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_CERTIFICATE_REVOKED" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-REVOKED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_CERTIFICATE_EXPIRED" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-EXPIRED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_CERTIFICATE_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_ILLEGAL_PARAMETER" link="gnutls-gnutls.html#GNUTLS-A-ILLEGAL-PARAMETER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_UNKNOWN_CA" link="gnutls-gnutls.html#GNUTLS-A-UNKNOWN-CA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_ACCESS_DENIED" link="gnutls-gnutls.html#GNUTLS-A-ACCESS-DENIED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_DECODE_ERROR" link="gnutls-gnutls.html#GNUTLS-A-DECODE-ERROR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_DECRYPT_ERROR" link="gnutls-gnutls.html#GNUTLS-A-DECRYPT-ERROR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_EXPORT_RESTRICTION" link="gnutls-gnutls.html#GNUTLS-A-EXPORT-RESTRICTION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_PROTOCOL_VERSION" link="gnutls-gnutls.html#GNUTLS-A-PROTOCOL-VERSION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_INSUFFICIENT_SECURITY" link="gnutls-gnutls.html#GNUTLS-A-INSUFFICIENT-SECURITY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_INTERNAL_ERROR" link="gnutls-gnutls.html#GNUTLS-A-INTERNAL-ERROR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_INAPPROPRIATE_FALLBACK" link="gnutls-gnutls.html#GNUTLS-A-INAPPROPRIATE-FALLBACK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_USER_CANCELED" link="gnutls-gnutls.html#GNUTLS-A-USER-CANCELED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_NO_RENEGOTIATION" link="gnutls-gnutls.html#GNUTLS-A-NO-RENEGOTIATION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_MISSING_EXTENSION" link="gnutls-gnutls.html#GNUTLS-A-MISSING-EXTENSION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_UNSUPPORTED_EXTENSION" link="gnutls-gnutls.html#GNUTLS-A-UNSUPPORTED-EXTENSION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_CERTIFICATE_UNOBTAINABLE" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-UNOBTAINABLE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_UNRECOGNIZED_NAME" link="gnutls-gnutls.html#GNUTLS-A-UNRECOGNIZED-NAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_UNKNOWN_PSK_IDENTITY" link="gnutls-gnutls.html#GNUTLS-A-UNKNOWN-PSK-IDENTITY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_CERTIFICATE_REQUIRED" link="gnutls-gnutls.html#GNUTLS-A-CERTIFICATE-REQUIRED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_NO_APPLICATION_PROTOCOL" link="gnutls-gnutls.html#GNUTLS-A-NO-APPLICATION-PROTOCOL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_A_MAX" link="gnutls-gnutls.html#GNUTLS-A-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_HELLO_REQUEST" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-HELLO-REQUEST:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CLIENT_HELLO" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-HELLO:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_SERVER_HELLO" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-HELLO:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_HELLO_VERIFY_REQUEST" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-HELLO-VERIFY-REQUEST:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_NEW_SESSION_TICKET" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-NEW-SESSION-TICKET:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_END_OF_EARLY_DATA" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-END-OF-EARLY-DATA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_ENCRYPTED_EXTENSIONS" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-ENCRYPTED-EXTENSIONS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CERTIFICATE_PKT" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-PKT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_SERVER_KEY_EXCHANGE" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-KEY-EXCHANGE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CERTIFICATE_REQUEST" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-REQUEST:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_SERVER_HELLO_DONE" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SERVER-HELLO-DONE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CERTIFICATE_VERIFY" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-VERIFY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CLIENT_KEY_EXCHANGE" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-KEY-EXCHANGE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_FINISHED" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-FINISHED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CERTIFICATE_STATUS" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CERTIFICATE-STATUS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_SUPPLEMENTAL" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-SUPPLEMENTAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_KEY_UPDATE" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-KEY-UPDATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_COMPRESSED_CERTIFICATE_PKT" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-COMPRESSED-CERTIFICATE-PKT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CHANGE_CIPHER_SPEC" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CHANGE-CIPHER-SPEC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_CLIENT_HELLO_V2" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-CLIENT-HELLO-V2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_HANDSHAKE_HELLO_RETRY_REQUEST" link="gnutls-gnutls.html#GNUTLS-HANDSHAKE-HELLO-RETRY-REQUEST:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_INVALID" link="gnutls-gnutls.html#GNUTLS-CERT-INVALID:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_REVOKED" link="gnutls-gnutls.html#GNUTLS-CERT-REVOKED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_SIGNER_NOT_FOUND" link="gnutls-gnutls.html#GNUTLS-CERT-SIGNER-NOT-FOUND:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_SIGNER_NOT_CA" link="gnutls-gnutls.html#GNUTLS-CERT-SIGNER-NOT-CA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_INSECURE_ALGORITHM" link="gnutls-gnutls.html#GNUTLS-CERT-INSECURE-ALGORITHM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_NOT_ACTIVATED" link="gnutls-gnutls.html#GNUTLS-CERT-NOT-ACTIVATED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_EXPIRED" link="gnutls-gnutls.html#GNUTLS-CERT-EXPIRED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_SIGNATURE_FAILURE" link="gnutls-gnutls.html#GNUTLS-CERT-SIGNATURE-FAILURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_REVOCATION_DATA_SUPERSEDED" link="gnutls-gnutls.html#GNUTLS-CERT-REVOCATION-DATA-SUPERSEDED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_UNEXPECTED_OWNER" link="gnutls-gnutls.html#GNUTLS-CERT-UNEXPECTED-OWNER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_REVOCATION_DATA_ISSUED_IN_FUTURE" link="gnutls-gnutls.html#GNUTLS-CERT-REVOCATION-DATA-ISSUED-IN-FUTURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_SIGNER_CONSTRAINTS_FAILURE" link="gnutls-gnutls.html#GNUTLS-CERT-SIGNER-CONSTRAINTS-FAILURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_MISMATCH" link="gnutls-gnutls.html#GNUTLS-CERT-MISMATCH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_PURPOSE_MISMATCH" link="gnutls-gnutls.html#GNUTLS-CERT-PURPOSE-MISMATCH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_MISSING_OCSP_STATUS" link="gnutls-gnutls.html#GNUTLS-CERT-MISSING-OCSP-STATUS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_INVALID_OCSP_STATUS" link="gnutls-gnutls.html#GNUTLS-CERT-INVALID-OCSP-STATUS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_UNKNOWN_CRIT_EXTENSIONS" link="gnutls-gnutls.html#GNUTLS-CERT-UNKNOWN-CRIT-EXTENSIONS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_IGNORE" link="gnutls-gnutls.html#GNUTLS-CERT-IGNORE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_REQUEST" link="gnutls-gnutls.html#GNUTLS-CERT-REQUEST:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERT_REQUIRE" link="gnutls-gnutls.html#GNUTLS-CERT-REQUIRE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_OPENPGP_CERT" link="gnutls-gnutls.html#GNUTLS-OPENPGP-CERT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_OPENPGP_CERT_FINGERPRINT" link="gnutls-gnutls.html#GNUTLS-OPENPGP-CERT-FINGERPRINT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SHUT_RDWR" link="gnutls-gnutls.html#GNUTLS-SHUT-RDWR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SHUT_WR" link="gnutls-gnutls.html#GNUTLS-SHUT-WR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SSL3" link="gnutls-gnutls.html#GNUTLS-SSL3:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TLS1_0" link="gnutls-gnutls.html#GNUTLS-TLS1-0:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TLS1" link="gnutls-gnutls.html#GNUTLS-TLS1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TLS1_1" link="gnutls-gnutls.html#GNUTLS-TLS1-1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TLS1_2" link="gnutls-gnutls.html#GNUTLS-TLS1-2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TLS1_3" link="gnutls-gnutls.html#GNUTLS-TLS1-3:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DTLS0_9" link="gnutls-gnutls.html#GNUTLS-DTLS0-9:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DTLS1_0" link="gnutls-gnutls.html#GNUTLS-DTLS1-0:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DTLS1_2" link="gnutls-gnutls.html#GNUTLS-DTLS1-2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DTLS_VERSION_MIN" link="gnutls-gnutls.html#GNUTLS-DTLS-VERSION-MIN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DTLS_VERSION_MAX" link="gnutls-gnutls.html#GNUTLS-DTLS-VERSION-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TLS_VERSION_MAX" link="gnutls-gnutls.html#GNUTLS-TLS-VERSION-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERSION_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-VERSION-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-CRT-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_X509" link="gnutls-gnutls.html#GNUTLS-CRT-X509:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_OPENPGP" link="gnutls-gnutls.html#GNUTLS-CRT-OPENPGP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_RAWPK" link="gnutls-gnutls.html#GNUTLS-CRT-RAWPK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_MAX" link="gnutls-gnutls.html#GNUTLS-CRT-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_FMT_DER" link="gnutls-gnutls.html#GNUTLS-X509-FMT-DER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_FMT_PEM" link="gnutls-gnutls.html#GNUTLS-X509-FMT-PEM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_PRINT_FULL" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_PRINT_ONELINE" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-ONELINE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_PRINT_UNSIGNED_FULL" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-UNSIGNED-FULL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_PRINT_COMPACT" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-COMPACT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRT_PRINT_FULL_NUMBERS" link="gnutls-gnutls.html#GNUTLS-CRT-PRINT-FULL-NUMBERS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-PK-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_RSA" link="gnutls-gnutls.html#GNUTLS-PK-RSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_DSA" link="gnutls-gnutls.html#GNUTLS-PK-DSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_DH" link="gnutls-gnutls.html#GNUTLS-PK-DH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_ECDSA" link="gnutls-gnutls.html#GNUTLS-PK-ECDSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_ECDH_X25519" link="gnutls-gnutls.html#GNUTLS-PK-ECDH-X25519:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_RSA_PSS" link="gnutls-gnutls.html#GNUTLS-PK-RSA-PSS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_EDDSA_ED25519" link="gnutls-gnutls.html#GNUTLS-PK-EDDSA-ED25519:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_GOST_01" link="gnutls-gnutls.html#GNUTLS-PK-GOST-01:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_GOST_12_256" link="gnutls-gnutls.html#GNUTLS-PK-GOST-12-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_GOST_12_512" link="gnutls-gnutls.html#GNUTLS-PK-GOST-12-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_ECDH_X448" link="gnutls-gnutls.html#GNUTLS-PK-ECDH-X448:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_EDDSA_ED448" link="gnutls-gnutls.html#GNUTLS-PK-EDDSA-ED448:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PK_MAX" link="gnutls-gnutls.html#GNUTLS-PK-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-SIGN-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA1" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA1" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_MD5" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-MD5:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_MD2" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-MD2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_RMD160" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-RMD160:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA224" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA224" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA1" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA224" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA3_224" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA3-224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA3_256" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA3-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA3_384" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA3-384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SHA3_512" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SHA3-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA3_224" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA3-224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA3_256" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA3-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA3_384" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA3-384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_DSA_SHA3_512" link="gnutls-gnutls.html#GNUTLS-SIGN-DSA-SHA3-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA3_224" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA3-224:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA3_256" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA3-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA3_384" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA3-384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_SHA3_512" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-SHA3-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_PSS_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_PSS_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_PSS_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_EDDSA_ED25519" link="gnutls-gnutls.html#GNUTLS-SIGN-EDDSA-ED25519:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_RAW" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-RAW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SECP256R1_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SECP256R1-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SECP384R1_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SECP384R1-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_ECDSA_SECP521R1_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-ECDSA-SECP521R1-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_PSS_RSAE_SHA256" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-RSAE-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_PSS_RSAE_SHA384" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-RSAE-SHA384:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_RSA_PSS_RSAE_SHA512" link="gnutls-gnutls.html#GNUTLS-SIGN-RSA-PSS-RSAE-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_GOST_94" link="gnutls-gnutls.html#GNUTLS-SIGN-GOST-94:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_GOST_256" link="gnutls-gnutls.html#GNUTLS-SIGN-GOST-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_GOST_512" link="gnutls-gnutls.html#GNUTLS-SIGN-GOST-512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_EDDSA_ED448" link="gnutls-gnutls.html#GNUTLS-SIGN-EDDSA-ED448:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SIGN_MAX" link="gnutls-gnutls.html#GNUTLS-SIGN-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_INVALID" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-INVALID:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_SECP224R1" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-SECP224R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_SECP256R1" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-SECP256R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_SECP384R1" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-SECP384R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_SECP521R1" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-SECP521R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_SECP192R1" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-SECP192R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_X25519" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-X25519:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_ED25519" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-ED25519:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256CPA" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256CPA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256CPB" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256CPB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256CPC" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256CPC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256CPXA" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256CPXA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256CPXB" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256CPXB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST512A" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST512A:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST512B" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST512B:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST512C" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST512C:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256A" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256A:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256B" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256B:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256C" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256C:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_GOST256D" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-GOST256D:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_X448" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-X448:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_ED448" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-ED448:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ECC_CURVE_MAX" link="gnutls-gnutls.html#GNUTLS-ECC-CURVE-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_INVALID" link="gnutls-gnutls.html#GNUTLS-GROUP-INVALID:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_SECP192R1" link="gnutls-gnutls.html#GNUTLS-GROUP-SECP192R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_SECP224R1" link="gnutls-gnutls.html#GNUTLS-GROUP-SECP224R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_SECP256R1" link="gnutls-gnutls.html#GNUTLS-GROUP-SECP256R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_SECP384R1" link="gnutls-gnutls.html#GNUTLS-GROUP-SECP384R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_SECP521R1" link="gnutls-gnutls.html#GNUTLS-GROUP-SECP521R1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_X25519" link="gnutls-gnutls.html#GNUTLS-GROUP-X25519:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_X448" link="gnutls-gnutls.html#GNUTLS-GROUP-X448:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_GC256A" link="gnutls-gnutls.html#GNUTLS-GROUP-GC256A:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_GC256B" link="gnutls-gnutls.html#GNUTLS-GROUP-GC256B:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_GC256C" link="gnutls-gnutls.html#GNUTLS-GROUP-GC256C:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_GC256D" link="gnutls-gnutls.html#GNUTLS-GROUP-GC256D:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_GC512A" link="gnutls-gnutls.html#GNUTLS-GROUP-GC512A:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_GC512B" link="gnutls-gnutls.html#GNUTLS-GROUP-GC512B:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_GC512C" link="gnutls-gnutls.html#GNUTLS-GROUP-GC512C:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_FFDHE2048" link="gnutls-gnutls.html#GNUTLS-GROUP-FFDHE2048:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_FFDHE3072" link="gnutls-gnutls.html#GNUTLS-GROUP-FFDHE3072:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_FFDHE4096" link="gnutls-gnutls.html#GNUTLS-GROUP-FFDHE4096:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_FFDHE8192" link="gnutls-gnutls.html#GNUTLS-GROUP-FFDHE8192:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_FFDHE6144" link="gnutls-gnutls.html#GNUTLS-GROUP-FFDHE6144:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GROUP_MAX" link="gnutls-gnutls.html#GNUTLS-GROUP-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_INSECURE" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-INSECURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_EXPORT" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-EXPORT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_VERY_WEAK" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-VERY-WEAK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_WEAK" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-WEAK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_LOW" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-LOW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_LEGACY" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-LEGACY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_MEDIUM" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-MEDIUM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_HIGH" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-HIGH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_ULTRA" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-ULTRA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_FUTURE" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-FUTURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SEC_PARAM_MAX" link="gnutls-gnutls.html#GNUTLS-SEC-PARAM-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CB_TLS_UNIQUE" link="gnutls-gnutls.html#GNUTLS-CB-TLS-UNIQUE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CB_TLS_SERVER_END_POINT" link="gnutls-gnutls.html#GNUTLS-CB-TLS-SERVER-END-POINT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CB_TLS_EXPORTER" link="gnutls-gnutls.html#GNUTLS-CB-TLS-EXPORTER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GOST_PARAMSET_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-GOST-PARAMSET-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GOST_PARAMSET_TC26_Z" link="gnutls-gnutls.html#GNUTLS-GOST-PARAMSET-TC26-Z:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GOST_PARAMSET_CP_A" link="gnutls-gnutls.html#GNUTLS-GOST-PARAMSET-CP-A:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GOST_PARAMSET_CP_B" link="gnutls-gnutls.html#GNUTLS-GOST-PARAMSET-CP-B:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GOST_PARAMSET_CP_C" link="gnutls-gnutls.html#GNUTLS-GOST-PARAMSET-CP-C:CAPS"/>
+ <keyword type="constant" name="GNUTLS_GOST_PARAMSET_CP_D" link="gnutls-gnutls.html#GNUTLS-GOST-PARAMSET-CP-D:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CTYPE_CLIENT" link="gnutls-gnutls.html#GNUTLS-CTYPE-CLIENT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CTYPE_SERVER" link="gnutls-gnutls.html#GNUTLS-CTYPE-SERVER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CTYPE_OURS" link="gnutls-gnutls.html#GNUTLS-CTYPE-OURS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CTYPE_PEERS" link="gnutls-gnutls.html#GNUTLS-CTYPE-PEERS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_NAME_DNS" link="gnutls-gnutls.html#GNUTLS-NAME-DNS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_SAFE_RENEGOTIATION" link="gnutls-gnutls.html#GNUTLS-SFLAGS-SAFE-RENEGOTIATION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_EXT_MASTER_SECRET" link="gnutls-gnutls.html#GNUTLS-SFLAGS-EXT-MASTER-SECRET:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_ETM" link="gnutls-gnutls.html#GNUTLS-SFLAGS-ETM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_HB_LOCAL_SEND" link="gnutls-gnutls.html#GNUTLS-SFLAGS-HB-LOCAL-SEND:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_HB_PEER_SEND" link="gnutls-gnutls.html#GNUTLS-SFLAGS-HB-PEER-SEND:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_FALSE_START" link="gnutls-gnutls.html#GNUTLS-SFLAGS-FALSE-START:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_RFC7919" link="gnutls-gnutls.html#GNUTLS-SFLAGS-RFC7919:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_SESSION_TICKET" link="gnutls-gnutls.html#GNUTLS-SFLAGS-SESSION-TICKET:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_POST_HANDSHAKE_AUTH" link="gnutls-gnutls.html#GNUTLS-SFLAGS-POST-HANDSHAKE-AUTH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_EARLY_START" link="gnutls-gnutls.html#GNUTLS-SFLAGS-EARLY-START:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_EARLY_DATA" link="gnutls-gnutls.html#GNUTLS-SFLAGS-EARLY-DATA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_CLI_REQUESTED_OCSP" link="gnutls-gnutls.html#GNUTLS-SFLAGS-CLI-REQUESTED-OCSP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SFLAGS_SERV_REQUESTED_OCSP" link="gnutls-gnutls.html#GNUTLS-SFLAGS-SERV-REQUESTED-OCSP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SUPPLEMENTAL_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-SUPPLEMENTAL-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SRTP_AES128_CM_HMAC_SHA1_80" link="gnutls-gnutls.html#GNUTLS-SRTP-AES128-CM-HMAC-SHA1-80:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SRTP_AES128_CM_HMAC_SHA1_32" link="gnutls-gnutls.html#GNUTLS-SRTP-AES128-CM-HMAC-SHA1-32:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SRTP_NULL_HMAC_SHA1_80" link="gnutls-gnutls.html#GNUTLS-SRTP-NULL-HMAC-SHA1-80:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SRTP_NULL_HMAC_SHA1_32" link="gnutls-gnutls.html#GNUTLS-SRTP-NULL-HMAC-SHA1-32:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ALPN_MANDATORY" link="gnutls-gnutls.html#GNUTLS-ALPN-MANDATORY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ALPN_SERVER_PRECEDENCE" link="gnutls-gnutls.html#GNUTLS-ALPN-SERVER-PRECEDENCE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DT_UNKNOWN" link="gnutls-gnutls.html#GNUTLS-DT-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DT_DNS_HOSTNAME" link="gnutls-gnutls.html#GNUTLS-DT-DNS-HOSTNAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DT_KEY_PURPOSE_OID" link="gnutls-gnutls.html#GNUTLS-DT-KEY-PURPOSE-OID:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DT_RFC822NAME" link="gnutls-gnutls.html#GNUTLS-DT-RFC822NAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_DT_IP_ADDRESS" link="gnutls-gnutls.html#GNUTLS-DT-IP-ADDRESS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERTIFICATE_SKIP_KEY_CERT_MATCH" link="gnutls-gnutls.html#GNUTLS-CERTIFICATE-SKIP-KEY-CERT-MATCH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERTIFICATE_API_V2" link="gnutls-gnutls.html#GNUTLS-CERTIFICATE-API-V2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERTIFICATE_SKIP_OCSP_RESPONSE_CHECK" link="gnutls-gnutls.html#GNUTLS-CERTIFICATE-SKIP-OCSP-RESPONSE-CHECK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CERTIFICATE_VERIFY_CRLS" link="gnutls-gnutls.html#GNUTLS-CERTIFICATE-VERIFY-CRLS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_RANDOM_ART_OPENSSH" link="gnutls-gnutls.html#GNUTLS-RANDOM-ART-OPENSSH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PSK_KEY_RAW" link="gnutls-gnutls.html#GNUTLS-PSK-KEY-RAW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PSK_KEY_HEX" link="gnutls-gnutls.html#GNUTLS-PSK-KEY-HEX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_DNSNAME" link="gnutls-gnutls.html#GNUTLS-SAN-DNSNAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_RFC822NAME" link="gnutls-gnutls.html#GNUTLS-SAN-RFC822NAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_URI" link="gnutls-gnutls.html#GNUTLS-SAN-URI:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_IPADDRESS" link="gnutls-gnutls.html#GNUTLS-SAN-IPADDRESS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_OTHERNAME" link="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_DN" link="gnutls-gnutls.html#GNUTLS-SAN-DN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_REGISTERED_ID" link="gnutls-gnutls.html#GNUTLS-SAN-REGISTERED-ID:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_MAX" link="gnutls-gnutls.html#GNUTLS-SAN-MAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_OTHERNAME_XMPP" link="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-XMPP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_OTHERNAME_KRB5PRINCIPAL" link="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-KRB5PRINCIPAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_SAN_OTHERNAME_MSUSERPRINCIPAL" link="gnutls-gnutls.html#GNUTLS-SAN-OTHERNAME-MSUSERPRINCIPAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_X509" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-X509:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_OPENPGP" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-OPENPGP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_PKCS11" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-PKCS11:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_EXT" link="gnutls-gnutls.html#GNUTLS-PRIVKEY-EXT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PIN_USER" link="gnutls-gnutls.html#GNUTLS-PIN-USER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PIN_SO" link="gnutls-gnutls.html#GNUTLS-PIN-SO:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PIN_FINAL_TRY" link="gnutls-gnutls.html#GNUTLS-PIN-FINAL-TRY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PIN_COUNT_LOW" link="gnutls-gnutls.html#GNUTLS-PIN-COUNT-LOW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PIN_CONTEXT_SPECIFIC" link="gnutls-gnutls.html#GNUTLS-PIN-CONTEXT-SPECIFIC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PIN_WRONG" link="gnutls-gnutls.html#GNUTLS-PIN-WRONG:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_ANY" link="gnutls-gnutls.html#GNUTLS-EXT-ANY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_APPLICATION" link="gnutls-gnutls.html#GNUTLS-EXT-APPLICATION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_TLS" link="gnutls-gnutls.html#GNUTLS-EXT-TLS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_MANDATORY" link="gnutls-gnutls.html#GNUTLS-EXT-MANDATORY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_NONE" link="gnutls-gnutls.html#GNUTLS-EXT-NONE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_VERSION_NEG" link="gnutls-gnutls.html#GNUTLS-EXT-VERSION-NEG:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-OVERRIDE-INTERNAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_CLIENT_HELLO" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-CLIENT-HELLO:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_TLS12_SERVER_HELLO" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-TLS12-SERVER-HELLO:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_TLS13_SERVER_HELLO" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-TLS13-SERVER-HELLO:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_EE" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-EE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_HRR" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-HRR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_IGNORE_CLIENT_REQUEST" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-IGNORE-CLIENT-REQUEST:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_TLS" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-TLS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXT_FLAG_DTLS" link="gnutls-gnutls.html#GNUTLS-EXT-FLAG-DTLS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENCRYPTION_LEVEL_INITIAL" link="gnutls-gnutls.html#GNUTLS-ENCRYPTION-LEVEL-INITIAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENCRYPTION_LEVEL_EARLY" link="gnutls-gnutls.html#GNUTLS-ENCRYPTION-LEVEL-EARLY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENCRYPTION_LEVEL_HANDSHAKE" link="gnutls-gnutls.html#GNUTLS-ENCRYPTION-LEVEL-HANDSHAKE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_ENCRYPTION_LEVEL_APPLICATION" link="gnutls-gnutls.html#GNUTLS-ENCRYPTION-LEVEL-APPLICATION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_DISABLED" link="gnutls-gnutls.html#GNUTLS-FIPS140-DISABLED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_STRICT" link="gnutls-gnutls.html#GNUTLS-FIPS140-STRICT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_SELFTESTS" link="gnutls-gnutls.html#GNUTLS-FIPS140-SELFTESTS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_LAX" link="gnutls-gnutls.html#GNUTLS-FIPS140-LAX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_LOG" link="gnutls-gnutls.html#GNUTLS-FIPS140-LOG:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_OP_INITIAL" link="gnutls-gnutls.html#GNUTLS-FIPS140-OP-INITIAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_OP_APPROVED" link="gnutls-gnutls.html#GNUTLS-FIPS140-OP-APPROVED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_OP_NOT_APPROVED" link="gnutls-gnutls.html#GNUTLS-FIPS140-OP-NOT-APPROVED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_FIPS140_OP_ERROR" link="gnutls-gnutls.html#GNUTLS-FIPS140-OP-ERROR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PUBKEY_DISABLE_CALLBACKS" link="gnutls-abstract.html#GNUTLS-PUBKEY-DISABLE-CALLBACKS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PUBKEY_GET_OPENPGP_FINGERPRINT" link="gnutls-abstract.html#GNUTLS-PUBKEY-GET-OPENPGP-FINGERPRINT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_EXPORT_FLAG_NO_LZ" link="gnutls-abstract.html#GNUTLS-EXPORT-FLAG-NO-LZ:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_IMPORT_AUTO_RELEASE" link="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-AUTO-RELEASE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_IMPORT_COPY" link="gnutls-abstract.html#GNUTLS-PRIVKEY-IMPORT-COPY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_DISABLE_CALLBACKS" link="gnutls-abstract.html#GNUTLS-PRIVKEY-DISABLE-CALLBACKS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_SIGN_FLAG_TLS1_RSA" link="gnutls-abstract.html#GNUTLS-PRIVKEY-SIGN-FLAG-TLS1-RSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_FLAG_PROVABLE" link="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-PROVABLE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_FLAG_EXPORT_COMPAT" link="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-EXPORT-COMPAT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_SIGN_FLAG_RSA_PSS" link="gnutls-abstract.html#GNUTLS-PRIVKEY-SIGN-FLAG-RSA-PSS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_FLAG_REPRODUCIBLE" link="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-REPRODUCIBLE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_FLAG_CA" link="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-CA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PRIVKEY_FLAG_RSA_PSS_FIXED_SALT_LENGTH" link="gnutls-abstract.html#GNUTLS-PRIVKEY-FLAG-RSA-PSS-FIXED-SALT-LENGTH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_CRT_LIST_IMPORT_FAIL_IF_EXCEED" link="gnutls-x509.html#GNUTLS-X509-CRT-LIST-IMPORT-FAIL-IF-EXCEED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_CRT_LIST_FAIL_IF_UNSORTED" link="gnutls-x509.html#GNUTLS-X509-CRT-LIST-FAIL-IF-UNSORTED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_CRT_LIST_SORT" link="gnutls-x509.html#GNUTLS-X509-CRT-LIST-SORT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_CRT_FLAG_IGNORE_SANITY" link="gnutls-x509.html#GNUTLS-X509-CRT-FLAG-IGNORE-SANITY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEYID_USE_SHA1" link="gnutls-x509.html#GNUTLS-KEYID-USE-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEYID_USE_SHA256" link="gnutls-x509.html#GNUTLS-KEYID-USE-SHA256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEYID_USE_SHA512" link="gnutls-x509.html#GNUTLS-KEYID-USE-SHA512:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEYID_USE_BEST_KNOWN" link="gnutls-x509.html#GNUTLS-KEYID-USE-BEST-KNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_IA_ACCESSMETHOD_OID" link="gnutls-x509.html#GNUTLS-IA-ACCESSMETHOD-OID:CAPS"/>
+ <keyword type="constant" name="GNUTLS_IA_ACCESSLOCATION_GENERALNAME_TYPE" link="gnutls-x509.html#GNUTLS-IA-ACCESSLOCATION-GENERALNAME-TYPE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_IA_URI" link="gnutls-x509.html#GNUTLS-IA-URI:CAPS"/>
+ <keyword type="constant" name="GNUTLS_IA_UNKNOWN" link="gnutls-x509.html#GNUTLS-IA-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_IA_OCSP_URI" link="gnutls-x509.html#GNUTLS-IA-OCSP-URI:CAPS"/>
+ <keyword type="constant" name="GNUTLS_IA_CAISSUERS_URI" link="gnutls-x509.html#GNUTLS-IA-CAISSUERS-URI:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_UNSPECIFIED" link="gnutls-x509.html#GNUTLS-CRL-REASON-UNSPECIFIED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_PRIVILEGE_WITHDRAWN" link="gnutls-x509.html#GNUTLS-CRL-REASON-PRIVILEGE-WITHDRAWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_CERTIFICATE_HOLD" link="gnutls-x509.html#GNUTLS-CRL-REASON-CERTIFICATE-HOLD:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_CESSATION_OF_OPERATION" link="gnutls-x509.html#GNUTLS-CRL-REASON-CESSATION-OF-OPERATION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_SUPERSEDED" link="gnutls-x509.html#GNUTLS-CRL-REASON-SUPERSEDED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_AFFILIATION_CHANGED" link="gnutls-x509.html#GNUTLS-CRL-REASON-AFFILIATION-CHANGED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_CA_COMPROMISE" link="gnutls-x509.html#GNUTLS-CRL-REASON-CA-COMPROMISE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_KEY_COMPROMISE" link="gnutls-x509.html#GNUTLS-CRL-REASON-KEY-COMPROMISE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_UNUSED" link="gnutls-x509.html#GNUTLS-CRL-REASON-UNUSED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CRL_REASON_AA_COMPROMISE" link="gnutls-x509.html#GNUTLS-CRL-REASON-AA-COMPROMISE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_QUALIFIER_UNKNOWN" link="gnutls-x509.html#GNUTLS-X509-QUALIFIER-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_QUALIFIER_URI" link="gnutls-x509.html#GNUTLS-X509-QUALIFIER-URI:CAPS"/>
+ <keyword type="constant" name="GNUTLS_X509_QUALIFIER_NOTICE" link="gnutls-x509.html#GNUTLS-X509-QUALIFIER-NOTICE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_CA_SIGN" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-CA-SIGN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DO_NOT_ALLOW_IP_MATCHES" link="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-IP-MATCHES:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DO_NOT_ALLOW_SAME" link="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-SAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_ANY_X509_V1_CA_CRT" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-ANY-X509-V1-CA-CRT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD2" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD2:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_SIGN_RSA_MD5" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-SIGN-RSA-MD5:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_TIME_CHECKS" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-TIME-CHECKS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-TRUSTED-TIME-CHECKS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DO_NOT_ALLOW_X509_V1_CA_CRT" link="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-X509-V1-CA-CRT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DISABLE_CRL_CHECKS" link="gnutls-x509.html#GNUTLS-VERIFY-DISABLE-CRL-CHECKS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_UNSORTED_CHAIN" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-UNSORTED-CHAIN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DO_NOT_ALLOW_UNSORTED_CHAIN" link="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-UNSORTED-CHAIN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_DO_NOT_ALLOW_WILDCARDS" link="gnutls-x509.html#GNUTLS-VERIFY-DO-NOT-ALLOW-WILDCARDS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_USE_TLS1_RSA" link="gnutls-x509.html#GNUTLS-VERIFY-USE-TLS1-RSA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_IGNORE_UNKNOWN_CRIT_EXTENSIONS" link="gnutls-x509.html#GNUTLS-VERIFY-IGNORE-UNKNOWN-CRIT-EXTENSIONS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_ALLOW_SIGN_WITH_SHA1" link="gnutls-x509.html#GNUTLS-VERIFY-ALLOW-SIGN-WITH-SHA1:CAPS"/>
+ <keyword type="constant" name="GNUTLS_VERIFY_RSA_PSS_FIXED_SALT_LENGTH" link="gnutls-x509.html#GNUTLS-VERIFY-RSA-PSS-FIXED-SALT-LENGTH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_UNKNOWN" link="gnutls-x509.html#GNUTLS-PROFILE-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_VERY_WEAK" link="gnutls-x509.html#GNUTLS-PROFILE-VERY-WEAK:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_LOW" link="gnutls-x509.html#GNUTLS-PROFILE-LOW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_LEGACY" link="gnutls-x509.html#GNUTLS-PROFILE-LEGACY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_MEDIUM" link="gnutls-x509.html#GNUTLS-PROFILE-MEDIUM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_HIGH" link="gnutls-x509.html#GNUTLS-PROFILE-HIGH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_ULTRA" link="gnutls-x509.html#GNUTLS-PROFILE-ULTRA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_FUTURE" link="gnutls-x509.html#GNUTLS-PROFILE-FUTURE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_SUITEB128" link="gnutls-x509.html#GNUTLS-PROFILE-SUITEB128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PROFILE_SUITEB192" link="gnutls-x509.html#GNUTLS-PROFILE-SUITEB192:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PLAIN" link="gnutls-x509.html#GNUTLS-PKCS-PLAIN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PKCS12_3DES" link="gnutls-x509.html#GNUTLS-PKCS-PKCS12-3DES:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PKCS12_ARCFOUR" link="gnutls-x509.html#GNUTLS-PKCS-PKCS12-ARCFOUR:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PKCS12_RC2_40" link="gnutls-x509.html#GNUTLS-PKCS-PKCS12-RC2-40:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_3DES" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-3DES:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_AES_128" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-AES-128:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_AES_192" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-AES-192:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_AES_256" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-AES-256:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_NULL_PASSWORD" link="gnutls-x509.html#GNUTLS-PKCS-NULL-PASSWORD:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_DES" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-DES:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES1_DES_MD5" link="gnutls-x509.html#GNUTLS-PKCS-PBES1-DES-MD5:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_GOST_TC26Z" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-GOST-TC26Z:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_GOST_CPA" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-GOST-CPA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_GOST_CPB" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-GOST-CPB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_GOST_CPC" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-GOST-CPC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS_PBES2_GOST_CPD" link="gnutls-x509.html#GNUTLS-PKCS-PBES2-GOST-CPD:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEYGEN_SEED" link="gnutls-x509.html#GNUTLS-KEYGEN-SEED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEYGEN_DIGEST" link="gnutls-x509.html#GNUTLS-KEYGEN-DIGEST:CAPS"/>
+ <keyword type="constant" name="GNUTLS_KEYGEN_SPKI" link="gnutls-x509.html#GNUTLS-KEYGEN-SPKI:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TL_VERIFY_CRL" link="gnutls-x509.html#GNUTLS-TL-VERIFY-CRL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TL_USE_IN_TLS" link="gnutls-x509.html#GNUTLS-TL-USE-IN-TLS:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TL_NO_DUPLICATES" link="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATES:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TL_NO_DUPLICATE_KEY" link="gnutls-x509.html#GNUTLS-TL-NO-DUPLICATE-KEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TL_GET_COPY" link="gnutls-x509.html#GNUTLS-TL-GET-COPY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TL_FAIL_ON_INVALID_CRL" link="gnutls-x509.html#GNUTLS-TL-FAIL-ON-INVALID-CRL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_OPENPGP_FMT_RAW" link="gnutls-openpgp.html#GNUTLS-OPENPGP-FMT-RAW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_OPENPGP_FMT_BASE64" link="gnutls-openpgp.html#GNUTLS-OPENPGP-FMT-BASE64:CAPS"/>
+ <keyword type="constant" name="GNUTLS_CIPHER_PADDING_PKCS7" link="gnutls-crypto.html#GNUTLS-CIPHER-PADDING-PKCS7:CAPS"/>
+ <keyword type="constant" name="GNUTLS_RND_NONCE" link="gnutls-crypto.html#GNUTLS-RND-NONCE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_RND_RANDOM" link="gnutls-crypto.html#GNUTLS-RND-RANDOM:CAPS"/>
+ <keyword type="constant" name="GNUTLS_RND_KEY" link="gnutls-crypto.html#GNUTLS-RND-KEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_LOGIN" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_TRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-TRUSTED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_SENSITIVE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-SENSITIVE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_LOGIN_SO" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-LOGIN-SO:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_PRIVATE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-PRIVATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_PRIVATE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-NOT-PRIVATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_ANY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-ANY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_TRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-TRUSTED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_DISTRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-DISTRUSTED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_RETRIEVE_DISTRUSTED" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-RETRIEVE-DISTRUSTED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_COMPARE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-COMPARE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_PRESENT_IN_TRUSTED_MODULE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PRESENT-IN-TRUSTED-MODULE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_CA" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-CA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_KEY_WRAP" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-KEY-WRAP:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_COMPARE_KEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-COMPARE-KEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_OVERWRITE_TRUSTMOD_EXT" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-OVERWRITE-TRUSTMOD-EXT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_ALWAYS_AUTH" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-ALWAYS-AUTH:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_EXTRACTABLE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-EXTRACTABLE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_NEVER_EXTRACTABLE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-NEVER-EXTRACTABLE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_CRT" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-CRT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_WITH_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-WITH-PRIVKEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_PUBKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PUBKEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_NO_STORE_PUBKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-NO-STORE-PUBKEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-PRIVKEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_FLAG_MARK_NOT_SENSITIVE" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-FLAG-MARK-NOT-SENSITIVE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_URL_GENERIC" link="gnutls-pkcs11.html#GNUTLS-PKCS11-URL-GENERIC:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_URL_LIB" link="gnutls-pkcs11.html#GNUTLS-PKCS11-URL-LIB:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_URL_LIB_VERSION" link="gnutls-pkcs11.html#GNUTLS-PKCS11-URL-LIB-VERSION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ID_HEX" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID-HEX:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LABEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LABEL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_LABEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-LABEL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_SERIAL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-SERIAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_MANUFACTURER" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-MANUFACTURER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_TOKEN_MODEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-TOKEN-MODEL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_ID" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-ID:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LIBRARY_VERSION" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-VERSION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LIBRARY_DESCRIPTION" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-DESCRIPTION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_LIBRARY_MANUFACTURER" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-LIBRARY-MANUFACTURER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_LABEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-LABEL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_SERIAL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-SERIAL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_MANUFACTURER" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-MANUFACTURER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_MODEL" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-MODEL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_TOKEN_MODNAME" link="gnutls-pkcs11.html#GNUTLS-PKCS11-TOKEN-MODNAME:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_UNKNOWN" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_X509_CRT" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-X509-CRT:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_PUBKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-PUBKEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_PRIVKEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-PRIVKEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_SECRET_KEY" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-SECRET-KEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_DATA" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-DATA:CAPS"/>
+ <keyword type="constant" name="GNUTLS_PKCS11_OBJ_X509_CRT_EXTENSION" link="gnutls-pkcs11.html#GNUTLS-PKCS11-OBJ-X509-CRT-EXTENSION:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_EMPTY" link="gnutls-pkcs12.html#GNUTLS-BAG-EMPTY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_PKCS8_ENCRYPTED_KEY" link="gnutls-pkcs12.html#GNUTLS-BAG-PKCS8-ENCRYPTED-KEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_PKCS8_KEY" link="gnutls-pkcs12.html#GNUTLS-BAG-PKCS8-KEY:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_CERTIFICATE" link="gnutls-pkcs12.html#GNUTLS-BAG-CERTIFICATE:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_CRL" link="gnutls-pkcs12.html#GNUTLS-BAG-CRL:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_SECRET" link="gnutls-pkcs12.html#GNUTLS-BAG-SECRET:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_ENCRYPTED" link="gnutls-pkcs12.html#GNUTLS-BAG-ENCRYPTED:CAPS"/>
+ <keyword type="constant" name="GNUTLS_BAG_UNKNOWN" link="gnutls-pkcs12.html#GNUTLS-BAG-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TPMKEY_FMT_RAW" link="gnutls-tpm.html#GNUTLS-TPMKEY-FMT-RAW:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TPMKEY_FMT_DER" link="gnutls-tpm.html#GNUTLS-TPMKEY-FMT-DER:CAPS"/>
+ <keyword type="constant" name="GNUTLS_TPMKEY_FMT_CTK_PEM" link="gnutls-tpm.html#GNUTLS-TPMKEY-FMT-CTK-PEM:CAPS"/>
+ <keyword type="member" name="gnutls-pcert-st.pubkey" link="gnutls-abstract.html#gnutls-pcert-st.pubkey"/>
+ <keyword type="member" name="gnutls-pcert-st.cert" link="gnutls-abstract.html#gnutls-pcert-st.cert"/>
+ <keyword type="member" name="gnutls-pcert-st.type" link="gnutls-abstract.html#gnutls-pcert-st.type"/>
+ <keyword type="member" name="gnutls-dtls-prestate-st.record-seq" link="gnutls-dtls.html#gnutls-dtls-prestate-st.record-seq"/>
+ <keyword type="member" name="gnutls-dtls-prestate-st.hsk-read-seq" link="gnutls-dtls.html#gnutls-dtls-prestate-st.hsk-read-seq"/>
+ <keyword type="member" name="gnutls-dtls-prestate-st.hsk-write-seq" link="gnutls-dtls.html#gnutls-dtls-prestate-st.hsk-write-seq"/>
+ </functions>
+</book>
diff --git a/doc/reference/html/home.png b/doc/reference/html/home.png
new file mode 100644
index 0000000..9346b33
--- /dev/null
+++ b/doc/reference/html/home.png
Binary files differ
diff --git a/doc/reference/html/index.html b/doc/reference/html/index.html
new file mode 100644
index 0000000..d9285d2
--- /dev/null
+++ b/doc/reference/html/index.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GnuTLS API Reference Manual: 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="next" href="intro.html" title="GnuTLS API Reference Manual">
+<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">
+<div class="book">
+<div class="titlepage">
+<div>
+<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GnuTLS API Reference Manual</p></th></tr></table></div>
+<div><p class="releaseinfo">
+ for GnuTLS 3.7.9
+.
+ The latest version of this documentation can be found on-line at
+ <a class="ulink" href="https://www.gnutls.org/reference/" target="_top">https://www.gnutls.org/reference/</a>.
+ </p></div>
+</div>
+<hr>
+</div>
+<div class="toc"><dl class="toc">
+<dt><span class="chapter"><a href="intro.html">GnuTLS API Reference Manual</a></span></dt>
+<dd><dl>
+<dt>
+<span class="refentrytitle"><a href="gnutls-gnutls.html">gnutls</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-abstract.html">abstract</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-x509.html">x509</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-openpgp.html">openpgp</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-crypto.html">crypto</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs11.html">pkcs11</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs12.html">pkcs12</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-ocsp.html">ocsp</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-dtls.html">dtls</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-tpm.html">tpm</a></span><span class="refpurpose"></span>
+</dt>
+</dl></dd>
+<dt><span class="index"><a href="api-index-full.html">API Index</a></span></dt>
+</dl></div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/intro.html b/doc/reference/html/intro.html
new file mode 100644
index 0000000..b03f9f1
--- /dev/null
+++ b/doc/reference/html/intro.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GnuTLS API Reference Manual: 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="index.html" title="GnuTLS API Reference Manual">
+<link rel="prev" href="index.html" title="GnuTLS API Reference Manual">
+<link rel="next" href="gnutls-gnutls.html" title="gnutls">
+<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"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><img src="up-insensitive.png" width="16" height="16" border="0"></td>
+<td><a accesskey="p" href="index.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gnutls-gnutls.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="chapter">
+<div class="titlepage"><div><div><h1 class="title">
+<a name="intro"></a>GnuTLS API Reference Manual</h1></div></div></div>
+<div class="toc"><dl class="toc">
+<dt>
+<span class="refentrytitle"><a href="gnutls-gnutls.html">gnutls</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-abstract.html">abstract</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-x509.html">x509</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-openpgp.html">openpgp</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-crypto.html">crypto</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs11.html">pkcs11</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-pkcs12.html">pkcs12</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-ocsp.html">ocsp</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-dtls.html">dtls</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gnutls-tpm.html">tpm</a></span><span class="refpurpose"></span>
+</dt>
+</dl></div>
+<p>
+ GnuTLS implements the Transport Layer Security (TLS) and Secure
+ Sockets Layer (SSL) protocols for the GNU project.
+ </p>
+<p>
+ More up to date information can be found at
+ <a class="ulink" href="https://www.gnutls.org/" target="_top">
+ https://www.gnutls.org/</a>.
+ </p>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.33.1</div>
+</body>
+</html> \ No newline at end of file
diff --git a/doc/reference/html/left-insensitive.png b/doc/reference/html/left-insensitive.png
new file mode 100644
index 0000000..3269393
--- /dev/null
+++ b/doc/reference/html/left-insensitive.png
Binary files differ
diff --git a/doc/reference/html/left.png b/doc/reference/html/left.png
new file mode 100644
index 0000000..2abde03
--- /dev/null
+++ b/doc/reference/html/left.png
Binary files differ
diff --git a/doc/reference/html/right-insensitive.png b/doc/reference/html/right-insensitive.png
new file mode 100644
index 0000000..4c95785
--- /dev/null
+++ b/doc/reference/html/right-insensitive.png
Binary files differ
diff --git a/doc/reference/html/right.png b/doc/reference/html/right.png
new file mode 100644
index 0000000..76260ec
--- /dev/null
+++ b/doc/reference/html/right.png
Binary files differ
diff --git a/doc/reference/html/style.css b/doc/reference/html/style.css
new file mode 100644
index 0000000..2eeda1f
--- /dev/null
+++ b/doc/reference/html/style.css
@@ -0,0 +1,530 @@
+body
+{
+ font-family: cantarell, sans-serif;
+}
+.synopsis, .classsynopsis
+{
+ /* tango:aluminium 1/2 */
+ background: #eeeeec;
+ background: rgba(238, 238, 236, 0.5);
+ border: solid 1px rgb(238, 238, 236);
+ padding: 0.5em;
+}
+.programlisting
+{
+ /* tango:sky blue 0/1 */
+ /* fallback for no rgba support */
+ background: #e6f3ff;
+ border: solid 1px #729fcf;
+ background: rgba(114, 159, 207, 0.1);
+ border: solid 1px rgba(114, 159, 207, 0.2);
+ padding: 0.5em;
+}
+.variablelist
+{
+ padding: 4px;
+ margin-left: 3em;
+}
+.variablelist td:first-child
+{
+ vertical-align: top;
+}
+
+span.nowrap {
+ white-space: nowrap;
+}
+
+div.gallery-float
+{
+ float: left;
+ padding: 10px;
+}
+div.gallery-float img
+{
+ border-style: none;
+}
+div.gallery-spacer
+{
+ clear: both;
+}
+
+a, a:visited
+{
+ text-decoration: none;
+ /* tango:sky blue 2 */
+ color: #3465a4;
+}
+a:hover
+{
+ text-decoration: underline;
+ /* tango:sky blue 1 */
+ color: #729fcf;
+}
+
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.parameter_name,
+.struct_member_name,
+.union_member_name,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword
+{
+ text-align: right;
+}
+
+/* dim non-primary columns */
+.c_punctuation,
+.function_type,
+.variable_type,
+.property_type,
+.signal_type,
+.define_keyword,
+.datatype_keyword,
+.typedef_keyword,
+.property_flags,
+.signal_flags,
+.parameter_annotations,
+.enum_member_annotations,
+.struct_member_annotations,
+.union_member_annotations
+{
+ color: #888a85;
+}
+
+.function_type a,
+.function_type a:visited,
+.function_type a:hover,
+.property_type a,
+.property_type a:visited,
+.property_type a:hover,
+.signal_type a,
+.signal_type a:visited,
+.signal_type a:hover,
+.signal_flags a,
+.signal_flags a:visited,
+.signal_flags a:hover
+{
+ color: #729fcf;
+}
+
+td p
+{
+ margin: 0.25em;
+}
+
+div.informaltable table[border="1"],
+div.table table
+{
+ border-collapse: collapse;
+ border-spacing: 0px;
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+}
+
+div.informaltable table[border="1"] td,
+div.informaltable table th,
+div.table table td, div.table table th
+{
+ /* tango:aluminium 3 */
+ border: solid 1px #babdb6;
+ padding: 3px;
+ vertical-align: top;
+}
+
+div.informaltable table[border="1"] th,
+div.table table th
+{
+ /* tango:aluminium 2 */
+ background-color: #d3d7cf;
+}
+
+h4
+{
+ color: #555753;
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+hr
+{
+ /* tango:aluminium 1 */
+ color: #d3d7cf;
+ background: #d3d7cf;
+ border: none 0px;
+ height: 1px;
+ clear: both;
+ margin: 2.0em 0em 2.0em 0em;
+}
+
+dl.toc dt
+{
+ padding-bottom: 0.25em;
+}
+
+dl.toc > dt
+{
+ padding-top: 0.25em;
+ padding-bottom: 0.25em;
+ font-weight: bold;
+}
+
+dl.toc > dl
+{
+ padding-bottom: 0.5em;
+}
+
+.parameter
+{
+ font-style: normal;
+}
+
+.footer
+{
+ padding-top: 3.5em;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ text-align: center;
+ font-size: 80%;
+}
+
+.informalfigure,
+.figure
+{
+ margin: 1em;
+}
+
+.informalexample,
+.example
+{
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+.warning
+{
+ /* tango:orange 0/1 */
+ background: #ffeed9;
+ background: rgba(252, 175, 62, 0.1);
+ border-color: #ffb04f;
+ border-color: rgba(252, 175, 62, 0.2);
+}
+.note
+{
+ /* tango:chameleon 0/0.5 */
+ background: #d8ffb2;
+ background: rgba(138, 226, 52, 0.1);
+ border-color: #abf562;
+ border-color: rgba(138, 226, 52, 0.2);
+}
+div.blockquote
+{
+ border-color: #eeeeec;
+}
+.note, .warning, div.blockquote
+{
+ padding: 0.5em;
+ border-width: 1px;
+ border-style: solid;
+ margin: 2em;
+}
+.note p, .warning p
+{
+ margin: 0;
+}
+
+div.warning h3.title,
+div.note h3.title
+{
+ display: none;
+}
+
+p + div.section
+{
+ margin-top: 1em;
+}
+
+div.refnamediv,
+div.refsynopsisdiv,
+div.refsect1,
+div.refsect2,
+div.toc,
+div.section
+{
+ margin-bottom: 1em;
+}
+
+/* blob links */
+h2 .extralinks, h3 .extralinks
+{
+ float: right;
+ /* tango:aluminium 3 */
+ color: #babdb6;
+ font-size: 80%;
+ font-weight: normal;
+}
+
+.lineart
+{
+ color: #d3d7cf;
+ font-weight: normal;
+}
+
+.annotation
+{
+ /* tango:aluminium 5 */
+ color: #555753;
+ font-weight: normal;
+}
+
+.structfield
+{
+ font-style: normal;
+ font-weight: normal;
+}
+
+acronym,abbr
+{
+ border-bottom: 1px dotted gray;
+}
+
+.listing_frame {
+ /* tango:sky blue 1 */
+ border: solid 1px #729fcf;
+ border: solid 1px rgba(114, 159, 207, 0.2);
+ padding: 0px;
+}
+
+.listing_lines, .listing_code {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0.5em;
+}
+.listing_lines {
+ /* tango:sky blue 0.5 */
+ background: #a6c5e3;
+ background: rgba(114, 159, 207, 0.2);
+ /* tango:aluminium 6 */
+ color: #2e3436;
+}
+.listing_code {
+ /* tango:sky blue 0 */
+ background: #e6f3ff;
+ background: rgba(114, 159, 207, 0.1);
+}
+.listing_code .programlisting {
+ /* override from previous */
+ border: none 0px;
+ padding: 0px;
+ background: none;
+}
+.listing_lines pre, .listing_code pre {
+ margin: 0px;
+}
+
+@media screen {
+ /* these have a <sup> as a first child, but since there are no parent selectors
+ * we can't use that. */
+ a.footnote
+ {
+ position: relative;
+ top: 0em ! important;
+ }
+ /* this is needed so that the local anchors are displayed below the naviagtion */
+ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name]
+ {
+ display: inline-block;
+ position: relative;
+ top:-5em;
+ }
+ /* this seems to be a bug in the xsl style sheets when generating indexes */
+ div.index div.index
+ {
+ top: 0em;
+ }
+ /* make space for the fixed navigation bar and add space at the bottom so that
+ * link targets appear somewhat close to top
+ */
+ body
+ {
+ padding-top: 2.5em;
+ padding-bottom: 500px;
+ max-width: 60em;
+ }
+ p
+ {
+ max-width: 60em;
+ }
+ /* style and size the navigation bar */
+ table.navigation#top
+ {
+ position: fixed;
+ background: #e2e2e2;
+ border-bottom: solid 1px #babdb6;
+ border-spacing: 5px;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ z-index: 10;
+ }
+ table.navigation#top td
+ {
+ padding-left: 6px;
+ padding-right: 6px;
+ }
+ .navigation a, .navigation a:visited
+ {
+ /* tango:sky blue 3 */
+ color: #204a87;
+ }
+ .navigation a:hover
+ {
+ /* tango:sky blue 2 */
+ color: #3465a4;
+ }
+ td.shortcuts
+ {
+ /* tango:sky blue 2 */
+ color: #3465a4;
+ font-size: 80%;
+ white-space: nowrap;
+ }
+ td.shortcuts .dim
+ {
+ color: #babdb6;
+ }
+ .navigation .title
+ {
+ font-size: 80%;
+ max-width: none;
+ margin: 0px;
+ font-weight: normal;
+ }
+}
+@media screen and (min-width: 60em) {
+ /* screen larger than 60em */
+ body { margin: auto; }
+}
+@media screen and (max-width: 60em) {
+ /* screen less than 60em */
+ #nav_hierarchy { display: none; }
+ #nav_interfaces { display: none; }
+ #nav_prerequisites { display: none; }
+ #nav_derived_interfaces { display: none; }
+ #nav_implementations { display: none; }
+ #nav_child_properties { display: none; }
+ #nav_style_properties { display: none; }
+ #nav_index { display: none; }
+ #nav_glossary { display: none; }
+ .gallery_image { display: none; }
+ .property_flags { display: none; }
+ .signal_flags { display: none; }
+ .parameter_annotations { display: none; }
+ .enum_member_annotations { display: none; }
+ .struct_member_annotations { display: none; }
+ .union_member_annotations { display: none; }
+ /* now that a column is hidden, optimize space */
+ col.parameters_name { width: auto; }
+ col.parameters_description { width: auto; }
+ col.struct_members_name { width: auto; }
+ col.struct_members_description { width: auto; }
+ col.enum_members_name { width: auto; }
+ col.enum_members_description { width: auto; }
+ col.union_members_name { width: auto; }
+ col.union_members_description { width: auto; }
+ .listing_lines { display: none; }
+}
+@media print {
+ table.navigation {
+ visibility: collapse;
+ display: none;
+ }
+ div.titlepage table.navigation {
+ visibility: visible;
+ display: table;
+ background: #e2e2e2;
+ border: solid 1px #babdb6;
+ margin-top: 0;
+ margin-bottom: 0;
+ top: 0;
+ left: 0;
+ height: 3em;
+ }
+}
+
+pre { line-height: 125%; }
+td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
+td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
+.hll { background-color: #ffffcc }
+.c { color: #3D7B7B; font-style: italic } /* Comment */
+.err { border: 1px solid #FF0000 } /* Error */
+.k { color: #008000; font-weight: bold } /* Keyword */
+.o { color: #666666 } /* Operator */
+.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
+.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
+.cp { color: #9C6500 } /* Comment.Preproc */
+.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
+.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
+.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
+.gd { color: #A00000 } /* Generic.Deleted */
+.ge { font-style: italic } /* Generic.Emph */
+.gr { color: #E40000 } /* Generic.Error */
+.gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.gi { color: #008400 } /* Generic.Inserted */
+.go { color: #717171 } /* Generic.Output */
+.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.gs { font-weight: bold } /* Generic.Strong */
+.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.gt { color: #0044DD } /* Generic.Traceback */
+.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.kp { color: #008000 } /* Keyword.Pseudo */
+.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.kt { color: #B00040 } /* Keyword.Type */
+.m { color: #666666 } /* Literal.Number */
+.s { color: #BA2121 } /* Literal.String */
+.na { color: #687822 } /* Name.Attribute */
+.nb { color: #008000 } /* Name.Builtin */
+.nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.no { color: #880000 } /* Name.Constant */
+.nd { color: #AA22FF } /* Name.Decorator */
+.ni { color: #717171; font-weight: bold } /* Name.Entity */
+.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
+.nf { color: #0000FF } /* Name.Function */
+.nl { color: #767600 } /* Name.Label */
+.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.nt { color: #008000; font-weight: bold } /* Name.Tag */
+.nv { color: #19177C } /* Name.Variable */
+.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.w { color: #bbbbbb } /* Text.Whitespace */
+.mb { color: #666666 } /* Literal.Number.Bin */
+.mf { color: #666666 } /* Literal.Number.Float */
+.mh { color: #666666 } /* Literal.Number.Hex */
+.mi { color: #666666 } /* Literal.Number.Integer */
+.mo { color: #666666 } /* Literal.Number.Oct */
+.sa { color: #BA2121 } /* Literal.String.Affix */
+.sb { color: #BA2121 } /* Literal.String.Backtick */
+.sc { color: #BA2121 } /* Literal.String.Char */
+.dl { color: #BA2121 } /* Literal.String.Delimiter */
+.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.s2 { color: #BA2121 } /* Literal.String.Double */
+.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
+.sh { color: #BA2121 } /* Literal.String.Heredoc */
+.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
+.sx { color: #008000 } /* Literal.String.Other */
+.sr { color: #A45A77 } /* Literal.String.Regex */
+.s1 { color: #BA2121 } /* Literal.String.Single */
+.ss { color: #19177C } /* Literal.String.Symbol */
+.bp { color: #008000 } /* Name.Builtin.Pseudo */
+.fm { color: #0000FF } /* Name.Function.Magic */
+.vc { color: #19177C } /* Name.Variable.Class */
+.vg { color: #19177C } /* Name.Variable.Global */
+.vi { color: #19177C } /* Name.Variable.Instance */
+.vm { color: #19177C } /* Name.Variable.Magic */
+.il { color: #666666 } /* Literal.Number.Integer.Long */ \ No newline at end of file
diff --git a/doc/reference/html/up-insensitive.png b/doc/reference/html/up-insensitive.png
new file mode 100644
index 0000000..f404986
--- /dev/null
+++ b/doc/reference/html/up-insensitive.png
Binary files differ
diff --git a/doc/reference/html/up.png b/doc/reference/html/up.png
new file mode 100644
index 0000000..80b4b37
--- /dev/null
+++ b/doc/reference/html/up.png
Binary files differ