NAME

Crypt::Sodium::XS::OO::shorthash - Short-input hashing

SYNOPSIS

use Crypt::Sodium::XS;

my $shorthash = Crypt::Sodium::XS->shorthash;

my $key = $shorthash->keygen;
my $msg = "short input";

my $hash = $shorthash->shorthash($msg, $key);

DESCRIPTION

Crypt::Sodium::XS::OO::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

CONSTRUCTOR

new

my $shorthash = Crypt::Sodium::XS::OO::shorthash->new;
my $shorthash
  = Crypt::Sodium::XS::OO::shorthash->new(primitive => 'siphash24');
my $shorthash = Crypt::Sodium::XS->shorthash;

Returns a new secretstream object for the given primitive. If not given, the default primitive is default.

METHODS

PRIMITIVE

my $default_primitive = $shorthash->PRIMITIVE;

BYTES

my $hash_length = $shorthash->BYTES;

KEYBYTES

my $key_length = $shorthash->KEYBYTES;

primitives

my @primitives = $pwhash->primitives;

Returns a list of all supported primitive names (including 'default').

keygen

my $key = $shorthash->keygen;

shorthash

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

SEE ALSO

Crypt::Sodium::XS
Crypt::Sodium::XS::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.