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 as documented below. A separate import tag is provided for each of the primitives listed in "PRIMITIVES". For example, :siphash24 imports shorthash_siphash24. You should use at least one import tag.

shorthash_keygen

my $key = shorthash_keygen();

shorthash

my $hash = shorthash($message, $key);

CONSTANTS

shorthash_PRIMITIVE

my $default_primitive = shorthash_PRIMITIVE();

shorthash_BYTES

my $hash_length = shorthash_BYTES();

shorthash_KEYBYTES

my $key_length = shorthash_KEYBYTES();

PRIMITIVES

All functions have shorthash_<primitive>-prefixed counterparts (e.g., shorthash_siphashx24_keygen).

  • siphash24

  • 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:

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.