NAME
Crypt::Scrypt - Perl interface to the scrypt key derivation function
SYNOPSIS
use Crypt::Scrypt;
my $scrypt = Crypt::Scrypt->new(
key => $key,
max_mem => $bytes,
max_mem_frac => $fraction,
max_time => $seconds
);
my $ciphertext = $scrypt->encrypt($plaintext);
my $plaintext = $scrypt->decrypt($ciphertext);
# or using class methods:
my $ciphertext = Crypt::Scrypt->encrypt($plaintext, key => $key, %args);
my $plaintext = Crypt::Scrypt->decrypt($ciphertext, key => $key, %args);
DESCRIPTION
The Crypt::Scrypt
module provides an interface to the scrypt key derivation function. It is designed to be far more secure against hardware brute-force attacks than alternative functions such as PBKDF2 or bcrypt.
CONSTRUCTOR
new
$scrypt = Crypt::Scrypt->new(
key => $key,
max_mem => $bytes,
max_mem_frac => $fraction,
max_time => $seconds
);
key
The key used to encrypt the plaintext. This parameter is required.
max_mem
The maximum number of bytes of memory to use for computation. If set to 0, no maximum will be enforced; any other value less than 1 MiB will be treated as 1 MiB.
Defaults to 0.
max_mem_frac
The maximum fraction of available memory to use for computation. If this value is set to 0 or more than 0.5 it will be treated as 0.5; this value will never cause a limit of less than 1 MiB to be enforced.
Defaults to 0.125.
max_time
The maximum number of seconds of CPU time for computation.
Defaults to 5 seconds.
When encrypting, the key strength is maximized subject to the specified limits; when decrypting, an error is returned if decrypting the data is not possible within the specified limits.
METHODS
encrypt
$ciphertext = $scrypt->encrypt($plaintext, %args)
Encrypts the plaintext and returns the ciphertext. The plaintext can be either a scalar or scalar reference. Additional named arguments can override any value provided to the constructor. Croaks on failure.
decrypt
$plaintext = $scrypt->decrypt($ciphertext, %args)
Decrypts the ciphertext and and returns the plaintext. The ciphertext can be either a scalar or scalar reference. Additional named arguments can override any value provided to the constructor. Croaks on failure.
SEE ALSO
http://www.tarsnap.com/scrypt.html
http://git.chromium.org/gitweb/?p=chromiumos/third_party/libscrypt.git;a=tree
REQUESTS AND BUGS
Please report any bugs or feature requests to http://rt.cpan.org/Public/Bug/Report.html?Queue=Crypt-Scrypt. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Crypt::Scrypt
You can also look for information at:
GitHub Source Repository
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
RT: CPAN's request tracker
http://rt.cpan.org/Public/Dist/Display.html?Name=Crypt-Scrypt
Search CPAN
COPYRIGHT AND LICENSE
Copyright (C) 2011 gray <gray at cpan.org>, all rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
AUTHOR
gray, <gray at cpan.org>