Digest::SHA version 4.0.5
=========================

The Digest::SHA module provides a Perl interface to all varieties
of the Secure Hash Algorithm, namely, SHA-1, SHA-256, SHA-384, and
SHA-512.  Fuctions are also included to compute keyed-hashes using
the HMAC algorithm.

Digest::SHA uses the naming conventions and styles of the Digest
module.  Several features have been added, such as the ability to:

	- calculate digests for bit-oriented messages
	- store and retrieve intermediate SHA states

The underlying C code is portable, and requires no special libraries
beyond those found with typical compilers.  However, if your compiler
doesn't recognize the "long long" type, the functions associated
with SHA-384 and SHA-512 will return null values.

Version 4.0.5 focuses on performance optimization.  The "add()"
method has been rewritten in XS, and loops have been unrolled in
the SHA-256 transform.  This has resulted in as much as a 50%
performance increase on SHA benchmarks that compute digests in an
iterative fashion.  The reader is urged to update to this version
if speed is important to your application.

The tests subdirectory (t/*.t) contains an extensive set of SHA
vectors compiled from various sources.  Of particular interest are
the NIST vectors, which examine a large variety of bit-strings and
byte-strings (see the "t/nist/COPYRIGHT" file for details).  Also
note the bit-vectors supplied by Jim Gillogly and Francois Grieu,
which check the behavior of implementations for input strings that
exceed 2^32 bits in length.

The examples directory, kindly provided by Julius Duque, contains
useful and instructive applications of the SHA digest routines.
Refer to the "finddups" utility (featured in the December 2003
issue of The Perl Journal) for a particularly interesting example.

INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

   None.

COPYRIGHT AND LICENCE

Copyright (C) 2003 Mark Shelor

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

Please refer to the Perl Artistic License for details:

http://search.cpan.org/~nwclark/perl-5.8.2/pod/perlartistic.pod
