mirror of
https://codeberg.org/scip/pcp.git
synced 2025-12-17 12:00:56 +01:00
443 lines
24 KiB
HTML
443 lines
24 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
<title>libpcp: SIGNING</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr style="height: 56px;">
|
|
<td style="padding-left: 0.5em;">
|
|
<div id="projectname">libpcp
|
|
 <span id="projectnumber">0.2.1</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.8.2 -->
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">SIGNING</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>ED25519 signature functions.
|
|
<a href="#details">More...</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:gabbefb2b18707ad13f8d50ba1d53a0eaf"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#gabbefb2b18707ad13f8d50ba1d53a0eaf">pcp_ed_sign</a> (unsigned char *message, size_t messagesize, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s)</td></tr>
|
|
<tr class="memdesc:gabbefb2b18707ad13f8d50ba1d53a0eaf"><td class="mdescLeft"> </td><td class="mdescRight">Sign a raw message. <a href="#gabbefb2b18707ad13f8d50ba1d53a0eaf"></a><br/></td></tr>
|
|
<tr class="separator:gabbefb2b18707ad13f8d50ba1d53a0eaf"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga3afd124c16427247dcd58e49b8b6f6f5"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga3afd124c16427247dcd58e49b8b6f6f5">pcp_ed_sign_key</a> (unsigned char *message, size_t messagesize, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s)</td></tr>
|
|
<tr class="memdesc:ga3afd124c16427247dcd58e49b8b6f6f5"><td class="mdescLeft"> </td><td class="mdescRight">Sign a raw message using s->mastersecret. <a href="#ga3afd124c16427247dcd58e49b8b6f6f5"></a><br/></td></tr>
|
|
<tr class="separator:ga3afd124c16427247dcd58e49b8b6f6f5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79">pcp_ed_verify</a> (unsigned char *signature, size_t siglen, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
|
<tr class="memdesc:ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"><td class="mdescLeft"> </td><td class="mdescRight">Verify a signature. <a href="#ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"></a><br/></td></tr>
|
|
<tr class="separator:ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga15fef528d9d44c9e2b2b9edc159222c5"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga15fef528d9d44c9e2b2b9edc159222c5">pcp_ed_verify_key</a> (unsigned char *signature, size_t siglen, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
|
<tr class="memdesc:ga15fef528d9d44c9e2b2b9edc159222c5"><td class="mdescLeft"> </td><td class="mdescRight">Verify a signature using the mastersecret. <a href="#ga15fef528d9d44c9e2b2b9edc159222c5"></a><br/></td></tr>
|
|
<tr class="separator:ga15fef528d9d44c9e2b2b9edc159222c5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gabc079b17c0ba452c978b56a6507b3db7"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#gabc079b17c0ba452c978b56a6507b3db7">pcp_ed_sign_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s, int z85)</td></tr>
|
|
<tr class="memdesc:gabc079b17c0ba452c978b56a6507b3db7"><td class="mdescLeft"> </td><td class="mdescRight">Sign a stream in 32k block mode. <a href="#gabc079b17c0ba452c978b56a6507b3db7"></a><br/></td></tr>
|
|
<tr class="separator:gabc079b17c0ba452c978b56a6507b3db7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga251ca21c3128e4fdfa2392439d14411e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga251ca21c3128e4fdfa2392439d14411e">pcp_ed_verify_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
|
<tr class="memdesc:ga251ca21c3128e4fdfa2392439d14411e"><td class="mdescLeft"> </td><td class="mdescRight">Verify a signature from a stream in 32k block mode. <a href="#ga251ca21c3128e4fdfa2392439d14411e"></a><br/></td></tr>
|
|
<tr class="separator:ga251ca21c3128e4fdfa2392439d14411e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga60df616ebdb499671067edb15e66cb9e"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga60df616ebdb499671067edb15e66cb9e">pcp_ed_detachsign_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *out, <a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> *s)</td></tr>
|
|
<tr class="memdesc:ga60df616ebdb499671067edb15e66cb9e"><td class="mdescLeft"> </td><td class="mdescRight">Generate a detached signature from a stream in 32k block mode. <a href="#ga60df616ebdb499671067edb15e66cb9e"></a><br/></td></tr>
|
|
<tr class="separator:ga60df616ebdb499671067edb15e66cb9e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga944290e7b36e6b856f6cff981128f89f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__ED.html#ga944290e7b36e6b856f6cff981128f89f">pcp_ed_detachverify_buffered</a> (<a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *in, <a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> *sigfd, <a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> *p)</td></tr>
|
|
<tr class="memdesc:ga944290e7b36e6b856f6cff981128f89f"><td class="mdescLeft"> </td><td class="mdescRight">Verify a detached signature from a stream in 32k block mode. <a href="#ga944290e7b36e6b856f6cff981128f89f"></a><br/></td></tr>
|
|
<tr class="separator:ga944290e7b36e6b856f6cff981128f89f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<p>ED25519 signature functions. </p>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a class="anchor" id="ga60df616ebdb499671067edb15e66cb9e"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">size_t pcp_ed_detachsign_buffered </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
|
<td class="paramname"><em>in</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
|
<td class="paramname"><em>out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
|
<td class="paramname"><em>s</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Generate a detached signature from a stream in 32k block mode. </p>
|
|
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. It then signs that hash and writes the hash and the signature to the output stream <em>out</em>.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write to.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns the size of the detached signature written or 0 in case of errors. Check fatals_if_any(). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga944290e7b36e6b856f6cff981128f89f"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcp_ed_detachverify_buffered </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
|
<td class="paramname"><em>in</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
|
<td class="paramname"><em>sigfd</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
|
<td class="paramname"><em>p</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Verify a detached signature from a stream in 32k block mode. </p>
|
|
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. It then reads the signature from the stream <em>sigfd</em> and verifies the signature from it using p->edpub and compares the signature hash with the hash it calculated from the signed content.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">sigfd</td><td>Stream containing the detached signature.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to a public key which were used to verify the signature or NULL if an error occurred. Check fatals_if_any(). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="gabbefb2b18707ad13f8d50ba1d53a0eaf"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned char* pcp_ed_sign </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned char * </td>
|
|
<td class="paramname"><em>message</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>messagesize</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
|
<td class="paramname"><em>s</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sign a raw message. </p>
|
|
<p>Sign a message of messagesize using s->edsecret. This is just a convenience wrapper around crypto_sign().</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The message to sign.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">messagesize</td><td>Size of the message.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns message+signature with size of messagesize + crypto_sign_BYTES, or NULL in case of an error. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="gabc079b17c0ba452c978b56a6507b3db7"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">size_t pcp_ed_sign_buffered </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
|
<td class="paramname"><em>in</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
|
<td class="paramname"><em>out</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
|
<td class="paramname"><em>s</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>z85</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sign a stream in 32k block mode. </p>
|
|
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. It outputs the stream to <em>out</em>, also blockwise and appends the signature afterwards, which consists of the hash+nacl-signature.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">out</td><td>Stream to write to.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">z85</td><td>Flag which indicates if to create an armored signature or not. 1=armored, 0=raw.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns the number of bytes written to the output stream. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga3afd124c16427247dcd58e49b8b6f6f5"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned char* pcp_ed_sign_key </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned char * </td>
|
|
<td class="paramname"><em>message</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>messagesize</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#gae88eb39995125f3b68b4ce9175b41732">pcp_key_t</a> * </td>
|
|
<td class="paramname"><em>s</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Sign a raw message using s->mastersecret. </p>
|
|
<p>The same as <a class="el" href="group__ED.html#gabbefb2b18707ad13f8d50ba1d53a0eaf" title="Sign a raw message.">pcp_ed_sign()</a> but uses the mastersecret for signing. Usually used for key signing only.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">message</td><td>The message to sign.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">messagesize</td><td>Size of the message.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>Pointer to secret key structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns message+signature with size of messagesize + crypto_sign_BYTES, or NULL in case of an error. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga8a3d79ddcfbe3fe69f14dbe9d5ad7c79"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned char* pcp_ed_verify </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned char * </td>
|
|
<td class="paramname"><em>signature</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>siglen</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
|
<td class="paramname"><em>p</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Verify a signature. </p>
|
|
<p>Verify a signature of size siglen using p->edpub.</p>
|
|
<p>The signature must contain the message+nacl signature (with size crypto_sign_BYTES).</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">signature</td><td>Message+signature.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">siglen</td><td>Size of message+signature.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>If the signature verifies return the raw message with the signature removed (size: siglen - crypto_sign_BYTES), returns NULL in case of errors. Check fatals_if_any(). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga251ca21c3128e4fdfa2392439d14411e"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a>* pcp_ed_verify_buffered </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73">Pcpstream</a> * </td>
|
|
<td class="paramname"><em>in</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
|
<td class="paramname"><em>p</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Verify a signature from a stream in 32k block mode. </p>
|
|
<p>This function reads blockwise from the stream <em>in</em> and generates a hash of the contents of the stream. While reading from the stream it extracts the appended signature (hash+sig). It then verifies the signature using p->edpub and compares the signature hash with the hash it calculated from the signed content.</p>
|
|
<p>The parameter <em>p</em> can be NULL. In this case the function loops through the global public key hash pcppubkey_hash to find a public key which is able to verify the signature.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">in</td><td>Stream to read from.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>Returns a pointer to a public key which were used to verify the signature or NULL if an error occurred. Check fatals_if_any(). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ga15fef528d9d44c9e2b2b9edc159222c5"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned char* pcp_ed_verify_key </td>
|
|
<td>(</td>
|
|
<td class="paramtype">unsigned char * </td>
|
|
<td class="paramname"><em>signature</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">size_t </td>
|
|
<td class="paramname"><em>siglen</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="group__KEYS.html#ga859c793ca80717fdfc8ebef3e7224746">pcp_pubkey_t</a> * </td>
|
|
<td class="paramname"><em>p</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Verify a signature using the mastersecret. </p>
|
|
<p>Verify a signature of size siglen using p->masterpub.</p>
|
|
<p>The signature must contain the message+nacl signature (with size crypto_sign_BYTES).</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">signature</td><td>Message+signature.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">siglen</td><td>Size of message+signature.</td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>Pointer to public key structure.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>If the signature verifies return the raw message with the signature removed (size: siglen - crypto_sign_BYTES), returns NULL in case of errors. Check fatals_if_any(). </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
Generated on Thu Feb 20 2014 20:58:12 for libpcp by  <a href="http://www.doxygen.org/index.html">
|
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
|
</a> 1.8.2
|
|
</small></address>
|
|
</body>
|
|
</html>
|