NAME
Crypt::Sodium::XS::shorthash - Short-input hashing
SYNOPSIS
use Crypt::Sodium::XS::shorthash ":default";
my $key = shorthash_keygen;
my $msg = "short input";
my $hash = shorthash($msg, $key);
DESCRIPTION
Crypt::Sodium::XS::shorthash outputs short but unpredictable (without knowing the secret key) values suitable for picking a list in a hash table for a given key. This function is optimized for short inputs.
The output of this function is only 64 bits. Therefore, it should not be considered collision-resistant.
Use cases:
Hash tables
Probabilistic data structures such as Bloom filters
Integrity checking in interactive protocols
FUNCTIONS
Nothing is exported by default. A :default
tag imports the functions and constants documented below. A separate :<primitive>
import tag is provided for each of the primitives listed in "PRIMITIVES". These tags import the shorthash_<primitive>_*
functions and constants for that primitive. A :all
tag imports everything.
shorthash_keygen
my $key = shorthash_keygen($flags);
$flags
is optional. It is the flags used for the $key
Crypt::Sodium::XS::MemVault. See Crypt::Sodium::XS::ProtMem.
Returns a Crypt::Sodium::XS::MemVault: a new secret key of "shorthash_KEYBYTES" bytes.
shorthash
my $hash = shorthash($message, $key);
$message
is the message to hash. It may be a Crypt::Sodium::XS::MemVault.
$key
is the secret key used in the hash. It must be "shorthash_KEYBYTES" bytes. It may be a Crypt::Sodium::XS::MemVault.
Returns the hash output of "BYTES" bytes.
CONSTANTS
shorthash_PRIMITIVE
my $default_primitive = shorthash_PRIMITIVE();
Returns the name of the default primitive.
shorthash_BYTES
my $hash_size = shorthash_BYTES();
Returns the size, in bytes, of hash output.
shorthash_KEYBYTES
my $key_size = shorthash_KEYBYTES();
Returns the size, in bytes, of a secret key.
PRIMITIVES
All functions have shorthash_<primitive>
-prefixed counterparts (e.g., shorthash_siphashx24_keygen).
siphash24 (default)
siphashx24
SEE ALSO
- Crypt::Sodium::XS
- Crypt::Sodium::XS::OO::shorthash
- https://doc.libsodium.org/hashing/short-input_hashing
FEEDBACK
For reporting bugs, giving feedback, submitting patches, etc. please use the following:
RT queue at https://rt.cpan.org/Dist/Display.html?Name=Crypt-Sodium-XS
IRC channel
#sodium
onirc.perl.org
.Email the author directly.
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.