1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<style>
table.head, table.foot { width: 100%; }
td.head-rtitle, td.foot-os { text-align: right; }
td.head-vol { text-align: center; }
div.Pp { margin: 1ex 0ex; }
</style>
<link rel="stylesheet" href="style.css" type="text/css" media="all"/>
<title>CRYPTO_ED25519_SIGN_INIT_FIRST_PASS(3MONOCYPHER)</title>
</head>
<body>
<table class="head">
<tr>
<td class="head-ltitle">CRYPTO_ED25519_SIGN_INIT_FIRST_PASS(3MONOCYPHER)</td>
<td class="head-vol">3MONOCYPHER</td>
<td class="head-rtitle">CRYPTO_ED25519_SIGN_INIT_FIRST_PASS(3MONOCYPHER)</td>
</tr>
</table>
<div class="manual-text">
<h1 class="Sh" title="Sh" id="NAME"><a class="selflink" href="#NAME">NAME</a></h1>
<b class="Nm" title="Nm">crypto_ed25519_sign_init_first_pass</b>,
<b class="Nm" title="Nm">crypto_ed25519_sign_update</b>,
<b class="Nm" title="Nm">crypto_ed25519_sign_final</b>,
<b class="Nm" title="Nm">crypto_ed25519_sign_init_second_pass</b>,
<b class="Nm" title="Nm">crypto_ed25519_check_init</b>,
<b class="Nm" title="Nm">crypto_ed25519_check_update</b>,
<b class="Nm" title="Nm">crypto_ed25519_check_final</b> —
<span class="Nd" title="Nd">incremental public key signatures</span>
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="selflink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<b class="In" title="In">#include
<<a class="In" title="In">monocypher-ed25519.h</a>></b>
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<b class="Fn" title="Fn">crypto_ed25519_sign_init_first_pass</b>(<var class="Fa" title="Fa">crypto_ed25519_sign_ctx
*ctx</var>, <var class="Fa" title="Fa">const uint8_t secret_key[32]</var>,
<var class="Fa" title="Fa">const uint8_t public_key[32]</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<b class="Fn" title="Fn">crypto_ed25519_sign_update</b>(<var class="Fa" title="Fa">crypto_ed25519_sign_ctx
*ctx</var>, <var class="Fa" title="Fa">const uint8_t *message</var>,
<var class="Fa" title="Fa">size_t message_size</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<b class="Fn" title="Fn">crypto_ed25519_sign_final</b>(<var class="Fa" title="Fa">crypto_ed25519_sign_ctx
*ctx</var>, <var class="Fa" title="Fa">uint8_t signature[64]</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<b class="Fn" title="Fn">crypto_ed25519_sign_init_second_pass</b>(<var class="Fa" title="Fa">crypto_ed25519_sign_ctx
*ctx</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<b class="Fn" title="Fn">crypto_ed25519_check_init</b>(<var class="Fa" title="Fa">crypto_ed25519_check_ctx
*ctx</var>, <var class="Fa" title="Fa">const uint8_t signature[64]</var>,
<var class="Fa" title="Fa">const uint8_t public_key[32]</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">void</var>
<br/>
<b class="Fn" title="Fn">crypto_ed25519_check_update</b>(<var class="Fa" title="Fa">crypto_ed25519_check_ctx
*ctx</var>, <var class="Fa" title="Fa">const uint8_t *message</var>,
<var class="Fa" title="Fa">size_t message_size</var>);
<div class="Pp"></div>
<var class="Ft" title="Ft">int</var>
<br/>
<b class="Fn" title="Fn">crypto_ed25519_check_final</b>(<var class="Fa" title="Fa">crypto_ed25519_check_ctx
*ctx</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="selflink" href="#DESCRIPTION">DESCRIPTION</a></h1>
These functions are variants of
<a class="Xr" title="Xr" href="crypto_ed25519_sign.html">crypto_ed25519_sign(3monocypher)</a>
and
<a class="Xr" title="Xr" href="crypto_ed25519_check.html">crypto_ed25519_check(3monocypher)</a>.
Prefer those simpler functions if possible.
<div class="Pp"></div>
These functions provide Ed25519 public key signatures and verification with
SHA-512 as the underlying hash function; they are interoperable with other
Ed25519 implementations. If you have no interoperability requirements, prefer
<a class="Xr" title="Xr" href="crypto_sign.html">crypto_sign(3monocypher)</a>.
<div class="Pp"></div>
The arguments, security considerations and semantics are the same as those
described in
<a class="Xr" title="Xr" href="crypto_sign_init_first_pass.html">crypto_sign_init_first_pass(3monocypher)</a>
and
<a class="Xr" title="Xr" href="crypto_sign.html">crypto_sign(3monocypher)</a>.
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="selflink" href="#RETURN_VALUES">RETURN
VALUES</a></h1>
<b class="Fn" title="Fn">crypto_ed25519_sign_init_first_pass</b>(),
<b class="Fn" title="Fn">crypto_ed25519_sign_init_second_pass</b>(),
<b class="Fn" title="Fn">crypto_ed25519_sign_update</b>(),
<b class="Fn" title="Fn">crypto_ed25519_sign_final</b>(),
<b class="Fn" title="Fn">crypto_ed25519_check_init</b>() and
<b class="Fn" title="Fn">crypto_ed25519_check_update</b>() return nothing.
<div class="Pp"></div>
<b class="Fn" title="Fn">crypto_ed25519_check_final</b>() returns 0 for
legitimate messages and -1 for forgeries.
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="selflink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<a class="Xr" title="Xr" href="crypto_blake2b.html">crypto_blake2b(3monocypher)</a>,
<a class="Xr" title="Xr" href="crypto_key_exchange.html">crypto_key_exchange(3monocypher)</a>,
<a class="Xr" title="Xr" href="crypto_lock.html">crypto_lock(3monocypher)</a>,
<a class="Xr" title="Xr" href="crypto_ed25519_sign.html">crypto_ed25519_sign(3monocypher)</a>,
<a class="Xr" title="Xr" href="crypto_sign.html">crypto_sign(3monocypher)</a>,
<a class="Xr" title="Xr" href="crypto_sign_init_first_pass.html">crypto_sign_init_first_pass(3monocypher)</a>,
<a class="Xr" title="Xr" href="crypto_sha512.html">crypto_sha512(3monocypher)</a>,
<a class="Xr" title="Xr" href="crypto_wipe.html">crypto_wipe(3monocypher)</a>,
<a class="Xr" title="Xr" href="intro.html">intro(3monocypher)</a>
<h1 class="Sh" title="Sh" id="STANDARDS"><a class="selflink" href="#STANDARDS">STANDARDS</a></h1>
These functions implement Ed25519 as described in RFC 8032.
<h1 class="Sh" title="Sh" id="HISTORY"><a class="selflink" href="#HISTORY">HISTORY</a></h1>
The <b class="Fn" title="Fn">crypto_ed25519_sign_init_first_pass</b>(),
<b class="Fn" title="Fn">crypto_ed25519_sign_update</b>(),
<b class="Fn" title="Fn">crypto_ed25519_sign_final</b>(),
<b class="Fn" title="Fn">crypto_ed25519_sign_init_second_pass</b>(),
<b class="Fn" title="Fn">crypto_ed25519_check_init</b>(),
<b class="Fn" title="Fn">crypto_ed25519_check_update</b>(), and
<b class="Fn" title="Fn">crypto_ed25519_check_final</b>() functions first
appeared in Monocypher 3.0.0. They replace recompilation of Monocypher with
the <code class="Dv" title="Dv">ED25519_SHA512</code> preprocessor
definition.</div>
<table class="foot">
<tr>
<td class="foot-date">May 24, 2020</td>
<td class="foot-os">Linux 4.15.0-106-generic</td>
</tr>
</table>
</body>
</html>
|