r1583 - in packages/libdigest-sha-perl/tags: .
debian_version_5_32-1 debian_version_5_32-1/debian
debian_version_5_32-1/src debian_version_5_32-1/t
Gunnar Wolf
gwolf at costa.debian.org
Mon Dec 5 19:11:14 UTC 2005
Author: gwolf
Date: 2005-12-05 19:10:46 +0000 (Mon, 05 Dec 2005)
New Revision: 1583
Added:
packages/libdigest-sha-perl/tags/debian_version_5_32-1/
packages/libdigest-sha-perl/tags/debian_version_5_32-1/Changes
packages/libdigest-sha-perl/tags/debian_version_5_32-1/META.yml
packages/libdigest-sha-perl/tags/debian_version_5_32-1/README
packages/libdigest-sha-perl/tags/debian_version_5_32-1/SHA.pm
packages/libdigest-sha-perl/tags/debian_version_5_32-1/SIGNATURE
packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/changelog
packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/rules
packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/watch
packages/libdigest-sha-perl/tags/debian_version_5_32-1/shasum
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.c
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.h
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.c
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.h
packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod-coverage.t
packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod.t
Removed:
packages/libdigest-sha-perl/tags/debian_version_5_32-1/Changes
packages/libdigest-sha-perl/tags/debian_version_5_32-1/META.yml
packages/libdigest-sha-perl/tags/debian_version_5_32-1/README
packages/libdigest-sha-perl/tags/debian_version_5_32-1/SHA.pm
packages/libdigest-sha-perl/tags/debian_version_5_32-1/SIGNATURE
packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/changelog
packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/rules
packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/watch
packages/libdigest-sha-perl/tags/debian_version_5_32-1/shasum
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.c
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.h
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.c
packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.h
packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod-coverage.t
packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod.t
Log:
Uploaded version 5.32-1
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1 (from rev 1580, packages/libdigest-sha-perl/trunk)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/Changes
===================================================================
--- packages/libdigest-sha-perl/trunk/Changes 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/Changes 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,295 +0,0 @@
-Revision history for Perl extension Digest::SHA.
-
-5.31 Mon Sep 5 00:52:42 MST 2005
- - added standard tests for pod and pod-coverage checking
- - inserted subtest to check for failure when using
- unrecognized SHA algorithm
-
-5.30 Sat Aug 20 16:46:08 MST 2005
- - updated docs with recent NIST statement on SHA-1
- -- advises use of larger and stronger hash functions
- (i.e. SHA-224/256/384/512) for new developments
-
-5.29 Sun Aug 14 04:48:34 MST 2005
- - added explicit casts in "shaload" routine (ref. "ldvals")
- -- thanks to E. Allen Smith for pointing out SGI compiler
- warnings on IPxx-irix platforms
- - updated docs with cautionary note about SHA-1
-
-5.28 Wed Nov 10 15:33:20 MST 2004
- - provided more flexible formatting of SHA state files
- -- entries may now contain embedded whitespace
- for improved readability
- - minor code cleanups
-
-5.27 Sun Oct 24 02:54:00 MST 2004
- - minor code cleanups
- -- reduces size of dump files for SHA-1/224/256
-
-5.26 Thu Oct 7 14:52:00 MST 2004
- - streamlined distribution
- -- reduced NIST vector tests from 200 to 20
- -- former number was overkill
- -- distro now downloads and builds more quickly
- - rewrote SYNOPSIS sections in pod file
- - made additional tweaks to t/8-shasum.t for portability
- - cleaned up test scripts
-
-5.25 Sun Sep 12 18:48:00 MST 2004
- - removed non-essential test script
- -- t/8-shasum.t causes problems on sparc64-linux
- - reverted to using eval "require $module" in shasum
-
-5.24 Sun Sep 12 02:50:18 MST 2004
- - modified shasum to use barewords in "require" statements
- -- ref. perl.cpan.testers (157305)
-
-5.23 Thu Sep 9 23:06:18 MST 2004
- - corrected bug in test script
- -- use blib when invoking perl as an external
- command in t/8-shasum.t
-
-5.22 Tue Sep 7 19:12:40 MST 2004
- - broadened SHA-384/512 support
- -- to compilers with no ULLONG_MAX in limits.h
- -- e.g IBM C (xlC 6.0.0) on AIX 4.3.3
- -- thanks to Chris Carey for suggestions
- and technical expertise
- - improved use of static storage class in transforms
- -- detection of Intel arch. now done in Makefile.PL
- -- NB: static not used if compiling for thread safety
- - minor changes to documentation
-
-5.21 Mon Aug 23 04:02:00 MST 2004
- - removed 64-bit constant expressions from #if statements
- -- ref. src/sha.h (lines 55, 58, and 61)
- -- even if compiler supports long long's, preprocessor
- may use long's when evaluating expressions
- - improved test script for "shasum" (t/8-shasum.t)
- -- exercises check file option (-c)
-
-5.20 Sun Aug 15 04:24:48 MST 2004
- - introduced "shasum" script
- -- mimics the usage and behavior of "md5sum"
- -- adds "-a" option to select SHA algorithm
- -- for help, just type "shasum -h"
-
-5.10 Fri Aug 6 02:04:38 MST 2004
- - simplified module documentation
- -- made it consistent with Digest::SHA::PurePerl docs
-
-5.03 Sat Jul 31 00:00:48 MST 2004
- - corrected HMAC-SHA-384/512 bug (cpan #7181, Adam Woodbury)
- -- code was using hardwired blocksize for SHA-1/256
- -- ref. src/hmac.c, src/hmac.h
-
-5.02 Thu Jul 29 02:48:00 MST 2004
- - updated documentation and "dump-load.t" test script
- -- to be consistent with Digest::SHA::PurePerl
- - included a SIGNATURE file
- -- for stronger authentication of module contents
- -- ref. Module::Signature on CPAN
- - corrected embarrassing misspelling in docs
- -- apologies to Gisle Aas
-
-5.01 Fri May 21 13:08:12 MST 2004
- - check for undefined SHA handle when calling "shaclose()"
- -- prevents intermittent cleanup errors during
- global object destruction
-
-5.00 Fri May 14 04:45:00 MST 2004
- - minor documentation fixes
- - restored classical style of version numbering (X.YZ)
- -- previous X.Y.Z style caused installation difficulties
- when using CPANPLUS
-
-4.3.3 Wed May 5 00:30:40 MST 2004
- - fixed bug in "strto64()" function
- -- caused problems in state files with CR/LF pairs
- -- thanks to Martin Thurn for testing support
-
-4.3.2 Wed Apr 28 03:56:00 MST 2004
- - added Makefile.PL options
- -- thread-safety: -t
- -- exclude 384/512 support: -x
- -- e.g. perl Makefile.PL -t
- - temporarily suppress dump/load tests for SHA-384/512
- -- pending clarification of problem on sun4u sparc
-
-4.3.1 Thu Mar 4 02:54:00 MST 2004
- - removed unused functions from XS file
- -- reduces size of compiled objects
- - simplified implementation of Digest::SHA object
- -- now a blessed SHAPtr ref instead of blessed array ref
- -- results in slight speed-up of OO operations
- - streamlined underlying C source
- -- used macros to consolidate repetitive code
- - rewrote test scripts to depend on Test rather than Test::More
- -- allows module to be checked in minimal Perl environments
- - added compilation option for thread-safety
- -- overrides use of static arrays
-
-4.3.0 Sat Feb 7 02:58:00 MST 2004
- - included SHA-384/512 support if using Microsoft C/C++
- -- uses MSVC's __int64 in place of "long long"
- - enhanced portability and efficiency on diverse platforms
- -- automatically sets up optimal types for 32/64-bit ops
- - improved test scripts for better reporting
- -- many thanks to Alex Muntada for helpful suggestions
-
-4.2.2 Sat Jan 31 17:10:20 MST 2004
- - repaired 32-bit SHA operations for 8-byte longs
-
-4.2.1 Sat Jan 24 00:56:54 MST 2004
- - modified I/O and memory management in underlying C code
- -- uses Perl libraries when compiled as CPAN module
- -- otherwise defaults to ANSI C libraries
- -- bypasses problems in MSWin multi-threaded Perls
- -- avoids "Free to wrong pool" error
- -- special thanks to Robert Gilmour and Brian Gladman
- for technical guidance and testing
-
-4.2.0 Sat Dec 27 16:08:00 MST 2003
- - added support for recently-announced SHA-224 algorithm
- -- ref. FIPS 180-2 Change Notice 1
- -- also includes HMAC-SHA-224
-
-4.1.0 Thu Dec 25 00:58:00 MST 2003
- - repaired "nist-vectors" test scripts for MSWin32 portability
- -- use binmode for data files
-
-4.0.9 Wed Dec 24 02:58:22 MST 2003
- - use canonical file specs in test scripts
- -- enhances portability across different OSes
- - modify type declarations of objects in XS file
- -- re-declare as (SV *) and cast to (AV *) SvRV(self)
- -- in response to AVPtr problem on MSWin32
-
-4.0.8 Thu Dec 18 23:32:00 MST 2003
- - inherits from Digest::base if installed
- -- also checks for MIME::Base64
- -- still fully-functional if neither are installed
- - added buffer overflow protection in underlying C code
- -- ref. shahex() and shabase64() routines
- -- prior code appeared impossible to exploit, but ...
- -- better safe than sorry
- -- does not impact runtime efficiency
- - minor code cleanup
-
-4.0.7 Sat Dec 13 00:48:24 MST 2003
- - check for undefined SHA handle when calling "shaclose()"
- -- was causing cleanup err during global destruction
-
-4.0.6 Thu Dec 11 02:18:00 MST 2003
- - more optimization and streamlining
- -- a bit faster on non-big-endians (e.g. Intel)
- - rewrote time-critical functions and methods in XS
- - removed unused C functions from source files
-
-4.0.5 Sat Dec 6 00:02:24 MST 2003
- - performance optimizations
- -- rewrote "add" method in XS
- -- unrolled loops in sha256 transform
-
-4.0.4 Thu Dec 4 00:07:00 MST 2003
- - made Digest::SHA into a self-contained module
- -- no longer depends on Digest::base
- -- more convenient for users
- -- no need to install Digest:: module
-
-4.0.3 Wed Dec 3 00:01:20 MST 2003
- - Digest::SHA now a subclass of Digest::base
- -- inherits hexdigest/b64digest/addfile methods
- - added "hashsize" method
- - removed old "shaopen()/shawrite()/..." legacy code
- -- in favor of standard, streamlined OO interface
- - renamed test vector files from NIST
- -- prevents problems on 8+3 filesystems
- - added test for Dave Ireland's SHA-256 vector
-
-4.0.0 Sat Nov 29 21:14:09 MST 2003
- - major streamlining of interface (hence, major version change)
- -- coordinated with Gisle Aas and J. Duque
- -- goal is to produce a single SHA module
- -- adheres to OO and functional styles of Digest::
- -- greatly reduces the number of interface functions
- -- old functions still supported
- -- use Digest::SHA ':legacy'
- -- will be deprecated in near future
- - rewrote all test scripts to match new interface
- -- very easy to modify all 281 tests
- -- old interface maps cleanly to new one
-
-3.0 Wed Nov 26 05:02:34 MST 2003
- - added functions that conform to Digest:: interface
- -- both functional and OO styles
- -- byte-oriented data only
- -- continue to support original interface as well
- -- necessary for bit-oriented data
- - supplied formal test vectors for HMAC-SHA-256
- -- from draft-ietf-ipsec-ciph-sha-256-01.txt
- - included tests for all OO methods
-
-2.4 Sat Nov 22 17:10:22 MST 2003
- - code cleanup
- -- "sha.c" now completely free of #ifdef's
- - modularized all 64-bit (long long) code
- - improved readability of header files
- - simplified logic of "fixdump" utility
-
-2.3 Wed Nov 19 03:54:31 MST 2003
- - minor optimizations and code cleanup
- -- improved maintainability by reducing #ifdef's
- -- sha1 transform code now easier to follow
- - streamlined shadump/shaload file format
- -- eliminated special "HQ" entry
- -- state now held in "H" for all transforms
- -- supplied "fixdump" utility to convert old format
- - SHA-384/512 functions now return NULL for no 64-bit operations
- -- previously they were undefined
- -- no longer necessary to use eval's to test for presence
-
-2.2 Sun Nov 16 01:54:00 MST 2003
- - optimized the performance of the SHA-1 transform
- -- around 20-30% faster than previous version
- -- achieved by loop unrolling and assignment consolidation
- - enhanced shaload/shadump to allow interaction with stdin/stdout
- -- "$filename" argument now optional
-
-2.1 Sun Nov 9 03:28:04 MST 2003
- - simplified data input routines
- -- length argument now optional for byte data
- (special thanks to Jeffrey Friedl for this idea)
- -- interface still compatible with earlier versions
- -- changes will not affect existing client code
- - streamlined underlying C code for easier maintenance
- - provided additional tests for persistent data
-
-2.0 Sat Nov 1 03:55:36 MST 2003
- - added functions for HMAC-SHA-1/256/384/512 (FIPS PUB 198)
- - shadump/shaload files now compatible between 32/64-bit machines
-
-1.01 Sat Oct 25 02:44:55 MST 2003
- - package now downloads and installs much faster
- - reduced distribution size by 80%
- -- pruned extensive NIST vectors to a useful subset
- -- still possible to test all vectors if desired
- --- see "t/nist/COPYRIGHT" file for details
- - added routines to provide persistent storage of SHA states
- -- shadump() and shaload()
- - reduced runtime of large bitstring tests (gillogly-hard)
- -- illustrates usefulness of shadump()/shaload()
-
-1.0 Sat Oct 18 17:35:07 MST 2003
- - documentation fixes
- - code cleanup: no more compiler warnings from gcc -Wall
- - added code to allow reading of intermediate digest state
- -- shahex() prior to shafinish() returns current state
-
-0.9 Thu Oct 9 20:43:54 MST 2003
- - version updated to reflect portability check and passing
- of all tests (1401)
-
-0.01 Wed Oct 8 22:28:05 2003
- - original version; created by h2xs 1.22 with options
- -x -A -n Digest::SHA sha.h
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/Changes (from rev 1581, packages/libdigest-sha-perl/trunk/Changes)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/META.yml
===================================================================
--- packages/libdigest-sha-perl/trunk/META.yml 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/META.yml 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,16 +0,0 @@
---- #YAML:1.0
-name: Digest-SHA
-version: 5.31
-author:
- - Mark Shelor, mshelor at cpan.org
-abstract: Perl extension for SHA-1/224/256/384/512
-license: perl
-requires: {}
-recommends: {}
-build_requires: {}
-conflicts: {}
-provides:
- Digest::SHA:
- file: SHA.pm
- version: 5.31
-generated_by: Module::Build version 0.22
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/META.yml (from rev 1581, packages/libdigest-sha-perl/trunk/META.yml)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/README
===================================================================
--- packages/libdigest-sha-perl/trunk/README 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/README 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,44 +0,0 @@
-Digest::SHA version 5.31
-========================
-
-Digest::SHA is a complete implementation of the NIST Secure Hash
-Standard. It gives Perl programmers a convenient way to calculate
-SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 message digests.
-The module can handle all types of input, including partial-byte
-data.
-
-Digest::SHA is written in C for speed. If your platform lacks a
-C compiler, you can install the functionally-equivalent (but much
-slower) Digest::SHA::PurePerl module.
-
-The tests subdirectory (t/*.t) contains an extensive set of SHA
-vectors compiled from various sources.
-
-INSTALLATION
-
-To install this module type the following:
-
- perl Makefile.PL [ options ]
- make
- make test
- make install
-
-The Makefile.PL options are:
-
- -t : build a thread-safe version of module
- -x : exclude support for SHA-384/512
-
-DEPENDENCIES
-
- None
-
-COPYRIGHT AND LICENSE
-
-Copyright (C) 2003-2005 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/perldoc?perlartistic
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/README (from rev 1581, packages/libdigest-sha-perl/trunk/README)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/SHA.pm
===================================================================
--- packages/libdigest-sha-perl/trunk/SHA.pm 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/SHA.pm 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,559 +0,0 @@
-package Digest::SHA;
-
-use strict;
-use warnings;
-use integer;
-
-our $VERSION = '5.31';
-
-require Exporter;
-our @ISA = qw(Exporter);
-
-our @EXPORT_OK = qw(
- hmac_sha1 hmac_sha1_base64 hmac_sha1_hex
- hmac_sha224 hmac_sha224_base64 hmac_sha224_hex
- hmac_sha256 hmac_sha256_base64 hmac_sha256_hex
- hmac_sha384 hmac_sha384_base64 hmac_sha384_hex
- hmac_sha512 hmac_sha512_base64 hmac_sha512_hex
- sha1 sha1_base64 sha1_hex
- sha224 sha224_base64 sha224_hex
- sha256 sha256_base64 sha256_hex
- sha384 sha384_base64 sha384_hex
- sha512 sha512_base64 sha512_hex);
-
-# If possible, inherit from Digest::base (which depends on MIME::Base64)
-
-eval {
- require MIME::Base64;
- require Digest::base;
- push(@ISA, 'Digest::base');
-};
-if ($@) {
- *addfile = \&Addfile;
- *hexdigest = \&Hexdigest;
- *b64digest = \&B64digest;
-}
-
-require XSLoader;
-XSLoader::load('Digest::SHA', $VERSION);
-
-# Preloaded methods go here.
-
-# The following routines aren't time-critical, so they can be left in Perl
-
-sub new {
- my($class, $alg) = @_;
- $alg =~ s/\D+//g if defined $alg;
- if (ref($class)) { # instance method
- unless (defined($alg) && ($alg != $class->algorithm)) {
- sharewind($$class);
- return($class);
- }
- shaclose($$class) if $$class;
- $$class = shaopen($alg) || return;
- return($class);
- }
- $alg = 1 unless defined $alg;
- my $state = shaopen($alg) || return;
- my $self = \$state;
- bless($self, $class);
- return($self);
-}
-
-sub DESTROY {
- my $self = shift;
- shaclose($$self) if $$self;
-}
-
-sub clone {
- my $self = shift;
- my $state = shadup($$self) || return;
- my $copy = \$state;
- bless($copy, ref($self));
- return($copy);
-}
-
-*reset = \&new;
-
-sub add_bits {
- my($self, $data, $nbits) = @_;
- unless (defined $nbits) {
- $nbits = length($data);
- $data = pack("B*", $data);
- }
- shawrite($data, $nbits, $$self);
- return($self);
-}
-
-# local copy of "addfile" in case Digest::base not installed
-
-sub Addfile { # this is "addfile" from Digest::base 1.00
- my ($self, $handle) = @_;
-
- my $n;
- my $buf = "";
-
- while (($n = read($handle, $buf, 4096))) {
- $self->add($buf);
- }
- unless (defined $n) {
- require Carp;
- Carp::croak("Read failed: $!");
- }
-
- $self;
-}
-
-sub dump {
- my $self = shift;
- my $file = shift || "";
-
- shadump($file, $$self) || return;
- return($self);
-}
-
-sub load {
- my $class = shift;
- my $file = shift || "";
- if (ref($class)) { # instance method
- shaclose($$class) if $$class;
- $$class = shaload($file) || return;
- return($class);
- }
- my $state = shaload($file) || return;
- my $self = \$state;
- bless($self, $class);
- return($self);
-}
-
-1;
-__END__
-
-=head1 NAME
-
-Digest::SHA - Perl extension for SHA-1/224/256/384/512
-
-=head1 SYNOPSIS (SHA)
-
-In programs:
-
- # Functional interface
-
- use Digest::SHA qw(sha1 sha1_hex sha1_base64 ...);
-
- $digest = sha1($data);
- $digest = sha1_hex($data);
- $digest = sha1_base64($data);
-
- $digest = sha256($data);
- $digest = sha384_hex($data);
- $digest = sha512_base64($data);
-
- # Object-oriented
-
- use Digest::SHA;
-
- $sha = Digest::SHA->new($alg);
-
- $sha->add($data); # feed data into stream
- $sha->addfile(*F);
- $sha->add_bits($bits);
- $sha->add_bits($data, $nbits);
-
- $sha_copy = $sha->clone; # if needed, make copy of
- $sha->dump($file); # current digest state,
- $sha->load($file); # or save it on disk
-
- $digest = $sha->digest; # compute digest
- $digest = $sha->hexdigest;
- $digest = $sha->b64digest;
-
-From the command line:
-
- $ shasum files
-
- $ shasum --help
-
-=head1 SYNOPSIS (HMAC-SHA)
-
- # Functional interface only
-
- use Digest::SHA qw(hmac_sha1 hmac_sha1_hex ...);
-
- $digest = hmac_sha1($data, $key);
- $digest = hmac_sha224_hex($data, $key);
- $digest = hmac_sha256_base64($data, $key);
-
-=head1 ABSTRACT
-
-Digest::SHA is a complete implementation of the NIST Secure Hash
-Standard. It gives Perl programmers a convenient way to calculate
-SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 message digests.
-The module can handle all types of input, including partial-byte
-data.
-
-=head1 DESCRIPTION
-
-Digest::SHA is written in C for speed. If your platform lacks a
-C compiler, you can install the functionally equivalent (but much
-slower) L<Digest::SHA::PurePerl> module.
-
-The programming interface is easy to use: it's the same one found
-in CPAN's L<Digest> module. So, if your applications currently
-use L<Digest::MD5> and you'd prefer the stronger security of SHA,
-it's a simple matter to convert them.
-
-The interface provides two ways to calculate digests: all-at-once,
-or in stages. To illustrate, the following short program computes
-the SHA-256 digest of "hello world" using each approach:
-
- use Digest::SHA qw(sha256_hex);
-
- $data = "hello world";
- @frags = split(//, $data);
-
- # all-at-once (Functional style)
- $digest1 = sha256_hex($data);
-
- # in-stages (OOP style)
- $state = Digest::SHA->new(256);
- for (@frags) { $state->add($_) }
- $digest2 = $state->hexdigest;
-
- print $digest1 eq $digest2 ?
- "whew!\n" : "oops!\n";
-
-To calculate the digest of an n-bit message where I<n> is not a
-multiple of 8, use the I<add_bits()> method. For example, consider
-the 446-bit message consisting of the bit-string "110" repeated
-148 times, followed by "11". Here's how to display its SHA-1
-digest:
-
- use Digest::SHA;
- $bits = "110" x 148 . "11";
- $sha = Digest::SHA->new(1)->add_bits($bits);
- print $sha->hexdigest, "\n";
-
-Note that for larger bit-strings, it's more efficient to use the
-two-argument version I<add_bits($data, $nbits)>, where I<$data> is
-in the customary packed binary format used for Perl strings.
-
-The module also lets you save intermediate SHA states to disk, or
-display them on standard output. The I<dump()> method generates
-portable, human-readable text describing the current state of
-computation. You can subsequently retrieve the file with I<load()>
-to resume where the calculation left off.
-
-To see what a state description looks like, just run the following:
-
- use Digest::SHA;
- Digest::SHA->new->add("Shaw" x 1962)->dump;
-
-As an added convenience, the Digest::SHA module offers routines to
-calculate keyed hashes using the HMAC-SHA-1/224/256/384/512
-algorithms. These services exist in functional form only, and
-mimic the style and behavior of the I<sha()>, I<sha_hex()>, and
-I<sha_base64()> functions.
-
- # Test vector from draft-ietf-ipsec-ciph-sha-256-01.txt
-
- use Digest::SHA qw(hmac_sha256_hex);
- print hmac_sha256_hex("Hi There", chr(0x0b) x 32), "\n";
-
-=head1 NIST STATEMENT ON SHA-1
-
-I<NIST was recently informed that researchers had discovered a way
-to "break" the current Federal Information Processing Standard SHA-1
-algorithm, which has been in effect since 1994. The researchers
-have not yet published their complete results, so NIST has not
-confirmed these findings. However, the researchers are a reputable
-research team with expertise in this area.>
-
-I<Due to advances in computing power, NIST already planned to phase
-out SHA-1 in favor of the larger and stronger hash functions (SHA-224,
-SHA-256, SHA-384 and SHA-512) by 2010. New developments should use
-the larger and stronger hash functions.>
-
-ref. L<http://www.csrc.nist.gov/pki/HashWorkshop/NIST%20Statement/Burr_Mar2005.html>
-
-=head1 EXPORT
-
-None by default.
-
-=head1 EXPORTABLE FUNCTIONS
-
-Provided your C compiler supports a 64-bit type (e.g. the I<long
-long> of C99, or I<__int64> used by Microsoft C/C++), all of these
-functions will be available for use. Otherwise, you won't be able
-to perform the SHA-384 and SHA-512 transforms, both of which require
-64-bit operations.
-
-I<Functional style>
-
-=over 4
-
-=item B<sha1($data, ...)>
-
-=item B<sha224($data, ...)>
-
-=item B<sha256($data, ...)>
-
-=item B<sha384($data, ...)>
-
-=item B<sha512($data, ...)>
-
-Logically joins the arguments into a single string, and returns
-its SHA-1/224/256/384/512 digest encoded as a binary string.
-
-=item B<sha1_hex($data, ...)>
-
-=item B<sha224_hex($data, ...)>
-
-=item B<sha256_hex($data, ...)>
-
-=item B<sha384_hex($data, ...)>
-
-=item B<sha512_hex($data, ...)>
-
-Logically joins the arguments into a single string, and returns
-its SHA-1/224/256/384/512 digest encoded as a hexadecimal string.
-
-=item B<sha1_base64($data, ...)>
-
-=item B<sha224_base64($data, ...)>
-
-=item B<sha256_base64($data, ...)>
-
-=item B<sha384_base64($data, ...)>
-
-=item B<sha512_base64($data, ...)>
-
-Logically joins the arguments into a single string, and returns
-its SHA-1/224/256/384/512 digest encoded as a Base64 string.
-
-=back
-
-I<OOP style>
-
-=over 4
-
-=item B<new($alg)>
-
-Returns a new Digest::SHA object. Allowed values for I<$alg> are
-1, 224, 256, 384, or 512. It's also possible to use common string
-representations of the algorithm (e.g. "sha256", "SHA-384"). If
-the argument is missing, SHA-1 will be used by default.
-
-Invoking I<new> as an instance method will not create a new object;
-instead, it will simply reset the object to the initial state
-associated with I<$alg>. If the argument is missing, the object
-will continue using the same algorithm that was selected at creation.
-
-=item B<reset($alg)>
-
-This method has exactly the same effect as I<new($alg)>. In fact,
-I<reset> is just an alias for I<new>.
-
-=item B<hashsize>
-
-Returns the number of digest bits for this object. The values are
-160, 224, 256, 384, and 512 for SHA-1, SHA-224, SHA-256, SHA-384,
-and SHA-512, respectively.
-
-=item B<algorithm>
-
-Returns the digest algorithm for this object. The values are 1,
-224, 256, 384, and 512 for SHA-1, SHA-224, SHA-256, SHA-384, and
-SHA-512, respectively.
-
-=item B<clone>
-
-Returns a duplicate copy of the object.
-
-=item B<add($data, ...)>
-
-Logically joins the arguments into a single string, and uses it to
-update the current digest state. In other words, the following
-statements have the same effect:
-
- $sha->add("a"); $sha->add("b"); $sha->add("c");
- $sha->add("a")->add("b")->add("c");
- $sha->add("a", "b", "c");
- $sha->add("abc");
-
-The return value is the updated object itself.
-
-=item B<add_bits($data, $nbits)>
-
-=item B<add_bits($bits)>
-
-Updates the current digest state by appending bits to it. The
-return value is the updated object itself.
-
-The first form causes the most-significant I<$nbits> of I<$data>
-to be appended to the stream. The I<$data> argument is in the
-customary binary format used for Perl strings.
-
-The second form takes an ASCII string of "0" and "1" characters as
-its argument. It's equivalent to
-
- $sha->add_bits(pack("B*", $bits), length($bits));
-
-So, the following two statements do the same thing:
-
- $sha->add_bits("111100001010");
- $sha->add_bits("\xF0\xA0", 12);
-
-=item B<addfile(*FILE)>
-
-Reads from I<FILE> until EOF, and appends that data to the current
-state. The return value is the updated object itself.
-
-This method is inherited if L<Digest::base> is installed on your
-system. Otherwise, a functionally equivalent substitute is used.
-
-=item B<dump($filename)>
-
-Provides persistent storage of intermediate SHA states by writing
-a portable, human-readable representation of the current state to
-I<$filename>. If the argument is missing, or equal to the empty
-string, the state information will be written to STDOUT.
-
-=item B<load($filename)>
-
-Returns a Digest::SHA object representing the intermediate SHA
-state that was previously dumped to I<$filename>. If called as a
-class method, a new object is created; if called as an instance
-method, the object is reset to the state contained in I<$filename>.
-If the argument is missing, or equal to the empty string, the state
-information will be read from STDIN.
-
-=item B<digest>
-
-Returns the digest encoded as a binary string.
-
-Note that the I<digest> method is a read-once operation. Once it
-has been performed, the Digest::SHA object is automatically reset
-in preparation for calculating another digest value. Call
-I<$sha-E<gt>clone-E<gt>digest> if it's necessary to preserve the
-original digest state.
-
-=item B<hexdigest>
-
-Returns the digest encoded as a hexadecimal string.
-
-Like I<digest>, this method is a read-once operation. Call
-I<$sha-E<gt>clone-E<gt>hexdigest> if it's necessary to preserve
-the original digest state.
-
-This method is inherited if L<Digest::base> is installed on your
-system. Otherwise, a functionally equivalent substitute is used.
-
-=item B<b64digest>
-
-Returns the digest encoded as a Base64 string.
-
-Like I<digest>, this method is a read-once operation. Call
-I<$sha-E<gt>clone-E<gt>b64digest> if it's necessary to preserve
-the original digest state.
-
-This method is inherited if L<Digest::base> is installed on your
-system. Otherwise, a functionally equivalent substitute is used.
-
-=back
-
-I<HMAC-SHA-1/224/256/384/512>
-
-=over 4
-
-=item B<hmac_sha1($data, $key)>
-
-=item B<hmac_sha224($data, $key)>
-
-=item B<hmac_sha256($data, $key)>
-
-=item B<hmac_sha384($data, $key)>
-
-=item B<hmac_sha512($data, $key)>
-
-Returns the HMAC-SHA-1/224/256/384/512 digest of I<$data>/I<$key>,
-with the result encoded as a binary string. Multiple I<$data>
-arguments are allowed, provided that I<$key> is the last argument
-in the list.
-
-=item B<hmac_sha1_hex($data, $key)>
-
-=item B<hmac_sha224_hex($data, $key)>
-
-=item B<hmac_sha256_hex($data, $key)>
-
-=item B<hmac_sha384_hex($data, $key)>
-
-=item B<hmac_sha512_hex($data, $key)>
-
-Returns the HMAC-SHA-1/224/256/384/512 digest of I<$data>/I<$key>,
-with the result encoded as a hexadecimal string. Multiple I<$data>
-arguments are allowed, provided that I<$key> is the last argument
-in the list.
-
-=item B<hmac_sha1_base64($data, $key)>
-
-=item B<hmac_sha224_base64($data, $key)>
-
-=item B<hmac_sha256_base64($data, $key)>
-
-=item B<hmac_sha384_base64($data, $key)>
-
-=item B<hmac_sha512_base64($data, $key)>
-
-Returns the HMAC-SHA-1/224/256/384/512 digest of I<$data>/I<$key>,
-with the result encoded as a Base64 string. Multiple I<$data>
-arguments are allowed, provided that I<$key> is the last argument
-in the list.
-
-=back
-
-=head1 SEE ALSO
-
-L<Digest>, L<Digest::SHA::PurePerl>
-
-The Secure Hash Standard (FIPS PUB 180-2) can be found at:
-
-L<http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf>
-
-The Keyed-Hash Message Authentication Code (HMAC):
-
-L<http://csrc.nist.gov/publications/fips/fips198/fips-198a.pdf>
-
-=head1 AUTHOR
-
- Mark Shelor <mshelor at cpan.org>
-
-=head1 ACKNOWLEDGMENTS
-
-The author is particularly grateful to
-
- Gisle Aas
- Chris Carey
- Julius Duque
- Jeffrey Friedl
- Robert Gilmour
- Brian Gladman
- Andy Lester
- Alex Muntada
- Chris Skiscim
- Martin Thurn
- Adam Woodbury
-
-for their valuable comments and suggestions.
-
-=head1 COPYRIGHT AND LICENSE
-
-Copyright (C) 2003-2005 Mark Shelor
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-L<perlartistic>
-
-=cut
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/SHA.pm (from rev 1581, packages/libdigest-sha-perl/trunk/SHA.pm)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/SIGNATURE
===================================================================
--- packages/libdigest-sha-perl/trunk/SIGNATURE 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/SIGNATURE 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,77 +0,0 @@
-This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.50.
-
-To verify the content in this distribution, first make sure you have
-Module::Signature installed, then type:
-
- % cpansign -v
-
-It will check each file's integrity, as well as the signature's
-validity. If "==> Signature verified OK! <==" is not displayed,
-the distribution may already have been compromised, and you should
-not run its Makefile.PL or Build.PL.
-
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-SHA1 226f2775375a3481d1fc34c176b7b10876b43230 Changes
-SHA1 952a17b73eeb605287d1aa08d2e8bf4837106b43 MANIFEST
-SHA1 0a2a774c849ac1df06df6c9fc9f32c437032368e META.yml
-SHA1 9903634fd8ce5d1ed2fbece7be5ed0cd5d98f158 Makefile.PL
-SHA1 cf127ddcb3023c8f357eea4a377644d36dd2505f README
-SHA1 736019bcd8cc385ffb6d922c37b91a0b17bd1c26 SHA.pm
-SHA1 51d3d1db41241cdf960bb3d5c81efa9eac13b197 SHA.xs
-SHA1 0389154c992f23bfc99b36f187500c4d2e47ac95 ppport.h
-SHA1 d8faf01f83da1fedb6659364fd470adc98f65c10 shasum
-SHA1 c42f2e8f2357ece6882bbe276cb60e397f7151da src/hmac.c
-SHA1 915f3f64518c40a61b4d3ef15f8b93120110aa26 src/hmac.h
-SHA1 7589c6ce33e74a58ded932d69756659e91723fdb src/hmacxtra.c
-SHA1 42138d24d6db3e6797503a27c93b4ea0120c0c8d src/sha.c
-SHA1 a026c7288fd89b4ef17c37252289082c708dfcdc src/sha.h
-SHA1 c1bba35de65c8d81362472b76075dba8cf1e542b src/sha64bit.c
-SHA1 48d806b05a15dfd8211d5f7158b3294d86fa24d2 src/sha64bit.h
-SHA1 329ac17325437c725331fbf84ae0c9484f50041a src/shaxtra.c
-SHA1 40cbf841dee0e93f741ab63e32c9fe5a7177edbd t/0-pod-coverage.t
-SHA1 e9c6a5881fc60173fbc8d479c1afd2ce3b43bef1 t/0-pod.t
-SHA1 9d80d4157cbf2791d830c26e1757cbfb1fda717d t/1-exist.t
-SHA1 89d62a1c05ad0d2721d85d921490b181031ad2f8 t/1-hello-world.t
-SHA1 73700867f0df504d7f4545cd674c6f9bb64e4d1b t/2-nist-sha-1.t
-SHA1 0e53db5ce4fa566dd3c407970a7fca2ee5586083 t/2-nist-sha-224.t
-SHA1 d745cd3fe82b686f958782615a270b31261e1b59 t/2-nist-sha-256.t
-SHA1 baeb0deb7582bc6c7f5178b3e14d7dfe22ac5dba t/2-nist-sha-384.t
-SHA1 0a21b8f93bf56c64da46c39df2ea7addbc8bc937 t/2-nist-sha-512.t
-SHA1 60a4d5cdb98367fd4e31ac39f30cb05c6762d5ff t/2-nist-sha-base64.t
-SHA1 0c394207595a2e631e0e524fc618bd56402d2b9f t/2-nist-sha-oo.t
-SHA1 81a3e7ba244407c517ea15b391fbbc087c656cab t/2-nist-vectors-bit.t
-SHA1 7782177cf67fd8ad2074f433e4b30814a34524e5 t/2-nist-vectors-byte.t
-SHA1 2268f236c26d00bfc8c7d805f09108b4913ae5ec t/3-gillogly-easy.t
-SHA1 b1681ac42e405b7384926f2e065f0fd27e52dc99 t/3-gillogly-hard.t
-SHA1 97e25f4939ee815f77ca5d01921b7e3b2145d4ed t/4-bitstr-increasing.t
-SHA1 7d0e85bc97ffab13282e8e60a6ce3801a7876cd5 t/4-bitstr-large.t
-SHA1 c28ce25d2301a6dc322e127a41eebb2816286d57 t/4-bitstr-random.t
-SHA1 48a3befa7429d71540da174d31943fb3c1b5bb5d t/5-hmac-fips198.t
-SHA1 32ee94a4defaac702c9e62e4f89466beb7c38ba9 t/5-hmac-rfc2202.t
-SHA1 6eeba20a4385cfacb6ccf1432b187166bc4108a6 t/5-hmac-sha-256.t
-SHA1 af0e69c897eeae25de8a00ddd8c0b197165b6e0c t/5-hmac-woodbury.t
-SHA1 8c357e6f889147f0ceaf0aea1f1b0e98022ce3b0 t/6-dump-load.t
-SHA1 6228a85f4d019149250d359b9a1713e75e0c5b35 t/7-ireland.t
-SHA1 636d5e987243f6634fdc1dff1fe1d11d07778347 t/gillogly/state.011
-SHA1 b1e86af6b46e066555bbcd749982ccba816cf744 t/gillogly/state.110
-SHA1 427874bceb58bc3a36b5808a204023334614930b t/nist/COPYRIGHT
-SHA1 573d7d4bba50c5cecb4a86f1ffff14d764a31ecb t/nist/Readme.txt
-SHA1 7996bb1a434fb3f6fd38f64800ab3b2fe5d23c6b t/nist/bit-hashes.sha1
-SHA1 d21096373dfbf3330d89bcb2e704b543a27b6065 t/nist/bit-messages.sha1
-SHA1 dd66fe858830fb1b23d35affa402b52a77a15b1f t/nist/byte-hashes.sha1
-SHA1 936304c2db3a3ee49ecb1247f8466814cab080a0 t/nist/byte-messages.sha1
-SHA1 3b51b03c790b1cf112d4804573f5fd4814b384c2 t/state/state.1
-SHA1 cc3d0feffc019e4651fb085e7bc51e190e58fa53 t/state/state.256
-SHA1 2130ee8086bc7bf41fc329e9d87a81e2d98b68c8 t/state/state.384
-SHA1 69cd49d84cb11c83ef8e6eb36f6a472edb37079d t/state/state.512
-SHA1 e93dd71c67ba56e170516c16eeeb7659a41f91fd typemap
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.0 (Darwin)
-
-iD8DBQFDG/mEBwNg/wr1Y/4RAlDyAKDe/1HH7Ve16rGkvaLDZCtPlY4iUwCgon76
-x3mClMHPFnCVwnSTFShiPMk=
-=xtkD
------END PGP SIGNATURE-----
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/SIGNATURE (from rev 1581, packages/libdigest-sha-perl/trunk/SIGNATURE)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/changelog
===================================================================
--- packages/libdigest-sha-perl/trunk/debian/changelog 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/changelog 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,6 +0,0 @@
-libdigest-sha-perl (5.31-1) unstable; urgency=low
-
- * Initial Release (closes: #339580)
-
- -- Allard Hoeve <allard at byte.nl> Wed, 16 Nov 2005 11:33:35 +0100
-
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/changelog (from rev 1581, packages/libdigest-sha-perl/trunk/debian/changelog)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/rules
===================================================================
--- packages/libdigest-sha-perl/trunk/debian/rules 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/rules 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,97 +0,0 @@
-#!/usr/bin/make -f
-# This debian/rules file is provided as a template for normal perl
-# packages. It was created by Marc Brockschmidt <marc at dch-faq.de> for
-# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may
-# be used freely wherever it is useful.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-# If set to a true value then MakeMaker's prompt function will
-# always return the default without waiting for user input.
-export PERL_MM_USE_DEFAULT=1
-
-PACKAGE=$(shell dh_listpackages)
-
-ifndef PERL
-PERL = /usr/bin/perl
-endif
-
-TMP =$(CURDIR)/debian/$(PACKAGE)
-
-# Allow disabling build optimation by setting noopt in
-# $DEB_BUILD_OPTIONS
-CFLAGS = -Wall -g
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
-else
- CFLAGS += -O2
-endif
-
-build: build-stamp
-build-stamp:
- dh_testdir
-
- # Add commands to compile the package here
- $(PERL) Makefile.PL INSTALLDIRS=vendor
- $(MAKE) OPTIMIZE="$(CFLAGS)" LD_RUN_PATH=""
-
- touch build-stamp
-
-clean:
- dh_testdir
- dh_testroot
-
- # Add commands to clean up after the build process here
- -$(MAKE) realclean
-
- dh_clean build-stamp install-stamp
-
-install: build install-stamp
-install-stamp:
- dh_testdir
- dh_testroot
- dh_clean -k
-
- # Add commands to install the package into debian/$PACKAGE_NAME here
- $(MAKE) test
- $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr
-
- # As this is a architecture dependent package, we are not
- # supposed to install stuff to /usr/share. MakeMaker creates
- # the dirs, we delete them from the deb:
- rmdir --ignore-fail-on-non-empty --parents $(TMP)/usr/share/perl5
-
- touch install-stamp
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
- dh_testdir
- dh_testroot
- dh_installdocs README t/nist/Readme.txt
- dh_installexamples
-# dh_installmenu
-# dh_installcron
-# dh_installman
- dh_installchangelogs Changes
- dh_link
- dh_strip
- dh_compress
- dh_fixperms
- dh_makeshlibs
- dh_installdeb
- dh_perl
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-source diff:
- @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/rules (from rev 1582, packages/libdigest-sha-perl/trunk/debian/rules)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/watch
===================================================================
--- packages/libdigest-sha-perl/trunk/debian/watch 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/watch 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,3 +0,0 @@
-# format version number, currently 2; this line is compulsory!
-version=2
-http://www.cpan.org/modules/by-module/Digest/Digest-SHA-(.*)(.tar.gz|.tar|.tgz)
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/debian/watch (from rev 1581, packages/libdigest-sha-perl/trunk/debian/watch)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/shasum
===================================================================
--- packages/libdigest-sha-perl/trunk/shasum 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/shasum 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,211 +0,0 @@
-#!perl -w
-
- # shasum: filter for computing SHA digests (analogous to md5sum)
- #
- # Copyright (C) 2003-2005 Mark Shelor, All Rights Reserved
- #
- # Version: 5.31
- # Mon Sep 5 00:52:42 MST 2005
-
-=head1 NAME
-
-shasum - Print or check SHA checksums
-
-=head1 SYNOPSIS
-
-Usage: shasum [OPTION] [FILE]...
- or: shasum [OPTION] --check [FILE]
-Print or check SHA checksums.
-With no FILE, or when FILE is -, read standard input.
-
- -a, --algorithm 1 (default), 224, 256, 384, 512
- -b, --binary read files in binary mode (default on DOS/Windows)
- -c, --check check SHA sums against given list
- -t, --text read files in text mode (default)
-
-The following two options are useful only when verifying checksums:
- --status don't output anything, status code shows success
- -w, --warn warn about improperly formatted MD5 checksum lines
-
- --help display this help and exit
- --version output version information and exit
-
-The sums are computed as described in FIPS PUB 180-2. When checking,
-the input should be a former output of this program. The default
-mode is to print a line with checksum, a character indicating type
-(`*' for binary, ` ' for text), and name for each FILE.
-
-=head1 AUTHOR
-
-Copyright (c) 2003-2005 Mark Shelor <mshelor at cpan.org>.
-
-=head1 SEE ALSO
-
-Shasum is implemented using the Perl module L<Digest::SHA> or
-L<Digest::SHA::PurePerl>.
-
-=cut
-
-use strict;
-use Getopt::Long;
-
-my $VERSION = "5.31";
-
-
- # Try to use Digest::SHA, since it's faster. If not installed,
- # use Digest::SHA::PurePerl instead.
-
-my $MOD_PREFER = "Digest::SHA";
-my $MOD_SECOND = "Digest::SHA::PurePerl";
-
-my $module = $MOD_PREFER;
-eval "require $module";
-if ($@) {
- $module = $MOD_SECOND;
- eval "require $module";
- die "Unable to find $MOD_PREFER or $MOD_SECOND\n" if $@;
-}
-
-
- # Usage statement adapted from Ulrich Drepper's md5sum.
- # Include an "-a" option for algorithm selection.
-
-sub usage {
- my($err) = @_;
-
- my $stream = $err ? *STDERR : *STDOUT;
- print $stream <<'END_OF_USAGE';
-Usage: shasum [OPTION] [FILE]...
- or: shasum [OPTION] --check [FILE]
-Print or check SHA checksums.
-With no FILE, or when FILE is -, read standard input.
-
- -a, --algorithm 1 (default), 224, 256, 384, 512
- -b, --binary read files in binary mode (default on DOS/Windows)
- -c, --check check SHA sums against given list
- -t, --text read files in text mode (default)
-
-The following two options are useful only when verifying checksums:
- --status don\'t output anything, status code shows success
- -w, --warn warn about improperly formatted MD5 checksum lines
-
- --help display this help and exit
- --version output version information and exit
-
-The sums are computed as described in FIPS PUB 180-2. When checking,
-the input should be a former output of this program. The default
-mode is to print a line with checksum, a character indicating type
-(\`*\' for binary, \` \' for text), and name for each FILE.
-
-Report bugs to <mshelor at cpan.org>.
-END_OF_USAGE
- exit($err);
-}
-
-
- # Collect options from command line
-
-my ($alg, $binary, $check, $text, $status, $warn, $help, $version);
-
-GetOptions(
- 'binary' => \$binary, 'check' => \$check,
- 'text' => \$text, 'algorithm=i' => \$alg,
- 'status' => \$status, 'warn' => \$warn,
- 'help' => \$help, 'version' => \$version
-) or usage(1);
-
-
- # Deal with help requests and incorrect uses
-
-usage(0) if $help;
-usage(1) if $binary and $text;
-usage(1) if $warn and not $check;
-usage(1) if $status and not $check;
-
-
- # Default to SHA-1 unless overriden by command line option
-
-$alg = 1 unless $alg;
-grep { $_ == $alg } (1, 224, 256, 384, 512) or usage(1);
-
-
- # Display version information if requested
-
-if ($version) {
- print "$VERSION\n";
- exit(0);
-}
-
-
- # Try to figure out if the OS is DOS-like. If it is,
- # default to binary mode when reading files, unless
- # explicitly overriden by command line "text" option.
-
-my $isDOSish = ($^O =~ /^(MSWin\d\d|os2|dos|mint|cygwin)$/);
-if ($isDOSish) { $binary = 1 unless $text }
-
-
- # Read from STDIN (-) if no files listed on command line
-
- at ARGV = ("-") unless @ARGV;
-
-
- # sumfile($file): computes SHA digest of $file
-
-sub sumfile {
- my($file) = @_;
- my($fh, $digest);
-
- unless (open($fh, "<$file")) {
- print STDERR "shasum: $file: No such file or directory\n";
- return;
- }
- binmode($fh) if $binary;
- $digest = $module->new($alg)->addfile($fh)->hexdigest;
- close($fh);
- return($digest);
-}
-
-
- # %len2alg: maps hex digest length to SHA algorithm
-
-my %len2alg = (40 => 1, 56 => 224, 64 => 256, 96 => 384, 128 => 512);
-
-
- # Verify checksums if requested
-
-if ($check) {
- my $checkfile = shift(@ARGV);
- my $err = 0;
- my ($fh, $sum, $fname, $rsp);
-
- die "shasum: $checkfile: No such file or directory\n"
- unless open($fh, "<$checkfile");
- while (<$fh>) {
- s/\s+$//;
- ($sum, $binary, $fname) = /^(\S+)\s+(\*?)(.*)$/;
- unless ($alg = $len2alg{length($sum)}) {
- print STDERR "shasum: $checkfile: $.: improperly ",
- "formatted SHA checksum line\n" if $warn;
- next;
- }
- $rsp = "$fname: ";
- if (lc($sum) eq sumfile($fname)) { $rsp .= "OK\n" }
- else { $rsp .= "FAILED\n"; $err = 1 }
- print $rsp unless $status;
- }
- close($fh);
- exit($err);
-}
-
-
- # Compute and display SHA checksums of requested files
-
-for (@ARGV) {
- if (-d $_) {
- print STDERR "shasum: $_: Is a directory\n";
- next;
- }
- next unless my $digest = sumfile($_);
- print "$digest ", $binary ? "\*" : " ", "$_\n";
-}
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/shasum (from rev 1581, packages/libdigest-sha-perl/trunk/shasum)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.c
===================================================================
--- packages/libdigest-sha-perl/trunk/src/hmac.c 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.c 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,114 +0,0 @@
-/*
- * hmac.c: routines to compute HMAC-SHA-1/224/256/384/512 digests
- *
- * Ref: FIPS PUB 198 The Keyed-Hash Message Authentication Code
- *
- * Copyright (C) 2003-2005 Mark Shelor, All Rights Reserved
- *
- * Version: 5.31
- * Mon Sep 5 00:52:42 MST 2005
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "hmac.h"
-#include "sha.h"
-
-/* hmacopen: creates a new HMAC-SHA digest object */
-HMAC *hmacopen(alg, key, keylen)
-int alg;
-unsigned char *key;
-unsigned int keylen;
-{
- int i;
- HMAC *h;
-
- SHA_newz(0, h, 1, HMAC);
- if (h == NULL)
- return(NULL);
- if ((h->isha = shaopen(alg)) == NULL) {
- SHA_free(h);
- return(NULL);
- }
- if ((h->osha = shaopen(alg)) == NULL) {
- shaclose(h->isha);
- SHA_free(h);
- return(NULL);
- }
- if (keylen <= h->osha->blocksize / 8)
- memcpy(h->key, key, keylen);
- else {
- if ((h->ksha = shaopen(alg)) == NULL) {
- shaclose(h->isha);
- shaclose(h->osha);
- SHA_free(h);
- return(NULL);
- }
- shawrite(key, keylen * 8, h->ksha);
- shafinish(h->ksha);
- memcpy(h->key, shadigest(h->ksha), h->ksha->digestlen);
- shaclose(h->ksha);
- }
- for (i = 0; i < h->osha->blocksize / 8; i++)
- h->key[i] ^= 0x5c;
- shawrite(h->key, h->osha->blocksize, h->osha);
- for (i = 0; i < h->isha->blocksize / 8; i++)
- h->key[i] ^= (0x5c ^ 0x36);
- shawrite(h->key, h->isha->blocksize, h->isha);
- memset(h->key, 0, sizeof(h->key));
- return(h);
-}
-
-/* hmacwrite: triggers a state update using data in bitstr/bitcnt */
-unsigned long hmacwrite(bitstr, bitcnt, h)
-unsigned char *bitstr;
-unsigned long bitcnt;
-HMAC *h;
-{
- return(shawrite(bitstr, bitcnt, h->isha));
-}
-
-/* hmacfinish: computes final digest state */
-void hmacfinish(h)
-HMAC *h;
-{
- shafinish(h->isha);
- shawrite(shadigest(h->isha), h->isha->digestlen * 8, h->osha);
- shaclose(h->isha);
- shafinish(h->osha);
-}
-
-/* hmacdigest: returns pointer to digest (binary) */
-unsigned char *hmacdigest(h)
-HMAC *h;
-{
- return(shadigest(h->osha));
-}
-
-/* hmachex: returns pointer to digest (hexadecimal) */
-char *hmachex(h)
-HMAC *h;
-{
- return(shahex(h->osha));
-}
-
-/* hmacbase64: returns pointer to digest (Base 64) */
-char *hmacbase64(h)
-HMAC *h;
-{
- return(shabase64(h->osha));
-}
-
-/* hmacclose: de-allocates digest object */
-int hmacclose(h)
-HMAC *h;
-{
- shaclose(h->osha);
- if (h != NULL) {
- memset(h, 0, sizeof(HMAC));
- SHA_free(h);
- }
- return(0);
-}
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.c (from rev 1581, packages/libdigest-sha-perl/trunk/src/hmac.c)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.h
===================================================================
--- packages/libdigest-sha-perl/trunk/src/hmac.h 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.h 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,60 +0,0 @@
-/*
- * hmac.h: header file for HMAC-SHA-1/224/256/384/512 routines
- *
- * Ref: FIPS PUB 198 The Keyed-Hash Message Authentication Code
- *
- * Copyright (C) 2003-2005 Mark Shelor, All Rights Reserved
- *
- * Version: 5.31
- * Mon Sep 5 00:52:42 MST 2005
- *
- */
-
-#ifndef _INCLUDE_HMAC_H_
-#define _INCLUDE_HMAC_H_
-
-#include "sha.h"
-
-typedef struct {
- SHA *ksha;
- SHA *isha;
- SHA *osha;
- unsigned char key[SHA_MAX_BLOCK_BITS/8];
-} HMAC;
-
-#if defined(__STDC__) && __STDC__ != 0
- #define _HMAC_P(protos) protos
-#else
- #define _HMAC_P(protos) ()
-#endif
-
-#define _HMAC_STATE HMAC *h
-#define _HMAC_ALG int alg
-#define _HMAC_DATA unsigned char *bitstr, unsigned long bitcnt
-#define _HMAC_KEY unsigned char *key, unsigned int keylen
-
-HMAC *hmacopen _HMAC_P((_HMAC_ALG, _HMAC_KEY));
-unsigned long hmacwrite _HMAC_P((_HMAC_DATA, _HMAC_STATE));
-void hmacfinish _HMAC_P((_HMAC_STATE));
-unsigned char *hmacdigest _HMAC_P((_HMAC_STATE));
-char *hmachex _HMAC_P((_HMAC_STATE));
-char *hmacbase64 _HMAC_P((_HMAC_STATE));
-int hmacclose _HMAC_P((_HMAC_STATE));
-
-unsigned char *hmac1digest _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac1hex _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac1base64 _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-unsigned char *hmac224digest _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac224hex _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac224base64 _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-unsigned char *hmac256digest _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac256hex _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac256base64 _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-unsigned char *hmac384digest _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac384hex _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac384base64 _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-unsigned char *hmac512digest _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac512hex _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-char *hmac512base64 _HMAC_P((_HMAC_DATA, _HMAC_KEY));
-
-#endif /* _INCLUDE_HMAC_H_ */
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/hmac.h (from rev 1581, packages/libdigest-sha-perl/trunk/src/hmac.h)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.c
===================================================================
--- packages/libdigest-sha-perl/trunk/src/sha.c 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.c 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,682 +0,0 @@
-/*
- * sha.c: routines to compute SHA-1/224/256/384/512 digests
- *
- * Ref: NIST FIPS PUB 180-2 Secure Hash Standard
- *
- * Copyright (C) 2003-2005 Mark Shelor, All Rights Reserved
- *
- * Version: 5.31
- * Mon Sep 5 00:52:42 MST 2005
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <ctype.h>
-#include "sha.h"
-#include "sha64bit.h"
-
-#define W32 SHA32 /* useful abbreviations */
-#define C32 SHA32_CONST
-#define SR32 SHA32_SHR
-#define SL32 SHA32_SHL
-#define LO32 SHA_LO32
-#define UCHR unsigned char
-#define UINT unsigned int
-#define ULNG unsigned long
-#define VP void *
-
-#define ROTR(x, n) (SR32(x, n) | SL32(x, 32-(n)))
-#define ROTL(x, n) (SL32(x, n) | SR32(x, 32-(n)))
-
-#define Ch(x, y, z) ((z) ^ ((x) & ((y) ^ (z))))
-#define Pa(x, y, z) ((x) ^ (y) ^ (z))
-#define Ma(x, y, z) (((x) & (y)) | ((z) & ((x) | (y))))
-
-#define SIGMA0(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22))
-#define SIGMA1(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25))
-#define sigma0(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SR32(x, 3))
-#define sigma1(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SR32(x, 10))
-
-#define K1 C32(0x5a827999) /* SHA-1 constants */
-#define K2 C32(0x6ed9eba1)
-#define K3 C32(0x8f1bbcdc)
-#define K4 C32(0xca62c1d6)
-
-static W32 K256[64] = /* SHA-224/256 constants */
-{
- C32(0x428a2f98), C32(0x71374491), C32(0xb5c0fbcf), C32(0xe9b5dba5),
- C32(0x3956c25b), C32(0x59f111f1), C32(0x923f82a4), C32(0xab1c5ed5),
- C32(0xd807aa98), C32(0x12835b01), C32(0x243185be), C32(0x550c7dc3),
- C32(0x72be5d74), C32(0x80deb1fe), C32(0x9bdc06a7), C32(0xc19bf174),
- C32(0xe49b69c1), C32(0xefbe4786), C32(0x0fc19dc6), C32(0x240ca1cc),
- C32(0x2de92c6f), C32(0x4a7484aa), C32(0x5cb0a9dc), C32(0x76f988da),
- C32(0x983e5152), C32(0xa831c66d), C32(0xb00327c8), C32(0xbf597fc7),
- C32(0xc6e00bf3), C32(0xd5a79147), C32(0x06ca6351), C32(0x14292967),
- C32(0x27b70a85), C32(0x2e1b2138), C32(0x4d2c6dfc), C32(0x53380d13),
- C32(0x650a7354), C32(0x766a0abb), C32(0x81c2c92e), C32(0x92722c85),
- C32(0xa2bfe8a1), C32(0xa81a664b), C32(0xc24b8b70), C32(0xc76c51a3),
- C32(0xd192e819), C32(0xd6990624), C32(0xf40e3585), C32(0x106aa070),
- C32(0x19a4c116), C32(0x1e376c08), C32(0x2748774c), C32(0x34b0bcb5),
- C32(0x391c0cb3), C32(0x4ed8aa4a), C32(0x5b9cca4f), C32(0x682e6ff3),
- C32(0x748f82ee), C32(0x78a5636f), C32(0x84c87814), C32(0x8cc70208),
- C32(0x90befffa), C32(0xa4506ceb), C32(0xbef9a3f7), C32(0xc67178f2)
-};
-
-static W32 H01[5] = /* SHA-1 initial hash value */
-{
- C32(0x67452301), C32(0xefcdab89), C32(0x98badcfe),
- C32(0x10325476), C32(0xc3d2e1f0)
-};
-
-static W32 H0224[8] = /* SHA-224 initial hash value */
-{
- C32(0xc1059ed8), C32(0x367cd507), C32(0x3070dd17), C32(0xf70e5939),
- C32(0xffc00b31), C32(0x68581511), C32(0x64f98fa7), C32(0xbefa4fa4)
-};
-
-static W32 H0256[8] = /* SHA-256 initial hash value */
-{
- C32(0x6a09e667), C32(0xbb67ae85), C32(0x3c6ef372), C32(0xa54ff53a),
- C32(0x510e527f), C32(0x9b05688c), C32(0x1f83d9ab), C32(0x5be0cd19)
-};
-
-static void sha1(s, block) /* SHA-1 transform */
-SHA *s;
-UCHR *block;
-{
- W32 a, b, c, d, e;
- SHA_STO_CLASS W32 W[16];
- W32 *wp = W;
- W32 *H = (W32 *) s->H;
-
- SHA32_SCHED(W, block);
-
-/*
- * Use SHA-1 alternate method from FIPS PUB 180-2 (ref. 6.1.3)
- *
- * To improve performance, unroll the loop and consolidate assignments
- * by changing the roles of variables "a" through "e" at each step.
- * Note that the variable "T" is no longer needed.
- */
-
-#define M1(a, b, c, d, e, f, k, w) \
- e += ROTL(a, 5) + f(b, c, d) + k + w; \
- b = ROTL(b, 30)
-
-#define M11(f, k, w) M1(a, b, c, d, e, f, k, w);
-#define M12(f, k, w) M1(e, a, b, c, d, f, k, w);
-#define M13(f, k, w) M1(d, e, a, b, c, f, k, w);
-#define M14(f, k, w) M1(c, d, e, a, b, f, k, w);
-#define M15(f, k, w) M1(b, c, d, e, a, f, k, w);
-
-#define W11(s) W[(s+ 0) & 0xf]
-#define W12(s) W[(s+13) & 0xf]
-#define W13(s) W[(s+ 8) & 0xf]
-#define W14(s) W[(s+ 2) & 0xf]
-
-#define A1(s) (W11(s) = ROTL(W11(s) ^ W12(s) ^ W13(s) ^ W14(s), 1))
-
- a = H[0]; b = H[1]; c = H[2]; d = H[3]; e = H[4];
-
- M11(Ch, K1, *wp++); M12(Ch, K1, *wp++); M13(Ch, K1, *wp++);
- M14(Ch, K1, *wp++); M15(Ch, K1, *wp++); M11(Ch, K1, *wp++);
- M12(Ch, K1, *wp++); M13(Ch, K1, *wp++); M14(Ch, K1, *wp++);
- M15(Ch, K1, *wp++); M11(Ch, K1, *wp++); M12(Ch, K1, *wp++);
- M13(Ch, K1, *wp++); M14(Ch, K1, *wp++); M15(Ch, K1, *wp++);
- M11(Ch, K1, *wp ); M12(Ch, K1, A1( 0)); M13(Ch, K1, A1( 1));
- M14(Ch, K1, A1( 2)); M15(Ch, K1, A1( 3)); M11(Pa, K2, A1( 4));
- M12(Pa, K2, A1( 5)); M13(Pa, K2, A1( 6)); M14(Pa, K2, A1( 7));
- M15(Pa, K2, A1( 8)); M11(Pa, K2, A1( 9)); M12(Pa, K2, A1(10));
- M13(Pa, K2, A1(11)); M14(Pa, K2, A1(12)); M15(Pa, K2, A1(13));
- M11(Pa, K2, A1(14)); M12(Pa, K2, A1(15)); M13(Pa, K2, A1( 0));
- M14(Pa, K2, A1( 1)); M15(Pa, K2, A1( 2)); M11(Pa, K2, A1( 3));
- M12(Pa, K2, A1( 4)); M13(Pa, K2, A1( 5)); M14(Pa, K2, A1( 6));
- M15(Pa, K2, A1( 7)); M11(Ma, K3, A1( 8)); M12(Ma, K3, A1( 9));
- M13(Ma, K3, A1(10)); M14(Ma, K3, A1(11)); M15(Ma, K3, A1(12));
- M11(Ma, K3, A1(13)); M12(Ma, K3, A1(14)); M13(Ma, K3, A1(15));
- M14(Ma, K3, A1( 0)); M15(Ma, K3, A1( 1)); M11(Ma, K3, A1( 2));
- M12(Ma, K3, A1( 3)); M13(Ma, K3, A1( 4)); M14(Ma, K3, A1( 5));
- M15(Ma, K3, A1( 6)); M11(Ma, K3, A1( 7)); M12(Ma, K3, A1( 8));
- M13(Ma, K3, A1( 9)); M14(Ma, K3, A1(10)); M15(Ma, K3, A1(11));
- M11(Pa, K4, A1(12)); M12(Pa, K4, A1(13)); M13(Pa, K4, A1(14));
- M14(Pa, K4, A1(15)); M15(Pa, K4, A1( 0)); M11(Pa, K4, A1( 1));
- M12(Pa, K4, A1( 2)); M13(Pa, K4, A1( 3)); M14(Pa, K4, A1( 4));
- M15(Pa, K4, A1( 5)); M11(Pa, K4, A1( 6)); M12(Pa, K4, A1( 7));
- M13(Pa, K4, A1( 8)); M14(Pa, K4, A1( 9)); M15(Pa, K4, A1(10));
- M11(Pa, K4, A1(11)); M12(Pa, K4, A1(12)); M13(Pa, K4, A1(13));
- M14(Pa, K4, A1(14)); M15(Pa, K4, A1(15));
-
- H[0] += a; H[1] += b; H[2] += c; H[3] += d; H[4] += e;
-}
-
-static void sha256(s, block) /* SHA-224/256 transform */
-SHA *s;
-UCHR *block;
-{
- W32 a, b, c, d, e, f, g, h, T1;
- SHA_STO_CLASS W32 W[16];
- W32 *kp = K256;
- W32 *wp = W;
- W32 *H = (W32 *) s->H;
-
- SHA32_SCHED(W, block);
-
-/*
- * Use same technique as in sha1()
- *
- * To improve performance, unroll the loop and consolidate assignments
- * by changing the roles of variables "a" through "h" at each step.
- * Note that the variable "T2" is no longer needed.
- */
-
-#define M2(a, b, c, d, e, f, g, h, w) \
- T1 = h + SIGMA1(e) + Ch(e, f, g) + (*kp++) + w; \
- h = T1 + SIGMA0(a) + Ma(a, b, c); d += T1;
-
-#define W21(s) W[(s+ 0) & 0xf]
-#define W22(s) W[(s+14) & 0xf]
-#define W23(s) W[(s+ 9) & 0xf]
-#define W24(s) W[(s+ 1) & 0xf]
-
-#define A2(s) (W21(s) += sigma1(W22(s)) + W23(s) + sigma0(W24(s)))
-
-#define M21(w) M2(a, b, c, d, e, f, g, h, w)
-#define M22(w) M2(h, a, b, c, d, e, f, g, w)
-#define M23(w) M2(g, h, a, b, c, d, e, f, w)
-#define M24(w) M2(f, g, h, a, b, c, d, e, w)
-#define M25(w) M2(e, f, g, h, a, b, c, d, w)
-#define M26(w) M2(d, e, f, g, h, a, b, c, w)
-#define M27(w) M2(c, d, e, f, g, h, a, b, w)
-#define M28(w) M2(b, c, d, e, f, g, h, a, w)
-
- a = H[0]; b = H[1]; c = H[2]; d = H[3];
- e = H[4]; f = H[5]; g = H[6]; h = H[7];
-
- M21( *wp++); M22( *wp++); M23( *wp++); M24( *wp++);
- M25( *wp++); M26( *wp++); M27( *wp++); M28( *wp++);
- M21( *wp++); M22( *wp++); M23( *wp++); M24( *wp++);
- M25( *wp++); M26( *wp++); M27( *wp++); M28( *wp );
- M21(A2( 0)); M22(A2( 1)); M23(A2( 2)); M24(A2( 3));
- M25(A2( 4)); M26(A2( 5)); M27(A2( 6)); M28(A2( 7));
- M21(A2( 8)); M22(A2( 9)); M23(A2(10)); M24(A2(11));
- M25(A2(12)); M26(A2(13)); M27(A2(14)); M28(A2(15));
- M21(A2( 0)); M22(A2( 1)); M23(A2( 2)); M24(A2( 3));
- M25(A2( 4)); M26(A2( 5)); M27(A2( 6)); M28(A2( 7));
- M21(A2( 8)); M22(A2( 9)); M23(A2(10)); M24(A2(11));
- M25(A2(12)); M26(A2(13)); M27(A2(14)); M28(A2(15));
- M21(A2( 0)); M22(A2( 1)); M23(A2( 2)); M24(A2( 3));
- M25(A2( 4)); M26(A2( 5)); M27(A2( 6)); M28(A2( 7));
- M21(A2( 8)); M22(A2( 9)); M23(A2(10)); M24(A2(11));
- M25(A2(12)); M26(A2(13)); M27(A2(14)); M28(A2(15));
-
- H[0] += a; H[1] += b; H[2] += c; H[3] += d;
- H[4] += e; H[5] += f; H[6] += g; H[7] += h;
-}
-
-#include "sha64bit.c"
-
-#define SETBIT(s, pos) s[(pos) >> 3] |= (0x01 << (7 - (pos) % 8))
-#define CLRBIT(s, pos) s[(pos) >> 3] &= ~(0x01 << (7 - (pos) % 8))
-#define NBYTES(nbits) ((nbits) > 0 ? 1 + (((nbits) - 1) >> 3) : 0)
-#define HEXLEN(nbytes) ((nbytes) << 1)
-#define B64LEN(nbytes) (((nbytes) % 3 == 0) ? ((nbytes) / 3) * 4 \
- : ((nbytes) / 3) * 4 + ((nbytes) % 3) + 1)
-
-/* w32mem: writes 32-bit word to memory in big-endian order */
-static void w32mem(mem, w32)
-UCHR *mem;
-W32 w32;
-{
- int i;
-
- for (i = 0; i < 4; i++)
- *mem++ = (UCHR) (SR32(w32, 24-i*8) & 0xff);
-}
-
-/* digcpy: writes current state to digest buffer */
-static void digcpy(s)
-SHA *s;
-{
- UINT i;
- UCHR *d = s->digest;
- W32 *p32 = (W32 *) s->H;
- W64 *p64 = (W64 *) s->H;
-
- if (s->alg <= SHA256)
- for (i = 0; i < 8; i++, d += 4)
- w32mem(d, *p32++);
- else
- for (i = 0; i < 8; i++, d += 8) {
- w32mem(d, (W32) ((*p64 >> 16) >> 16));
- w32mem(d+4, (W32) (*p64++ & SHA32_MAX));
- }
-}
-
-#define SHA_INIT(algo, transform) \
- do { \
- memset(s, 0, sizeof(SHA)); \
- s->alg = algo; s->sha = sha ## transform; \
- memcpy(s->H, H0 ## algo, sizeof(H0 ## algo)); \
- s->blocksize = SHA ## algo ## _BLOCK_BITS; \
- s->digestlen = SHA ## algo ## _DIGEST_BITS >> 3; \
- } while (0)
-
-/* sharewind: re-initializes the digest object */
-void sharewind(s)
-SHA *s;
-{
- if (s->alg == SHA1) SHA_INIT(1, 1);
- else if (s->alg == SHA224) SHA_INIT(224, 256);
- else if (s->alg == SHA256) SHA_INIT(256, 256);
- else if (s->alg == SHA384) SHA_INIT(384, 512);
- else if (s->alg == SHA512) SHA_INIT(512, 512);
-}
-
-/* shaopen: creates a new digest object */
-SHA *shaopen(alg)
-int alg;
-{
- SHA *s;
-
- if (alg != SHA1 && alg != SHA224 && alg != SHA256 &&
- alg != SHA384 && alg != SHA512)
- return(NULL);
- if (alg >= SHA384 && !sha_384_512)
- return(NULL);
- SHA_newz(0, s, 1, SHA);
- if (s == NULL)
- return(NULL);
- s->alg = alg;
- sharewind(s);
- return(s);
-}
-
-/* shadirect: updates state directly (w/o going through s->block) */
-static ULNG shadirect(bitstr, bitcnt, s)
-UCHR *bitstr;
-ULNG bitcnt;
-SHA *s;
-{
- ULNG savecnt = bitcnt;
-
- while (bitcnt >= s->blocksize) {
- s->sha(s, bitstr);
- bitstr += (s->blocksize >> 3);
- bitcnt -= s->blocksize;
- }
- if (bitcnt > 0) {
- memcpy(s->block, bitstr, NBYTES(bitcnt));
- s->blockcnt = bitcnt;
- }
- return(savecnt);
-}
-
-/* shabytes: updates state for byte-aligned input data */
-static ULNG shabytes(bitstr, bitcnt, s)
-UCHR *bitstr;
-ULNG bitcnt;
-SHA *s;
-{
- UINT offset;
- UINT nbits;
- ULNG savecnt = bitcnt;
-
- offset = s->blockcnt >> 3;
- if (s->blockcnt + bitcnt >= s->blocksize) {
- nbits = s->blocksize - s->blockcnt;
- memcpy(s->block+offset, bitstr, nbits>>3);
- bitcnt -= nbits;
- bitstr += (nbits >> 3);
- s->sha(s, s->block), s->blockcnt = 0;
- shadirect(bitstr, bitcnt, s);
- }
- else {
- memcpy(s->block+offset, bitstr, NBYTES(bitcnt));
- s->blockcnt += bitcnt;
- }
- return(savecnt);
-}
-
-/* shabits: updates state for bit-aligned input data */
-static ULNG shabits(bitstr, bitcnt, s)
-UCHR *bitstr;
-ULNG bitcnt;
-SHA *s;
-{
- UINT i;
- UINT gap;
- ULNG nbits;
- UCHR buf[1<<9];
- UINT bufsize = sizeof(buf);
- ULNG bufbits = (ULNG) bufsize << 3;
- UINT nbytes = NBYTES(bitcnt);
- ULNG savecnt = bitcnt;
-
- gap = 8 - s->blockcnt % 8;
- s->block[s->blockcnt>>3] &= ~0 << gap;
- s->block[s->blockcnt>>3] |= *bitstr >> (8 - gap);
- s->blockcnt += bitcnt < gap ? bitcnt : gap;
- if (bitcnt < gap)
- return(savecnt);
- if (s->blockcnt == s->blocksize)
- s->sha(s, s->block), s->blockcnt = 0;
- if ((bitcnt -= gap) == 0)
- return(savecnt);
- while (nbytes > bufsize) {
- for (i = 0; i < bufsize; i++)
- buf[i] = bitstr[i] << gap | bitstr[i+1] >> (8-gap);
- nbits = bitcnt < bufbits ? bitcnt : bufbits;
- shabytes(buf, nbits, s);
- bitcnt -= nbits, bitstr += bufsize, nbytes -= bufsize;
- }
- for (i = 0; i < nbytes - 1; i++)
- buf[i] = bitstr[i] << gap | bitstr[i+1] >> (8-gap);
- buf[nbytes-1] = bitstr[nbytes-1] << gap;
- shabytes(buf, bitcnt, s);
- return(savecnt);
-}
-
-/* shawrite: triggers a state update using data in bitstr/bitcnt */
-ULNG shawrite(bitstr, bitcnt, s)
-UCHR *bitstr;
-ULNG bitcnt;
-SHA *s;
-{
- if (bitcnt == 0)
- return(0);
- if (SHA_LO32(s->lenll += bitcnt) < bitcnt)
- if (SHA_LO32(++s->lenlh) == 0)
- if (SHA_LO32(++s->lenhl) == 0)
- s->lenhh++;
- if (s->blockcnt == 0)
- return(shadirect(bitstr, bitcnt, s));
- else if (s->blockcnt % 8 == 0)
- return(shabytes(bitstr, bitcnt, s));
- else
- return(shabits(bitstr, bitcnt, s));
-}
-
-/* shafinish: pads remaining block(s) and computes final digest state */
-void shafinish(s)
-SHA *s;
-{
- UINT lenpos, lhpos, llpos;
-
- lenpos = s->blocksize == SHA1_BLOCK_BITS ? 448 : 896;
- lhpos = s->blocksize == SHA1_BLOCK_BITS ? 56 : 120;
- llpos = s->blocksize == SHA1_BLOCK_BITS ? 60 : 124;
- SETBIT(s->block, s->blockcnt), s->blockcnt++;
- while (s->blockcnt > lenpos)
- if (s->blockcnt == s->blocksize)
- s->sha(s, s->block), s->blockcnt = 0;
- else
- CLRBIT(s->block, s->blockcnt), s->blockcnt++;
- while (s->blockcnt < lenpos)
- CLRBIT(s->block, s->blockcnt), s->blockcnt++;
- if (s->blocksize != SHA1_BLOCK_BITS) {
- w32mem(s->block + 112, s->lenhh);
- w32mem(s->block + 116, s->lenhl);
- }
- w32mem(s->block + lhpos, s->lenlh);
- w32mem(s->block + llpos, s->lenll);
- s->sha(s, s->block), s->blockcnt = 0;
-}
-
-/* shadigest: returns pointer to current digest (binary) */
-UCHR *shadigest(s)
-SHA *s;
-{
- digcpy(s);
- return(s->digest);
-}
-
-/* shahex: returns pointer to current digest (hexadecimal) */
-char *shahex(s)
-SHA *s;
-{
- int i;
-
- digcpy(s);
- s->hex[0] = '\0';
- if (HEXLEN((size_t) s->digestlen) >= sizeof(s->hex))
- return(s->hex);
- for (i = 0; i < s->digestlen; i++)
- sprintf(s->hex+i*2, "%02x", s->digest[i]);
- return(s->hex);
-}
-
-/* map: translation map for Base 64 encoding */
-static char map[] =
- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-/* encbase64: encodes input (0 to 3 bytes) into Base 64 */
-static void encbase64(in, n, out)
-UCHR *in;
-int n;
-char *out;
-{
- UCHR byte[3] = {0, 0, 0};
-
- out[0] = '\0';
- if (n < 1 || n > 3)
- return;
- memcpy(byte, in, n);
- out[0] = map[byte[0] >> 2];
- out[1] = map[((byte[0] & 0x03) << 4) | (byte[1] >> 4)];
- out[2] = map[((byte[1] & 0x0f) << 2) | (byte[2] >> 6)];
- out[3] = map[byte[2] & 0x3f];
- out[n+1] = '\0';
-}
-
-/* shabase64: returns pointer to current digest (Base 64) */
-char *shabase64(s)
-SHA *s;
-{
- int n;
- UCHR *q;
- char out[5];
-
- digcpy(s);
- s->base64[0] = '\0';
- if (B64LEN(s->digestlen) >= sizeof(s->base64))
- return(s->base64);
- for (n = s->digestlen, q = s->digest; n > 3; n -= 3, q += 3) {
- encbase64(q, 3, out);
- strcat(s->base64, out);
- }
- encbase64(q, n, out);
- strcat(s->base64, out);
- return(s->base64);
-}
-
-/* shadsize: returns length of digest in bytes */
-int shadsize(s)
-SHA *s;
-{
- return(s->digestlen);
-}
-
-/* shadup: duplicates current digest object */
-SHA *shadup(s)
-SHA *s;
-{
- SHA *p;
-
- SHA_new(0, p, 1, SHA);
- if (p == NULL)
- return(NULL);
- memcpy(p, s, sizeof(SHA));
- return(p);
-}
-
-/* shadump: dumps digest object to a human-readable ASCII file */
-int shadump(file, s)
-char *file;
-SHA *s;
-{
- int i, j;
- SHA_FILE *f;
- UCHR *p = shadigest(s);
-
- if (file == NULL || strlen(file) == 0)
- f = SHA_stdout();
- else if ((f = SHA_open(file, "w")) == NULL)
- return(0);
- SHA_fprintf(f, "alg:%d\nH", s->alg);
- for (i = 0; i < 8; i++)
- for (j = 0; j < (s->alg <= 256 ? 4 : 8); j++)
- SHA_fprintf(f, "%s%02x", j==0 ? ":" : "", *p++);
- SHA_fprintf(f, "\nblock");
- for (i = 0; i < s->blocksize>>3; i++)
- SHA_fprintf(f, ":%02x", s->block[i]);
- SHA_fprintf(f, "\nblockcnt:%u\n", s->blockcnt);
- SHA_fprintf(f, "lenhh:%lu\nlenhl:%lu\nlenlh:%lu\nlenll:%lu\n",
- (ULNG) LO32(s->lenhh), (ULNG) LO32(s->lenhl),
- (ULNG) LO32(s->lenlh), (ULNG) LO32(s->lenll));
- if (f != SHA_stdout())
- SHA_close(f);
- return(1);
-}
-
-/* fgetstr: reads (and returns pointer to) next line of file */
-static char *fgetstr(line, maxsize, f)
-char *line;
-UINT maxsize;
-SHA_FILE *f;
-{
- char *p;
-
- if (SHA_feof(f) || maxsize == 0)
- return(NULL);
- for (p = line; !SHA_feof(f) && maxsize > 1; maxsize--)
- if ((*p++ = SHA_getc(f)) == '\n')
- break;
- *p = '\0';
- return(line);
-}
-
-/* empty: returns true if line contains only whitespace characters */
-static int empty(line)
-char *line;
-{
- char *p;
-
- for (p = line; *p; p++)
- if (!isspace(*p))
- return(0);
- return(1);
-}
-
-/* getval: null-terminates field value, and sets pointer to rest of line */
-static char *getval(line, pprest)
-char *line;
-char **pprest;
-{
- char *p, *v;
-
- for (v = line; *v == ':' || isspace(*v); v++)
- ;
- for (p = v; *p; p++) {
- if (*p == ':' || isspace(*p)) {
- *p++ = '\0';
- break;
- }
- }
- *pprest = p;
- return(p == v ? NULL : v);
-}
-
-/* types of values present in dump file */
-#define T_C 1 /* character */
-#define T_I 2 /* normal integer */
-#define T_L 3 /* 32-bit value */
-#define T_Q 4 /* 64-bit value */
-
-/* ldvals: checks next line in dump file against tag, and loads values */
-static int ldvals(f, tag, type, pval, reps, base)
-SHA_FILE *f;
-char *tag;
-int type;
-void *pval;
-int reps;
-int base;
-{
- char *p, *pr, line[512];
- UCHR *pc = (UCHR *) pval; UINT *pi = (UINT *) pval;
- W32 *pl = (W32 *) pval; W64 *pq = (W64 *) pval;
-
- while ((p = fgetstr(line, sizeof(line), f)) != NULL)
- if (line[0] != '#' && !empty(line))
- break;
- if (p == NULL || strcmp(getval(line, &pr), tag) != 0)
- return(0);
- while (reps-- > 0) {
- if ((p = getval(pr, &pr)) == NULL)
- return(1);
- switch (type) {
- case T_C: *pc++ = (UCHR) strtoul(p, NULL, base); break;
- case T_I: *pi++ = (UINT) strtoul(p, NULL, base); break;
- case T_L: *pl++ = (W32 ) strtoul(p, NULL, base); break;
- case T_Q: *pq++ = (W64 ) strto64(p ); break;
- }
- }
- return(1);
-}
-
-/* closeall: closes dump file and de-allocates digest object */
-static SHA *closeall(f, s)
-SHA_FILE *f;
-SHA *s;
-{
- if (f != NULL && f != SHA_stdin())
- SHA_close(f);
- if (s != NULL)
- shaclose(s);
- return(NULL);
-}
-
-/* shaload: creates digest object corresponding to contents of dump file */
-SHA *shaload(file)
-char *file;
-{
- int alg;
- SHA *s = NULL;
- SHA_FILE *f;
-
- if (file == NULL || strlen(file) == 0)
- f = SHA_stdin();
- else if ((f = SHA_open(file, "r")) == NULL)
- return(NULL);
- if (
- /* avoid parens by exploiting precedence of (type)&-> */
- !ldvals(f,"alg",T_I,(VP)&alg,1,10) ||
- ((s = shaopen(alg)) == NULL) ||
- !ldvals(f,"H",alg<=SHA256?T_L:T_Q,(VP)s->H,8,16) ||
- !ldvals(f,"block",T_C,(VP)s->block,s->blocksize/8,16) ||
- !ldvals(f,"blockcnt",T_I,(VP)&s->blockcnt,1,10) ||
- (alg <= SHA256 && s->blockcnt >= SHA1_BLOCK_BITS) ||
- (alg >= SHA384 && s->blockcnt >= SHA384_BLOCK_BITS) ||
- !ldvals(f,"lenhh",T_L,(VP)&s->lenhh,1,10) ||
- !ldvals(f,"lenhl",T_L,(VP)&s->lenhl,1,10) ||
- !ldvals(f,"lenlh",T_L,(VP)&s->lenlh,1,10) ||
- !ldvals(f,"lenll",T_L,(VP)&s->lenll,1,10)
- )
- return(closeall(f, s));
- if (f != SHA_stdin())
- SHA_close(f);
- return(s);
-}
-
-/* shaclose: de-allocates digest object */
-int shaclose(s)
-SHA *s;
-{
- if (s != NULL) {
- memset(s, 0, sizeof(SHA));
- SHA_free(s);
- }
- return(0);
-}
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.c (from rev 1581, packages/libdigest-sha-perl/trunk/src/sha.c)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.h
===================================================================
--- packages/libdigest-sha-perl/trunk/src/sha.h 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.h 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,235 +0,0 @@
-/*
- * sha.h: header file for SHA-1/224/256/384/512 routines
- *
- * Ref: NIST FIPS PUB 180-2 Secure Hash Standard
- *
- * Copyright (C) 2003-2005 Mark Shelor, All Rights Reserved
- *
- * Version: 5.31
- * Mon Sep 5 00:52:42 MST 2005
- *
- */
-
-#ifndef _INCLUDE_SHA_H_
-#define _INCLUDE_SHA_H_
-
-#include <limits.h>
-
-#define SHA32_MAX 4294967295U
-#define SHA64_MAX 18446744073709551615U
-
-#define SHA32_SHR(x, n) ((x) >> (n))
-#define SHA32_SHL(x, n) ((x) << (n))
-
-#define SHA64_SHR(x, n) ((x) >> (n))
-#define SHA64_SHL(x, n) ((x) << (n))
-
-#define SHA32_ALIGNED
-#define SHA64_ALIGNED
-
-#define SHA_LO32(x) (x)
-
-#if USHRT_MAX == SHA32_MAX
- #define SHA32 unsigned short
- #define SHA32_CONST(c) c ## U
-#elif UINT_MAX == SHA32_MAX
- #define SHA32 unsigned int
- #define SHA32_CONST(c) c ## U
-#elif ULONG_MAX == SHA32_MAX
- #define SHA32 unsigned long
- #define SHA32_CONST(c) c ## UL
-#else
- #undef SHA32_ALIGNED
- #undef SHA_LO32
- #define SHA_LO32(x) ((x) & SHA32_MAX)
- #undef SHA32_SHR
- #define SHA32_SHR(x, n) (SHA_LO32(x) >> (n))
- #define SHA32 unsigned long
- #define SHA32_CONST(c) c ## UL
-#endif
-
-#if defined(ULONG_LONG_MAX) || defined(ULLONG_MAX) || defined(HAS_LONG_LONG)
- #define SHA_ULL_EXISTS
-#endif
-
-#if (((ULONG_MAX >> 16) >> 16) >> 16) >> 15 == 1UL
- #define SHA64 unsigned long
- #define SHA64_CONST(c) c ## UL
-#elif defined(SHA_ULL_EXISTS) && defined(LONGLONGSIZE) && LONGLONGSIZE == 8
- #define SHA64 unsigned long long
- #define SHA64_CONST(c) c ## ULL
-#elif defined(SHA_ULL_EXISTS)
- #undef SHA64_ALIGNED
- #undef SHA64_SHR
- #define SHA64_SHR(x, n) (((x) & SHA64_MAX) >> (n))
- #define SHA64 unsigned long long
- #define SHA64_CONST(c) c ## ULL
-
- /* The following cases detect compilers that
- * support 64-bit types in a non-standard way */
-
-#elif defined(_MSC_VER) /* Microsoft C */
- #define SHA64 unsigned __int64
- #define SHA64_CONST(c) (SHA64) c
-#endif
-
-#if defined(SHA64) && !defined(NO_SHA_384_512)
- #define SHA_384_512
-#endif
-
-#if defined(BYTEORDER) && (BYTEORDER & 0xffff) == 0x4321
- #if defined(SHA32_ALIGNED)
- #define SHA32_SCHED(W, b) memcpy(W, b, 64)
- #endif
- #if defined(SHA64) && defined(SHA64_ALIGNED)
- #define SHA64_SCHED(W, b) memcpy(W, b, 128)
- #endif
-#endif
-
-#if !defined(SHA32_SCHED)
- #define SHA32_SCHED(W, b) { int t; SHA32 *q = W; \
- for (t = 0; t < 16; t++, b += 4) *q++ = \
- (SHA32) b[0] << 24 | (SHA32) b[1] << 16 | \
- (SHA32) b[2] << 8 | (SHA32) b[3]; }
-#endif
-
-#if defined(SHA64) && !defined(SHA64_SCHED)
- #define SHA64_SCHED(W, b) { int t; SHA64 *q = W; \
- for (t = 0; t < 16; t++, b += 8) *q++ = \
- (SHA64) b[0] << 56 | (SHA64) b[1] << 48 | \
- (SHA64) b[2] << 40 | (SHA64) b[3] << 32 | \
- (SHA64) b[4] << 24 | (SHA64) b[5] << 16 | \
- (SHA64) b[6] << 8 | (SHA64) b[7]; }
-#endif
-
-/*
- * SHA_STO_CLASS: default to auto storage class for message schedule
- * arrays inside transform routines. Note that redefining this to
- * static might improve performance on some platforms (e.g. Intel).
- */
-
-#if !defined(SHA_STO_CLASS)
- #define SHA_STO_CLASS auto
-#endif
-
-/* Override use of static arrays if compiling for thread-safety */
-#ifdef SHA_THREAD_SAFE
- #undef SHA_STO_CLASS
- #define SHA_STO_CLASS auto
-#endif
-
-/* Configure memory management and I/O for Perl or standalone C */
-#ifdef SHA_PERL_MODULE
- #define SHA_new New
- #define SHA_newz Newz
- #define SHA_free Safefree
- #define SHA_FILE PerlIO
- #define SHA_stdin() PerlIO_stdin()
- #define SHA_stdout() PerlIO_stdout()
- #define SHA_open PerlIO_open
- #define SHA_close PerlIO_close
- #define SHA_fprintf PerlIO_printf
- #define SHA_feof PerlIO_eof
- #define SHA_getc PerlIO_getc
-#else
- #define SHA_new(id, p, n, t) p = (t *) malloc(sizeof(t))
- #define SHA_newz(id, p, n, t) p = (t *) calloc(n, sizeof(t))
- #define SHA_free free
- #define SHA_FILE FILE
- #define SHA_stdin() stdin
- #define SHA_stdout() stdout
- #define SHA_open fopen
- #define SHA_close fclose
- #define SHA_fprintf fprintf
- #define SHA_feof feof
- #define SHA_getc fgetc
-#endif
-
-#define SHA1 1
-#define SHA224 224
-#define SHA256 256
-#define SHA384 384
-#define SHA512 512
-
-#define SHA1_BLOCK_BITS 512
-#define SHA224_BLOCK_BITS SHA1_BLOCK_BITS
-#define SHA256_BLOCK_BITS SHA1_BLOCK_BITS
-#define SHA384_BLOCK_BITS 1024
-#define SHA512_BLOCK_BITS SHA384_BLOCK_BITS
-
-#define SHA1_DIGEST_BITS 160
-#define SHA224_DIGEST_BITS 224
-#define SHA256_DIGEST_BITS 256
-#define SHA384_DIGEST_BITS 384
-#define SHA512_DIGEST_BITS 512
-
-#define SHA_MAX_BLOCK_BITS SHA512_BLOCK_BITS
-#define SHA_MAX_DIGEST_BITS SHA512_DIGEST_BITS
-#define SHA_MAX_HEX_LEN (SHA_MAX_DIGEST_BITS / 4)
-#define SHA_MAX_BASE64_LEN (1 + (SHA_MAX_DIGEST_BITS / 6))
-
-#if defined(SHA64)
- #define SHA_H_SIZE sizeof(SHA64) * 8
-#else
- #define SHA_H_SIZE sizeof(SHA32) * 8
-#endif
-
-typedef struct {
- int alg;
- void (*sha)();
- unsigned char H[SHA_H_SIZE];
- unsigned char block[SHA_MAX_BLOCK_BITS/8];
- unsigned int blockcnt;
- unsigned int blocksize;
- SHA32 lenhh, lenhl, lenlh, lenll;
- unsigned char digest[SHA_MAX_DIGEST_BITS/8];
- int digestlen;
- char hex[SHA_MAX_HEX_LEN+1];
- char base64[SHA_MAX_BASE64_LEN+1];
-} SHA;
-
-#define SHA_FMT_RAW 1
-#define SHA_FMT_HEX 2
-#define SHA_FMT_BASE64 3
-
-#if defined(__STDC__) && __STDC__ != 0
- #define _SHA_P(protos) protos
-#else
- #define _SHA_P(protos) ()
-#endif
-
-#define _SHA_STATE SHA *s
-#define _SHA_ALG int alg
-#define _SHA_DATA unsigned char *bitstr, unsigned long bitcnt
-#define _SHA_FNAME char *filename
-
-SHA *shaopen _SHA_P((_SHA_ALG));
-unsigned long shawrite _SHA_P((_SHA_DATA, _SHA_STATE));
-void shafinish _SHA_P((_SHA_STATE));
-void sharewind _SHA_P((_SHA_STATE));
-unsigned char *shadigest _SHA_P((_SHA_STATE));
-char *shahex _SHA_P((_SHA_STATE));
-char *shabase64 _SHA_P((_SHA_STATE));
-int shadsize _SHA_P((_SHA_STATE));
-SHA *shadup _SHA_P((_SHA_STATE));
-int shadump _SHA_P((_SHA_FNAME, _SHA_STATE));
-SHA *shaload _SHA_P((_SHA_FNAME));
-int shaclose _SHA_P((_SHA_STATE));
-
-unsigned char *sha1digest _SHA_P((_SHA_DATA));
-char *sha1hex _SHA_P((_SHA_DATA));
-char *sha1base64 _SHA_P((_SHA_DATA));
-unsigned char *sha224digest _SHA_P((_SHA_DATA));
-char *sha224hex _SHA_P((_SHA_DATA));
-char *sha224base64 _SHA_P((_SHA_DATA));
-unsigned char *sha256digest _SHA_P((_SHA_DATA));
-char *sha256hex _SHA_P((_SHA_DATA));
-char *sha256base64 _SHA_P((_SHA_DATA));
-unsigned char *sha384digest _SHA_P((_SHA_DATA));
-char *sha384hex _SHA_P((_SHA_DATA));
-char *sha384base64 _SHA_P((_SHA_DATA));
-unsigned char *sha512digest _SHA_P((_SHA_DATA));
-char *sha512hex _SHA_P((_SHA_DATA));
-char *sha512base64 _SHA_P((_SHA_DATA));
-
-#endif /* _INCLUDE_SHA_H_ */
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/src/sha.h (from rev 1581, packages/libdigest-sha-perl/trunk/src/sha.h)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod-coverage.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/0-pod-coverage.t 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod-coverage.t 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,18 +0,0 @@
-use Test::More;
-eval "use Test::Pod::Coverage 0.08";
-plan skip_all => "Test::Pod::Coverage 0.08 required for testing POD coverage" if $@;
-
-my @privfcns = qw(
- Addfile
- Hexdigest
- B64digest
- shaclose
- shadump
- shadup
- shaload
- shaopen
- sharewind
- shawrite
-);
-
-all_pod_coverage_ok( { also_private => \@privfcns } );
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod-coverage.t (from rev 1581, packages/libdigest-sha-perl/trunk/t/0-pod-coverage.t)
Deleted: packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/0-pod.t 2005-12-05 19:00:58 UTC (rev 1580)
+++ packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod.t 2005-12-05 19:10:46 UTC (rev 1583)
@@ -1,4 +0,0 @@
-use Test::More;
-eval "use Test::Pod 1.00";
-plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
-all_pod_files_ok();
Copied: packages/libdigest-sha-perl/tags/debian_version_5_32-1/t/0-pod.t (from rev 1581, packages/libdigest-sha-perl/trunk/t/0-pod.t)
More information about the Pkg-perl-cvs-commits
mailing list