package Digest::JH; use strict; use warnings; use parent qw(Exporter Digest::base); our $VERSION = '0.05'; $VERSION = eval $VERSION; eval { require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); 1; } or do { require DynaLoader; DynaLoader::bootstrap(__PACKAGE__, $VERSION); }; our @EXPORT_OK = qw( jh_224 jh_224_hex jh_224_base64 jh_256 jh_256_hex jh_256_base64 jh_384 jh_384_hex jh_384_base64 jh_512 jh_512_hex jh_512_base64 ); sub add_bits { my ($self, $data, $bits) = @_; if (2 == @_) { return $self->_add_bits(pack('B*', $data), length $data); } return $self->_add_bits($data, $bits); } 1; __END__ =head1 NAME Digest::JH - Perl interface to the JH digest algorithm =head1 SYNOPSIS # Functional interface use Digest::JH qw(jh_256 jh_256_hex jh_256_base64); $digest = jh_256($data); $digest = jh_256_hex($data); $digest = jh_256_base64($data); # Object-oriented interface use Digest::JH; $ctx = Digest::JH->new(256); $ctx->add($data); $ctx->addfile(*FILE); $digest = $ctx->digest; $digest = $ctx->hexdigest; $digest = $ctx->b64digest; =head1 DESCRIPTION The C module provides an interface to the JH message digest algorithm. JH is a candidate in the NIST SHA-3 competition. This interface follows the conventions set forth by the C module. =head1 FUNCTIONS The following functions are provided by the C module. None of these functions are exported by default. =head2 jh_224($data, ...) =head2 jh_256($data, ...) =head2 jh_384($data, ...) =head2 jh_512($data, ...) Logically joins the arguments into a single string, and returns its JH digest encoded as a binary string. =head2 jh_224_hex($data, ...) =head2 jh_256_hex($data, ...) =head2 jh_384_hex($data, ...) =head2 jh_512_hex($data, ...) Logically joins the arguments into a single string, and returns its JH digest encoded as a hexadecimal string. =head2 jh_224_base64($data, ...) =head2 jh_256_base64($data, ...) =head2 jh_384_base64($data, ...) =head2 jh_512_base64($data, ...) Logically joins the arguments into a single string, and returns its JH digest encoded as a Base64 string, without any trailing padding. =head1 METHODS The object-oriented interface to C is identical to that described by C, except for the following: =head2 new $jh = Digest::JH->new(256) The constructor requires the algorithm to be specified. It must be one of: 224, 256, 384, 512. =head2 algorithm =head2 hashsize Returns the algorithm used by the object. =head1 SEE ALSO L L L L L =head1 REQUESTS AND BUGS Please report any bugs or feature requests to L. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT You can find documentation for this module with the perldoc command. perldoc Digest::JH You can also look for information at: =over =item * GitHub Source Repository L =item * AnnoCPAN: Annotated CPAN documentation L =item * CPAN Ratings L =item * RT: CPAN's request tracker L =item * Search CPAN L =back =head1 COPYRIGHT AND LICENSE Copyright (C) 2010-2011 gray , all rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 AUTHOR gray, =cut