-
Notifications
You must be signed in to change notification settings - Fork 708
/
sodium-crypto-secretstream-xchacha20poly1305-push.xml
112 lines (104 loc) · 3.93 KB
/
sodium-crypto-secretstream-xchacha20poly1305-push.xml
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.sodium-crypto-secretstream-xchacha20poly1305-push" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>sodium_crypto_secretstream_xchacha20poly1305_push</refname>
<refpurpose>Encrypt a chunk of data so that it can safely be decrypted in a streaming API</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>sodium_crypto_secretstream_xchacha20poly1305_push</methodname>
<methodparam><type>string</type><parameter role="reference">state</parameter></methodparam>
<methodparam><modifier role="attribute">#[\SensitiveParameter]</modifier><type>string</type><parameter>message</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>additional_data</parameter><initializer>""</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>tag</parameter><initializer><constant>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</constant></initializer></methodparam>
</methodsynopsis>
<para>
Encrypt a chunk of data so that it can safely be decrypted in a streaming API.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>state</parameter></term>
<listitem>
<para>
See <function>sodium_crypto_secretstream_xchacha20poly1305_init_pull</function>
and <function>sodium_crypto_secretstream_xchacha20poly1305_init_push</function>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>additional_data</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>tag</parameter></term>
<listitem>
<para>
Optional. Can be used to assert decryption behavior
(i.e. re-keying or indicating the final chunk in a stream).
</para>
<simplelist>
<member>
<constant>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE</constant>:
the most common tag, that doesn't add any information about the nature of the message.
</member>
<member>
<constant>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL</constant>:
indicates that the message marks the end of the stream, and erases the secret key used to encrypt the previous sequence.
</member>
<member>
<constant>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH</constant>:
indicates that the message marks the end of a set of messages, but not the end of the stream.
For example, a huge JSON string sent as multiple chunks can use this tag to indicate to the application that the
string is complete and that it can be decoded. But the stream itself is not closed, and more data may follow.
</member>
<member>
<constant>SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY</constant>:
"forget" the key used to encrypt this message and the previous ones, and derive a new secret key.
</member>
</simplelist>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns the encrypted ciphertext.
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->