diff options
Diffstat (limited to 'manual/html_node/Public-key-algorithms.html')
-rw-r--r-- | manual/html_node/Public-key-algorithms.html | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/manual/html_node/Public-key-algorithms.html b/manual/html_node/Public-key-algorithms.html deleted file mode 100644 index dbac46bdb8..0000000000 --- a/manual/html_node/Public-key-algorithms.html +++ /dev/null @@ -1,285 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html> -<!-- This manual is last updated 4 March 2015 for version -3.5.4 of GnuTLS. - -Copyright (C) 2001-2015 Free Software Foundation, Inc.\\ -Copyright (C) 2001-2015 Nikos Mavrogiannopoulos - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.3 or -any later version published by the Free Software Foundation; with no -Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A -copy of the license is included in the section entitled "GNU Free -Documentation License". --> -<!-- Created by GNU Texinfo 6.1, http://www.gnu.org/software/texinfo/ --> -<head> -<title>GnuTLS 3.5.4: Public key algorithms</title> - -<meta name="description" content="GnuTLS 3.5.4: Public key algorithms"> -<meta name="keywords" content="GnuTLS 3.5.4: Public key algorithms"> -<meta name="resource-type" content="document"> -<meta name="distribution" content="global"> -<meta name="Generator" content="makeinfo"> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<link href="index.html#Top" rel="start" title="Top"> -<link href="Function-and-Data-Index.html#Function-and-Data-Index" rel="index" title="Function and Data Index"> -<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> -<link href="Using-GnuTLS-as-a-cryptographic-library.html#Using-GnuTLS-as-a-cryptographic-library" rel="up" title="Using GnuTLS as a cryptographic library"> -<link href="Hash-and-MAC-functions.html#Hash-and-MAC-functions" rel="next" title="Hash and MAC functions"> -<link href="Symmetric-algorithms.html#Symmetric-algorithms" rel="prev" title="Symmetric algorithms"> -<style type="text/css"> -<!-- -a.summary-letter {text-decoration: none} -blockquote.indentedblock {margin-right: 0em} -blockquote.smallindentedblock {margin-right: 0em; font-size: smaller} -blockquote.smallquotation {font-size: smaller} -div.display {margin-left: 3.2em} -div.example {margin-left: 3.2em} -div.lisp {margin-left: 3.2em} -div.smalldisplay {margin-left: 3.2em} -div.smallexample {margin-left: 3.2em} -div.smalllisp {margin-left: 3.2em} -kbd {font-style: oblique} -pre.display {font-family: inherit} -pre.format {font-family: inherit} -pre.menu-comment {font-family: serif} -pre.menu-preformatted {font-family: serif} -pre.smalldisplay {font-family: inherit; font-size: smaller} -pre.smallexample {font-size: smaller} -pre.smallformat {font-family: inherit; font-size: smaller} -pre.smalllisp {font-size: smaller} -span.nolinebreak {white-space: nowrap} -span.roman {font-family: initial; font-weight: normal} -span.sansserif {font-family: sans-serif; font-weight: normal} -ul.no-bullet {list-style: none} -body { - margin: 2%; - padding: 0 5%; - background: #ffffff; -} -h1,h2,h3,h4,h5 { - font-weight: bold; - padding: 5px 5px 5px 5px; - background-color: #c2e0ff; - color: #336699; -} -h1 { - padding: 2em 2em 2em 5%; - color: white; - background: #336699; - text-align: center; - letter-spacing: 3px; -} -h2 { text-decoration: underline; } -pre { - margin: 0 5%; - padding: 0.5em; -} -pre.example,pre.verbatim { - padding-bottom: 1em; - - border: solid #c2e0ff; - background: #f0faff; - border-width: 1px 1px 1px 5px; - margin: 1em auto; - width: 90%; -} - -div.node { - margin: 0 -5% 0 -2%; - padding: 0.5em 0.5em; - margin-top: 0.5em; - margin-bottom: 0.5em; - font-weight: bold; -} -dd, li { - padding-top: 0.1em; - padding-bottom: 0.1em; -} -div.float { - - margin-bottom: 0.5em; - text-align: center; -} - -table { - text-align: left; - margin-left:auto; - margin-right:auto; - border-spacing: 7px; - width: 50%; -} - -th { - padding: 0; - color: #336699; - background-color: #c2e0ff; - border: solid #000000; - border-width: 0px; - margin: 1em auto; - text-align: center; - margin-left:auto; - margin-right:auto; -} - -td { - padding: 0; - border: solid #000000; - background-color: #f0faff; - border-width: 0px; - margin: 1em auto; - text-align: left; - margin-left:auto; - margin-right:auto; - padding-left: 1em; -} - -dl { - text-align: left; - margin-left:auto; - margin-right:auto; - width: 50%; - - padding-left: 1em; - border: solid #c2e0ff; - background: #f0faff; - border-width: 5px 1px 1px 1px; - margin: 1em auto; -} - ---> -</style> - - -</head> - -<body lang="en"> -<a name="Public-key-algorithms"></a> -<div class="header"> -<p> -Next: <a href="Hash-and-MAC-functions.html#Hash-and-MAC-functions" accesskey="n" rel="next">Hash and MAC functions</a>, Previous: <a href="Symmetric-algorithms.html#Symmetric-algorithms" accesskey="p" rel="prev">Symmetric algorithms</a>, Up: <a href="Using-GnuTLS-as-a-cryptographic-library.html#Using-GnuTLS-as-a-cryptographic-library" accesskey="u" rel="up">Using GnuTLS as a cryptographic library</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Function-and-Data-Index.html#Function-and-Data-Index" title="Index" rel="index">Index</a>]</p> -</div> -<hr> -<a name="Public-key-algorithms-1"></a> -<h3 class="section">8.2 Public key algorithms</h3> -<a name="index-public-key-algorithms"></a> - -<p>Public key cryptography algorithms such as RSA, DSA and ECDSA, can be -accessed using the abstract key API in <a href="Abstract-key-types.html#Abstract-key-types">Abstract key types</a>. This -is a high level API with the advantage of transparently handling keys -in memory and keys present in smart cards. -</p> -<a name="PKCS-_00237-signing"></a> -<h4 class="subsection">8.2.1 PKCS #7 signing</h4> -<a name="index-PKCS-_00237"></a> -<a name="index-file-signing"></a> - -<p>The PKCS #7 format is common format used for digital signatures. It allows to sign -by embedding the data into the signature, or creating detached signatures of the data, -including a timestamp, additional certificates etc. In certain cases this format is also -used to transport lists of certificates and CRLs. -</p> -<p>The basic functions to initialize, deinitialize, import, export or print information -about a PKCS #7 structure are shown below. -</p><dl compact="compact"> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005finit">gnutls_pkcs7_init</a> (gnutls_pkcs7_t * <var>pkcs7</var>)</code></dt> -<dt><code><var>void</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fdeinit">gnutls_pkcs7_deinit</a> (gnutls_pkcs7_t <var>pkcs7</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fexport2">gnutls_pkcs7_export2</a> (gnutls_pkcs7_t <var>pkcs7</var>, gnutls_x509_crt_fmt_t <var>format</var>, gnutls_datum_t * <var>out</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fimport">gnutls_pkcs7_import</a> (gnutls_pkcs7_t <var>pkcs7</var>, const gnutls_datum_t * <var>data</var>, gnutls_x509_crt_fmt_t <var>format</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fprint">gnutls_pkcs7_print</a> (gnutls_pkcs7_t <var>pkcs7</var>, gnutls_certificate_print_formats_t <var>format</var>, gnutls_datum_t * <var>out</var>)</code></dt> -</dl> - -<p>The following functions allow the verification of a structure using either a trust list, or -individual certificates. The <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fsign">gnutls_pkcs7_sign</a> function is the data signing function. -</p> -<dl compact="compact"> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fverify_005fdirect">gnutls_pkcs7_verify_direct</a> (gnutls_pkcs7_t <var>pkcs7</var>, gnutls_x509_crt_t <var>signer</var>, unsigned <var>idx</var>, const gnutls_datum_t * <var>data</var>, unsigned <var>flags</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fverify">gnutls_pkcs7_verify</a> (gnutls_pkcs7_t <var>pkcs7</var>, gnutls_x509_trust_list_t <var>tl</var>, gnutls_typed_vdata_st * <var>vdata</var>, unsigned int <var>vdata_size</var>, unsigned <var>idx</var>, const gnutls_datum_t * <var>data</var>, unsigned <var>flags</var>)</code></dt> -</dl> - - - - -<dl> -<dt><a name="index-gnutls_005fpkcs7_005fsign"></a>Function: <em>int</em> <strong>gnutls_pkcs7_sign</strong> <em>(gnutls_pkcs7_t <var>pkcs7</var>, gnutls_x509_crt_t <var>signer</var>, gnutls_privkey_t <var>signer_key</var>, const gnutls_datum_t * <var>data</var>, gnutls_pkcs7_attrs_t <var>signed_attrs</var>, gnutls_pkcs7_attrs_t <var>unsigned_attrs</var>, gnutls_digest_algorithm_t <var>dig</var>, unsigned <var>flags</var>)</em></dt> -<dd><p><var>pkcs7</var>: should contain a <code>gnutls_pkcs7_t</code> type -</p> -<p><var>signer</var>: the certificate to sign the structure -</p> -<p><var>signer_key</var>: the key to sign the structure -</p> -<p><var>data</var>: The data to be signed or <code>NULL</code> if the data are already embedded -</p> -<p><var>signed_attrs</var>: Any additional attributes to be included in the signed ones (or <code>NULL</code> ) -</p> -<p><var>unsigned_attrs</var>: Any additional attributes to be included in the unsigned ones (or <code>NULL</code> ) -</p> -<p><var>dig</var>: The digest algorithm to use for signing -</p> -<p><var>flags</var>: Should be zero or one of <code>GNUTLS_PKCS7</code> flags -</p> -<p>This function will add a signature in the provided PKCS <code>7</code> structure -for the provided data. Multiple signatures can be made with different -signers. -</p> -<p>The available flags are: -<code>GNUTLS_PKCS7_EMBED_DATA</code> , <code>GNUTLS_PKCS7_INCLUDE_TIME</code> , <code>GNUTLS_PKCS7_INCLUDE_CERT</code> , -and <code>GNUTLS_PKCS7_WRITE_SPKI</code> . They are explained in the <code>gnutls_pkcs7_sign_flags</code> -definition. -</p> -<p><strong>Returns:</strong> On success, <code>GNUTLS_E_SUCCESS</code> (0) is returned, otherwise a -negative error value. -</p> -<p><strong>Since:</strong> 3.4.2 -</p></dd></dl> - -<div class="float"><a name="gnutls_005fpkcs7_005fsign_005fflags"></a> - - -<dl compact="compact"> -<dt><code>GNUTLS_PKCS7_EMBED_DATA</code></dt> -<dd><p>The signed data will be embedded in the structure. -</p></dd> -<dt><code>GNUTLS_PKCS7_INCLUDE_TIME</code></dt> -<dd><p>The signing time will be included in the structure. -</p></dd> -<dt><code>GNUTLS_PKCS7_INCLUDE_CERT</code></dt> -<dd><p>The signer’s certificate will be included in the cert list. -</p></dd> -<dt><code>GNUTLS_PKCS7_WRITE_SPKI</code></dt> -<dd><p>Use the signer’s key identifier instead of name. -</p></dd> -</dl> - -<div class="float-caption"><p><strong>Figure 8.2: </strong>Flags applicable to gnutls_pkcs7_sign()</p></div></div> -<p>Other helper functions which allow to access the signatures, or certificates attached -in the structure are listed below. -</p> -<dl compact="compact"> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fget_005fsignature_005fcount">gnutls_pkcs7_get_signature_count</a> (gnutls_pkcs7_t <var>pkcs7</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fget_005fsignature_005finfo">gnutls_pkcs7_get_signature_info</a> (gnutls_pkcs7_t <var>pkcs7</var>, unsigned <var>idx</var>, gnutls_pkcs7_signature_info_st * <var>info</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fget_005fcrt_005fcount">gnutls_pkcs7_get_crt_count</a> (gnutls_pkcs7_t <var>pkcs7</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fget_005fcrt_005fraw2">gnutls_pkcs7_get_crt_raw2</a> (gnutls_pkcs7_t <var>pkcs7</var>, unsigned <var>indx</var>, gnutls_datum_t * <var>cert</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fget_005fcrl_005fcount">gnutls_pkcs7_get_crl_count</a> (gnutls_pkcs7_t <var>pkcs7</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fget_005fcrl_005fraw2">gnutls_pkcs7_get_crl_raw2</a> (gnutls_pkcs7_t <var>pkcs7</var>, unsigned <var>indx</var>, gnutls_datum_t * <var>crl</var>)</code></dt> -</dl> - -<p>To append certificates, or CRLs in the structure the following functions are provided. -</p><dl compact="compact"> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fset_005fcrt_005fraw">gnutls_pkcs7_set_crt_raw</a> (gnutls_pkcs7_t <var>pkcs7</var>, const gnutls_datum_t * <var>crt</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fset_005fcrt">gnutls_pkcs7_set_crt</a> (gnutls_pkcs7_t <var>pkcs7</var>, gnutls_x509_crt_t <var>crt</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fset_005fcrl_005fraw">gnutls_pkcs7_set_crl_raw</a> (gnutls_pkcs7_t <var>pkcs7</var>, const gnutls_datum_t * <var>crl</var>)</code></dt> -<dt><code><var>int</var> <a href="PKCS-7-API.html#gnutls_005fpkcs7_005fset_005fcrl">gnutls_pkcs7_set_crl</a> (gnutls_pkcs7_t <var>pkcs7</var>, gnutls_x509_crl_t <var>crl</var>)</code></dt> -</dl> - -<hr> -<div class="header"> -<p> -Next: <a href="Hash-and-MAC-functions.html#Hash-and-MAC-functions" accesskey="n" rel="next">Hash and MAC functions</a>, Previous: <a href="Symmetric-algorithms.html#Symmetric-algorithms" accesskey="p" rel="prev">Symmetric algorithms</a>, Up: <a href="Using-GnuTLS-as-a-cryptographic-library.html#Using-GnuTLS-as-a-cryptographic-library" accesskey="u" rel="up">Using GnuTLS as a cryptographic library</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Function-and-Data-Index.html#Function-and-Data-Index" title="Index" rel="index">Index</a>]</p> -</div> - - - -</body> -</html> |