]>
Commit | Line | Data |
---|---|---|
8fa4d95e RT |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | EVP_chacha20, | |
6 | EVP_chacha20_poly1305 | |
7 | - EVP ChaCha20 stream cipher | |
8 | ||
9 | =head1 SYNOPSIS | |
10 | ||
11 | #include <openssl/evp.h> | |
12 | ||
13 | const EVP_CIPHER *EVP_chacha20(void) | |
14 | const EVP_CIPHER *EVP_chacha20_poly1305(void) | |
15 | ||
16 | =head1 DESCRIPTION | |
17 | ||
18 | The ChaCha20 stream cipher for EVP. | |
19 | ||
20 | =over 4 | |
21 | ||
22 | =item EVP_chacha20() | |
23 | ||
6f3aae25 MC |
24 | The ChaCha20 stream cipher. The key length is 256 bits, the IV is 128 bits long. |
25 | The first 32 bits consists of a counter in little-endian order followed by a 96 | |
26 | bit nonce. For example a nonce of: | |
27 | ||
28 | 000000000000000000000002 | |
29 | ||
30 | With an initial counter of 42 (2a in hex) would be expressed as: | |
31 | ||
32 | 2a000000000000000000000000000002 | |
8fa4d95e RT |
33 | |
34 | =item EVP_chacha20_poly1305() | |
35 | ||
36 | Authenticated encryption with ChaCha20-Poly1305. Like EVP_chacha20(), the key | |
37 | is 256 bits and the IV is 96 bits. This supports additional authenticated data | |
38 | (AAD) and produces a 128-bit authentication tag. See the | |
39 | L<EVP_EncryptInit(3)/AEAD Interface> section for more information. | |
40 | ||
41 | =back | |
42 | ||
43 | =head1 RETURN VALUES | |
44 | ||
45 | These functions return an B<EVP_CIPHER> structure that contains the | |
46 | implementation of the symmetric cipher. See L<EVP_CIPHER_meth_new(3)> for | |
47 | details of the B<EVP_CIPHER> structure. | |
48 | ||
49 | =head1 SEE ALSO | |
50 | ||
51 | L<evp(7)>, | |
52 | L<EVP_EncryptInit(3)>, | |
53 | L<EVP_CIPHER_meth_new(3)> | |
54 | ||
55 | =head1 COPYRIGHT | |
56 | ||
57 | Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. | |
58 | ||
4746f25a | 59 | Licensed under the Apache License 2.0 (the "License"). You may not use |
8fa4d95e RT |
60 | this file except in compliance with the License. You can obtain a copy |
61 | in the file LICENSE in the source distribution or at | |
62 | L<https://www.openssl.org/source/license.html>. | |
63 | ||
64 | =cut | |
65 |