NAME
Crypt::Sodium::XS::stream - Stream ciphers
SYNOPSIS
use Crypt::Sodium::XS::stream ":default";
DESCRIPTION
These functions are stream ciphers. They do not provide authenticated encryption. They can be used to generate pseudo-random data from a key, or as building blocks for implementing custom constructions, but they are not alternatives to Crypt::Sodium::XS::secretbox.
FUNCTIONS
Nothing is exported by default. A :default
tag imports the functions and constants as documented below. A separate import tag is provided for each of the primitives listed in "PRIMITIVES". For example, :chacha20
imports stream_chacha20_xor
. You should use at least one import tag.
stream_keygen
my $key = stream_keygen();
stream_nonce
my $nonce = stream_nonce();
stream
my $stream_data = stream($length, $nonce, $key);
stream_xor
my $ciphertext = stream_xor($plaintext, $nonce, $key);
stream_xor_ic
my $ciphertext = stream_xor_ic($plaintext, $nonce, $internal_counter, $key);
CONSTANTS
stream_KEYBYTES
my $key_length = stream_KEYBYTES();
stream_MESSAGEBYTES_MAX
my $plaintext_max_length = stream_MESSAGEBYTES_MAX();
stream_NONCEBYTES
my $nonce_length = stream_NONCEBYTES();
PRIMITIVES
Except for salsa2012, which does not provide an xor_ic function, all constants (except _PRIMITIVE) and functions have stream_<primitive>
-prefixed counterparts (e.g., stream_chacha20_ietf_xor_ic, stream_salsa2012_KEYBYTES).
chacha20
chacha20_ietf
salsa20
salsa2012
xchacha20
xsalsa20
SEE ALSO
- Crypt::Sodium::XS
- Crypt::Sodium::XS::OO::stream
- https://doc.libsodium.org/advanced/stream_ciphers
- https://doc.libsodium.org/advanced/stream_ciphers/chacha20
- https://doc.libsodium.org/advanced/stream_ciphers/xchacha20
- https://doc.libsodium.org/advanced/stream_ciphers/salsa20
- https://doc.libsodium.org/advanced/stream_ciphers/xsalsa20
FEEDBACK
For reporting bugs, giving feedback, submitting patches, etc. please use the following:
IRC channel
#sodium
onirc.perl.org
.Email the author directly.
For any security sensitive reports, please email the author directly or contact privately via IRC.
AUTHOR
Brad Barden <perlmodules@5c30.org>
COPYRIGHT & LICENSE
Copyright (c) 2022 Brad Barden. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 166:
You forgot a '=back' before '=head1'