r2167 - in packages: libdata-formvalidator-perl/tags libdata-formvalidator-perl/tags/debian_version_4_14-1 libdata-formvalidator-perl/tags/debian_version_4_14-1/debian libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator libdata-formvalidator-perl/tags/debian_version_4_14-1/t libdigest-sha-perl/tags libdigest-sha-perl/tags/debian_version_5_34-1 libdigest-sha-perl/tags/debian_version_5_34-1/debian libdigest-sha-perl/tags/debian_version_5_34-1/src libdigest-sha-perl/tags/debian_version_5_34-1/t

Gunnar Wolf gwolf at costa.debian.org
Tue Feb 21 22:31:27 UTC 2006


Author: gwolf
Date: 2006-02-21 22:31:00 +0000 (Tue, 21 Feb 2006)
New Revision: 2167

Added:
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/Changes
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/MANIFEST
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/META.yml
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/README
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/debian/changelog
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator.pm
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Constraints.pm
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Results.pm
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/11_procedural_match.t
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/credit_card.t
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/procedural_valid.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/Changes
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/META.yml
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/README
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/SHA.pm
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/SIGNATURE
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/debian/changelog
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/ppport.h
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/shasum
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.c
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.h
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.c
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.h
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod-coverage.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-exist.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-hello-world.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-1.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-224.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-256.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-384.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-512.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-base64.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-oo.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-bit.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-byte.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-easy.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-hard.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-increasing.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-large.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-random.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-fips198.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-rfc2202.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-sha-256.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-woodbury.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/6-dump-load.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/7-ireland.t
Removed:
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/Changes
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/MANIFEST
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/META.yml
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/README
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/debian/changelog
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator.pm
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Constraints.pm
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Results.pm
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/11_procedural_match.t
   packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/procedural_valid.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/Changes
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/META.yml
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/README
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/SHA.pm
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/SIGNATURE
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/debian/changelog
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/ppport.h
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/shasum
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.c
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.h
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.c
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.h
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod-coverage.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-exist.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-hello-world.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-1.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-224.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-256.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-384.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-512.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-base64.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-oo.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-bit.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-byte.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-easy.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-hard.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-increasing.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-large.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-random.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-fips198.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-rfc2202.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-sha-256.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-woodbury.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/6-dump-load.t
   packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/7-ireland.t
Log:
Uploaded new versions


Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1 (from rev 2162, packages/libdata-formvalidator-perl/trunk)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/Changes
===================================================================
--- packages/libdata-formvalidator-perl/trunk/Changes	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/Changes	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,543 +0,0 @@
-
-4.13
-    [BUG FIXES]
-    - Updated overloading syntax to work with Template::Stash (frank)
-
-4.12 Thu Jan  5 21:07:50 EST 2006
-    [INTERNALS]
-    - Fix test suite to pass when CGI::Simple is not installed
-      (Lee Carmichael, Davide Dente)
-
-4.11 Tue Jan  3 18:38:23 EST 2006
-   [ENHANCEMENTS]
-   - A new constraint for minimum image dimensions was added in
-     Data::FormValidator::Constraints::Upload (Lee Carmichael)
-
-   [INTERNALS] 
-   - refactoring of Upload.pm and t/upload.t (Lee Carmichael)
-
-4.10 Thu Dec 22 19:55:34 EST 2005
-
-   [ENHANCEMENTS] 
-   - The msgs key can now take a callback, allow users to override how error
-     message generation is done. Some alternative message generate routines 
-     will hopefully be published soon.  (Cees Hek, Chris Laco and others)
-
-   - New profile key: untaint_regexp_map (Michael Peters)
-
-   [BUG FIXES]
-   - bug was fixed for dependent fields that had false values, but were valid
-     (Emanuele Zeppieri)
-
-   - Failed constraints for multiple fields with the same name no longer return duplicate  
-     error messages (Will Hawes)
-
-   - value of any_errors was wrongly added to msgs even when there are no errors 
-     (RT#14942, report and test script by Michael Graham)
-
-   [INTERNALS] 
-   - bump Date::Calc requirement (RT#15715) 
-
-4.02 Wed Aug 31 21:22:58 EST 2005
-
-    [ENHANCEMENTS]
-    - the use of custom signal handers for "die" has now been localized to
-      avoid interfering with other applications. (Josh Miller). 
-
-    - initial support for qr in constraint_method profile key
-
-    [BUG FIXES]
-     - Updated ::Constraints example docs to be accurate: recommend :closures, not :all
-
-    [INTERNALS] 
-    - provide a more accurate debugging message for constraint_method_regexp_map
-
-4.01 Sat Aug 20 13:16:47 EST 2005
-
-    [ENHANCEMENTS]
-    - get_input_data() now supports the parameters "as_hashref => 1" to 
-      return the input data in a uniform way. 
-
-    [INTERNALS] 
-    - Constraints may refer to fields that are 'unknown' to
-      Data::FormValidator. These unknown values will remain unfiltered
-      as before. (Michael Peters). 
-
-    - _get_data() was renamed to _get_input_as_hash(). You shouldn't care. 
-
-4.00 Sun Aug 14 10:57:25 EST 2005
-
-    *** NOTE ***
-    This a major update with a significant code changes. While the test suite
-    indicates we have 100% compatibility with 3.x, you are encouraged to test
-    this release with your own applications before deploying it in a production
-    environment. 
-
-    [ENHANCEMENTS]
-	- The constraints interface has been overhauled to be more intuitive to use
-	  with parameterized constraints. This included added new two new profile
-	  keys: 'constraint_methods' and 'constraint_method_regexp_map'. All of
-	  the old syntax is still supported, but de-emphasized in the documentation.
-	  See RELEASE_NOTES for details. 
-
-	- A new method has been added to help building custom constraints:
-	  "set_current_constraint_name('foo')" will set the name of a constraint
-	  from within itself. An alias named 'name_this()' is provided for brevity. 
-	  See the section on "Writing your own constraints" in DFV::Constraints
-	  for details. 
-
-    - success() method added to Results object. This is an easy way to check
-      that there were no missing or invalid fields. (Michael Peters). 
-
-    - 'separator' was misspelled consistently in the the docs, code and tests.
-      The proper spelling as well as the legacy typo spelling are now
-      supported, although the typo'ed version is no longer documented, except
-      for here. :) Thanks to Terrence Brannon for spotting this.
-
-	- The 'msgs' hash in the profile is now validated to make sure it includes only
-	  valid keys. This should help to spot some errors faster.  
-
-    - ::Constraints::Upload now supports CGI::Simple, thanks to David Emery. 
-
-    - Documentation for required_regexp has been improved. (William McKee)
-
-    - support for coderefs as default values (Marcello)
-
-    - Improved field_filters documentation, thanks to Andrew Brosnan.
-
-    [BUG FIXES]
-	- RT#12220: Canadian Province RE were updated. (Steve Simms).   
-
-    - The preferred MIME type was not being returned by the 'file_format'
-      constraint for file uploads. This would have only affected cases where
-      the mime type sent by the browser differed from the one detected by DFV.
-      Thanks to Randal Schwartz for spotting this. (RT#12744). 
-
-    - Profile re-use when constraint_regexp_map is used is now fixed 
-      (Thanks to Cees Hek).
-
-    - The date_and_time constraint now understands this format: MMDDYYYY. 
-      (RT#12111, thanks to JMAY)
-
-    - This one is worth a brief explanation. When this old syntax was used:
-
-      my ( $valid, $missing, $invalid, $unknown ) = Data::FormValidator->validate({}, {} );
-
-      $invalid would be returned as an empty arrayref if there were no
-      invalids.  This return value was undocumented, and was later changed to
-      be 'undef' sometime between 3.50 and 3.70. However, I found that some
-      applications, including Cascade, depended on the undocumented return
-      value (which they shouldn't have). 
-
-      I have now reverted the behavior to returning an empty arrayref in this
-      case, added a test for it, and updated the docs to be explicit about the
-      return value. This will save some people unexpected breakages when
-      upgrading DFV from a very old version with very old applications. 
-
-      Those who use the $results object are unaffected.
-
-    [INTERALS]
-    - Add many failing TODO tests for built-in filters. See t/filters_builtin.t 
-
-    - A new test was added to check that no warnings are emitted when an untainted
-      constraint returns undef (Michael Peters)
-
-* 3.x releases after 3.63 happened on a different branch. All of the
-  improvements there should be reflected above. 
-
-3.63
-	[BUG FIXES]
-    - email validation was beefed up to not permit spaces with e-mails 
-      or semi-colons to get through. Thanks to Jason Crome for some tests  
-      to this, and the Mail::VRFY module, which was the source of the
-      improved RE. 
-
-    [INTERNALS]
-    - Added a couple more test to the distribution which were missing in
-      the MANIFEST
-
-3.62 Fri Oct  8 22:55:49 EST 2004
-    [INTERNALS]
-    - Removed experimental label from 'msgs' functionality. 
-    - Beefed up test suite for dependencies and dependency_groups (Drew Taylor)
-
-3.61 Mon Sep 20 18:10:23 EST 2004
-	[BUG FIXES]
-	- file_format from ::Constraints::Upload now handles non-existent files more
-	  gracefully. (Evan A. Zacks)
-
-3.60 Mon Sep 20 18:10:23 EST 2004
-	[BUG FIXES]
-	- file_max_bytes seemed to never be reporting failure.
-
-3.59 Thu Jul 02 2004
-    [ENHANCEMENTS]
-    - Added more tests for Date constraints, and removed some more warnings (Michael Dorman)
-
-    [BUG FIXES]
-    - Fixed failing dependency check happening sometimes with a CGI object as input. (Drew Taylor)
-
-3.58 Wed May 05 2004
-    [ENHANCEMENTS]
-    - Test suite has been migrated further to 'Test::More' style, and
-      all tests should complete without any warnings. A big thanks
-      goes to Gabor Szabo for this work.  
-
-3.57 Wed Apr 21 2004 
-    [ENHANCEMENTS]
-    - 'validator_packages' now handles the importing of filters as well as constraints.
-       (Ronald Kimball)
-
-    - Added profile validation check for hashref style constraints. This will
-      make typos in key names easier to find. (Barry Hoggard, for demonstrating
-      the need.) 
-
-    [BUG FIXES]
-    - no longer try to use a Carp module method without having it loaded. Instead,
-      we just call "die" now. (Gunnar Wolf)
-
-3.56 Fri Apr 16 2004 
-    [BUG FIXES]
-    - Fixed a mis-handling of unknown variables. Functionality brought inline
-      with documented behaviour (Richard Clarke)
-    - fixed bug image dimensions test in DFV::Constraints::Upload (Barry Hoggard)
-
-    [ENHANCEMENTS]
-    - added mention of HTML::Template::Associate::FormValidator to SEE ALSO
-
-3.55 Wed Mar 25 2004
-    - better diagnostics when a filters fail.
-
-3.54 Wed Mar 24 2004 
-    [BUG FIXES]
-    - Fixed a mis-handling of invalid constraints introduced in 3.53 (Kevin Baker).  
-
-    [ENHANCEMENTS]
-    - Refactored and improved some contraint related tests (Kevin Baker)
-    - clarified documentation for uploading constraints to mention that a
-      CGI.pm object is needed for input.
-
-3.53 Mon Mar 22 2004
-    [BUG FIXES]
-    - Removed bug introduced in 3.52 that would have mis-handled files that had
-      some filters applied, and were then used as parameters in constraints for
-      multiple fields. (Kevin Baker) 
-    - Possibly fixed t/24_upload.t test on Windows platforms (podmaster)
-
-3.52 Sun Mar 21 2004
-    [BUG FIXES]
-    - After a constraint failed, future constraints relying on the same input
-      parameters may have falsely failed. (Kevin Baker)  
-    - Untainting of false values (such as '0') was broken, and has been fixed.    
-      (Kato Atsushi)
-
-    [ENHANCEMENTS]
-    - the profile syntax checker now reports all invalid keys, instead of just
-      the first one.  Also, this code was refactored to be a bit faster. (Kevin Baker).
-
-
-3.51 Thu Feb 26 2004
-    [THINGS THAT MIGHT BREAK YOUR CODE]
-    - The default formatting now uses the 'class' attribute in the <span> tag instead
-      of the 'id' attribute. This shouldn't be a big deal and may actually make
-      CSS styling easier, but it is a change. (Drew Taylor)
-
-    [BUG FIXES]
-    - In some cases empty fields were marked as 'valid' under mod_perl when they shouldn't be.
-      (Drew Taylor)
-    - Prevent unnecessary death due to $@ being set. (Kevin Baker) 
-    - Fixed documentation typo related to writing your own constraints (Stewart Russell)
-
-    [ENHANCEMENTS]
-    - valid() can now return multiple values in array context.
-    - Mention Data::FormValidator::Util::HTML
-    - Added new t/constraints_builtin.t as a beginning of more through testing
-      of the built-in constraints.  
-    - Several documentation updates (Kevin Baker)
-
-3.50 Mon Jan 12 2004
-    - No functionality changes since 3.49_1, I'm just declaring it stable.
-    - I did sneak in the addition of a $VERSION in a couple included modules
-    where none had been provided before.
-
-3.49_1
-	[THINGS THAT MIGHT BREAK YOUR CODE]
-	- A change has been made to Data::FormValidator::Constraints::Upload,
-	and only affects constraints in that module. Meta data will no longer
-	be provided by adding additional "_info" fields to the valid hash.
-	The same data is now available through the new meta() method of the
-	Data::FormValidator::Results object. 
-
-	[NEW FEATURES]
-	- A new meta() method has been added to the Data::FormValidator::Results
-	class. This function allows constraints to communicate meta data
-	they discover about the values during the validation process. 
-	For example, a file size may be discovered while checking to see
-	if the file size is too large. This is only currently being
-	used in Data::FormValidator::Constraints::Upload.
-
-3.15 Sun Nov 03 2003
-    - Instead of explictly supporting CGI and Apache::Request objects, now any
-      object which has a param() method can be used. In particular, this allows
-      CGI::Simple to be used. 
-
-      Before, if you used an object which was not CGI or Apache::Request, it would
-      treat the object as a hash reference and possibly work. Now it will die
-      with a diagnostic message in this case.  (Cees Hek)
-
-    - Many documentation typo fixes (Cees Hek and Timothy Appnel)
-
-    - The dependency on Module::Build to install the distribution has been
-      removed. Now either Module::Build or the traditional MakeMaker system can
-      be used.
-
-3.14
-    [BUG FIXES]
-    - fixed POD syntax issue in Constraints.pm that was causing a 'make test' 
-      failure with Test::Pod >.96
-
-3.13 Sun Nov 02 2003
-    [THINGS THAT MAY BREAK YOUR CODE] 
-    - How the Regexp::Common integration has changed. The old functionality was
-      to match the regular expression as a substring of the field being
-      testing. Now it is more restrictive and only matches the entire string.
-      This is how all the other filters worked, and is probably how you expected
-      the Regexp::Common filters to work as well.
-
-    [BUG FIXES]
-	- uninitialized values in filters no longer cause warnings. (addresses bug #2751).
-    - documentation typo fixes
-
-    [ENHANCEMENTS]
-	- improved syntax to be compatible with Perl 5.005
-    - Added "cover" method to "Build" script. This uses Devel::Cover to generate
-      a coverage report for the script
-    - About 5 new tests for loading profiles from a file
-
-3.12 Tue Jun 22 2003 
-	- don't die in ::Upload if we can't find the tmp file.
-	  Instead, the constraint fails and a warning is emitted. 
-
-	- Added "image/pjpeg" to list of default mime types to use with file_format.
-	  This is for the "progressive JPEG" format.
-
-    - Several documentation improvements, thanks to Mike Fragassi.
-
-3.11 Tue May 27 2003
-	- Bug Fix: "qr" support now works better with older versions of Perl
-	  (Mike Fragassi)
-
-3.10 Mon May 26 2003 
-	- New Feature: Any regular expression from Regexp::Common can now be used
-	  directly as a named constraint. See Data::FormValidator::Constraints
-	  documentation for an example syntax. 
-
-	- Bug Fix: fixed imported_validators error that could occur if the same
-	  profile was used more than once with the same DFV object.
-
-	- improved support and testing of 'qr' a bit.
-
-
-3.01 Thu May 15 2003
-	This release fixes addresses a couple of issues related to the new support
-	for error message handling through msgs() and "qr" support. If you aren't
-	using these features, there's no need to upgrade. 
-
-	- New Feature: Updated msgs() documentation and removed the requirement
-	that 'msgs' be defined in profile for default formatting to be used with
-	msgs() method call.
-
-	- Bug Fix: Using named constraints wtih the new "qr" support now works.
-
-3.00 Sun May 11 2003
-	- New Feature: added debug option
-	- Make default msgs in "new" constructor work as it was supposed it 2.11_04
-	- Bug Fix: missing_optional_valid now works better when the input data comes
-		from a CGI.pm or Apache::Request object (David Ranney)
-	- Upload.pm syntax updated to no longer require Perl 5.6+ syntax
-	- New Feature: Upload.pm now first tries to use File::MMagic and MIME::Type 
-      to more intelligently determine the file type and an appropriate extension.
-
-2.11_04
-	- Major documentation overhaul. It should now be easier to browse and grok.
-
-	- New Feature: defaults can be passed to new() that will be used for all
-	  forms made from that object.
-
-	- New Feature: Added support for quoting regular expressions using "qr" 
-	  instead of defining them as strings. This is now the preferred method.
-	  Defining regular expressions as strings is deprecated but supported.
-
-	- New Feature: Friendly die statements when you have typos in filter 
-		and constraint names. (Instead of mysterious suicide). 
-
-	- Fixed syntax error in Upload.pm documentation
-	- Bug Fix: error checking in valid_file_format in Upload.pm
-	- Bug Fix: fixed bug related to returning constraint names introduced
-		in 2.11_03.
-
-2.11_03
-	- The code has now been reorganized, following the module of HTML::FormValidator.
-	  Filters, Constraints, and Results are now all handled in their own modules. 
-
-	- The "msgs" error functional has now been re-designed, and is not
-	  backwards compatible. Feedback on this experimental addition is encouraged.
-
-	- New Feature: Added ConstraintsFactory.pm module to distribution
-
-2.11_02
-	- New Feature: Support for Apache::Request objects
-	- New Feature: Now when constraint_regexp_map is used
-		and one or more constraints is already defined, the new
-		matching constraint is added to the list of constraints 
-		applied, rather than superceding the old one. 
-
-2.11_01 (A BETA release)
-
-	- New Feature: Added Data::FormValidator::Constraints::Upload
-		to the distribution.
-
-	- New Feature: Added Data::FormValidator::Constraints::Dates
-		to the distribution.
-
-	- The functionality of returning errors with the experimental 
-	  msgs feature has changed a bit. Now if you define multiple constraints,
-	  the messages will always be returned as an array reference, instead of
-	  when only there was more than one message. This should improve
-	  integration with HTML::Template.
-
-	- New Feature: When using multiple constraints defined as hash references,
-	  the "name" attribute will default to name of the constraint, if it is
-	  being called by name. 
-
-	- added documentation for writing your own validation routines.
-	- New Feature: Added 'valid' accessor/mutator method to manage
-	  and manipulate the result set. This can be useful to modify 
-	  the result set from within a constraint.
-
-	- New Feature: Added "constraint_method" as an alternative
-		to "constraint" in the hash-based constraint definition. 
-		Related to this, there are new accessor methods for use
-		inside of custom constraints:
-			get_input_data();
-			get_current_constraint_field();
-			get_current_constraint_value();
-
-		This whole arrangement brings support for multi-valued constraints with
-		constraint_regexp_map
-
-	- various documentation clean ups
-
-2.10 Sun Apr 20 2003
-	- New Feature: (EXPERIMENTAL) Added support for returning error messages
-	  for missing and invalid fields (Juan Jose Natera Abreu).
-	  This piece of functionality is marked as experimental because
-	  the interface may change in the near future, and it has not been
-	  tested as well as rest of the module. Search in the documentation for
-	  "msgs" for the details.
-
-	- New Feature: added support for building with Module::Build. For more
-	  information on Module::Build, read this:
-	  http://magnonel.guild.net/~schwern/talks/MakeMaker_Is_DOOMED/slides/
-
-	- New Feature: included SIGNATURE file in distribution for verification
-	  with Module::Signature
-
-2.04 Fri Apr 11 2003
-	- Bug Fix: multiple parameters passed to a constraint
-	were not being handled appropriately in some cases. (Markus)
-	- Bug Fix: Calling "validate" as a class method in combination
-	with using "validator_packages no longer causes a problem.
-
-2.03 Thu Apr 10 2003
-     - Bug Fix: use of "delete" syntax with multiple values updated
-	 	to be backwards compatible with Perl 5.005 (Jonathan Buhacoff) 
-
-2.02 Wed Apr 09 2003
-	- Bug Fix: fixed bug with required_regexp and optional_regexp triggered  
-	if there is no required_regexp or optional_regexp in the profile *and*
-	something exists in $@ (Dom)
-
-2.01 Wed Apr 02 2003
-	- Bug Fix: Fix bug introduced in 1.93 which didn't handle
-		input values appropriately that were references to other things
-		besides arrays. (Boris Zentner)
-
-2.00 Sat Mar 22 2003
-	- Bug Fix: Fixed bug where all code references were treated as if the were
-	  using the 'multiple constraints' feature.  This bug was likely introduced
-	  in 1.93 (Chris Spiegel)
-	- Bug Fix: Fixed bug which caused a failllure when using some sides of
-	  subroutine constraints within the "multiple constraints" syntax. 
-	  (Chris Spiegal}
-
-1.93 Sun Mar 09 2003
-	- New Feature: Keys with multiple values are now supported
-	- New Feature: A CGI.pm object can now be used to provide the input data
-	- Bug Fix: pattern matching is faster in some cases now by not using $&
-	  (Tony Stubblebine)
-	- Bug Fix: better support for using valid_* packages imported from other
-	  packages. (Alexander Solovey)
-	- added link to demo site in documentation
-	- fixed typo in documentation example (Kato Atsushi)
-	- added link to Japanese translatation of the documents (Kato Atsushi)
-
-1.92 Sun Dec 22 2002
-    - support for untainting data (Tony Stubblebine)
-	- documentation typo fixes (Charlie Garrison)
-	- validator_packages added to profile specification
-	  allowing import of validation routine from other packages (Jeremy Muhlich)
-	- support for multiple constraints per field added (Jeremy Muhlich)
-	- support for literal values in constraint param field (Jeremy Muhlich)
-
-1.91 Sun Oct 05 2002
-	- Added feature to require some fields in a group. (Brad Smithart)
-	- Bumped version to be greater than 1.9 to make CPAN.pm fetching work again
-
-1.11 Sat Jun 29 2002 
-	- Fixed small bug where constraint arrays were tested with truth rather than length. (Maurice Aubrey) 
-	- Fixed documentation bug for american_phone validation (Dan Puro)
-	- Added documentation for simplified syntax using a class method  
-	- Added profile syntax checking to help catch misspelled keys faster
-
-1.10 Sun Apr 21 2002
-	- Added code for field_filter_regexp_map (Tim Noll)
-
-1.9  Sun Feb 17 2002
-	- Fixed bug introduced in 1.8 which caused missing optional fields to 
-	  wrongly subjected to constraint checking
-
-1.8   Thu Feb 14 2002
-	- Added link to Data::FormValidator::Tutorial in SEE ALSO section
-	- Added "missing_optional_valid" flag to profiles to allow missing
-	  optional fields to be considered valid
-
-1.7   Sat Nov 03 2001
-    - Fixed broken constraint_regexp_map implementation. If you
-	  followed the example syntax in the documentation your regular
-	  expression could have failed to match when it should have
-	  succeeded. This feature now works as advertised in the
-	  documentation. 
-    - Updated documentation to reflect new mailing list and public
-      CVS server.
-
-1.6   Sun Sep 23 2001
-	- Fixed bug with undefined lists by using empty lists instead (Ronald Kimball)
-	- added IP address validation routine (Juan Jose Natera Abreu)
-
-1.5.1 Wed Jul 18 2001
-	- Updated version number to circumvent CPAN issue. No code changes. 
-
-1.5   Thu Jun 28 2001
-	- Added more flexible dependency system (Ade Olonoh)
-
-1.4   Fri Jun 22 2001
-	- Fixed bug with code references (T.J. Mather)
-
-1.3   Tue Jun 19 2001
-	- Now maintained by Mark Stosberg <mark at stosberg.com>
-	- Added constraint_regexp_map, required_regexp, optional_regexp
-	- filter functions are exported
-	- Renamed to Data::FormValidator from HTML::FormValidator
-
-# arch-tag: Mark_Stosberg_<mark at summersault.com>--2004-03-20_18:34:51 

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/Changes (from rev 2163, packages/libdata-formvalidator-perl/trunk/Changes)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/MANIFEST
===================================================================
--- packages/libdata-formvalidator-perl/trunk/MANIFEST	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/MANIFEST	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,74 +0,0 @@
-Build.PL
-Changes
-MANIFEST			This list of files
-MANIFEST.SKIP
-META.yml
-Makefile.PL
-README
-RELEASE_NOTES
-lib/Data/FormValidator.pm
-lib/Data/FormValidator/Constraints.pm
-lib/Data/FormValidator/Constraints/Dates.pm
-lib/Data/FormValidator/Constraints/Upload.pm
-lib/Data/FormValidator/ConstraintsFactory.pm
-lib/Data/FormValidator/Filters.pm
-lib/Data/FormValidator/Results.pm
-t/00_base.t
-t/02_code_ref.t
-t/03_dependency.t
-t/04_arrayify_undef.t
-t/05_valid_ip_address.t
-t/06_regexp_map.t
-t/09_require_some.t
-t/11_procedural_match.t
-t/13_validator_packages.t
-t/15_literal_param_constraints.t
-t/16_cgi_object.t
-t/17_multi_valued_keys.t
-t/18_constraint_refs.t
-t/19_refs_as_values.t
-t/20_careful_exception_handling.t
-t/21_multiple_fields.t
-t/25_results.t
-t/26_qr.t
-t/27_qualify_ref_happy_death.t
-t/28_defaults_for_new.t
-t/30_filter_definedness.t
-t/ValidatorPackagesTest1.pm
-t/ValidatorPackagesTest2.pm
-t/any_errors.t
-t/check_profile_syntax.t
-t/constraint_method.t
-t/constraint_regexp_map_profile_reuse.t
-t/constraints_builtin.t
-t/constraints_builtin_closure.t
-t/constraints_factory.t
-t/constraints_invalid_once_only.t
-t/constraints_reuse.t
-t/dates.t
-t/dates_closure.t
-t/dependency_groups.t
-t/filter_constraints.t
-t/filters_builtin.t
-t/get_input_data.t
-t/missing_optional.t
-t/msgs.t
-t/multiple_constraints.t
-t/params_not_mentioned.t
-t/pod.t
-t/procedural_valid.t
-t/profile_checking.t
-t/regexp_common.t
-t/regexp_common_closure.t
-t/results_success.t
-t/simple.t
-t/tt_and_overload.t
-t/undefined_arrayref.t
-t/unknown.t
-t/untaint.pl
-t/untaint.t
-t/upload.t
-t/upload_closure.t
-t/upload_post_text.txt
-test/00_base.badformat
-test/00_base.profile

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/MANIFEST (from rev 2163, packages/libdata-formvalidator-perl/trunk/MANIFEST)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/META.yml
===================================================================
--- packages/libdata-formvalidator-perl/trunk/META.yml	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/META.yml	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,43 +0,0 @@
---- #YAML:1.0
-name: Data-FormValidator
-version: 4.13
-author:
-  - Mark Stosberg <mark at summersault.com>
-abstract: |-
-  Validates user input (usually from an HTML form) based
-  on input profile.
-license: perl
-requires:
-  Date::Calc: 5
-  File::MMagic: 1.17
-  Image::Size: 0
-  MIME::Types: 1.005
-  Regexp::Common: 0
-  Test::More: 0
-  overload: 0
-provides:
-  Data::FormValidator:
-    file: lib/Data/FormValidator.pm
-    version: 4.13
-  Data::FormValidator::Constraints:
-    file: lib/Data/FormValidator/Constraints.pm
-    version: 4.02
-  Data::FormValidator::Constraints::Dates:
-    file: lib/Data/FormValidator/Constraints/Dates.pm
-    version: 1.01
-  Data::FormValidator::Constraints::RegexpCommon:
-    file: lib/Data/FormValidator/Results.pm
-    version: 4.13
-  Data::FormValidator::Constraints::Upload:
-    file: lib/Data/FormValidator/Constraints/Upload.pm
-    version: 1.1
-  Data::FormValidator::ConstraintsFactory:
-    file: lib/Data/FormValidator/ConstraintsFactory.pm
-    version: 1.4
-  Data::FormValidator::Filters:
-    file: lib/Data/FormValidator/Filters.pm
-    version: 4
-  Data::FormValidator::Results:
-    file: lib/Data/FormValidator/Results.pm
-    version: 4.13
-generated_by: Module::Build version 0.2611

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/META.yml (from rev 2163, packages/libdata-formvalidator-perl/trunk/META.yml)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/README
===================================================================
--- packages/libdata-formvalidator-perl/trunk/README	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/README	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,842 +0,0 @@
-NAME
-    Data::FormValidator - Validates user input (usually from an HTML form)
-    based on input profile.
-
-SYNOPSIS
-     use Data::FormValidator;
- 
-     my $results = Data::FormValidator->check(\%input_hash, \%dfv_profile);
- 
-     if ($results->has_invalid or $results->has_missing) {
-         # do something with $results->invalid, $results->missing
-         # or  $results->msgs
-     }
-     else {
-         # do something with $results->valid
-     }
-
-DESCRIPTION
-    Data::FormValidator's main aim is to make input validation expressible
-    in a simple format.
-
-    Data::FormValidator lets you define profiles which declare the required
-    and optional fields and any constraints they might have.
-
-    The results are provided as an object which makes it easy to handle
-    missing and invalid results, return error messages about which
-    constraints failed, or process the resulting valid data.
-
-VALIDATING INPUT
-  check()
-     my $results = Data::FormValidator->check(\%input_hash, \%dfv_profile);
-
-    "check" is the recommended method to use to validate forms. It returns
-    it's results as a Data::FormValidator::Results object. A deprecated
-    method "validate" is also available, returning it's results as an array
-    described below.
-
-     use Data::FormValidator;
-     my $results = Data::FormValidator->check(\%input_hash, \%dfv_profile);
-
-    Here, "check()" is used as a class method, and takes two required
-    parameters.
-
-    The first a reference to the data to be be validated. This can either be
-    a hash reference, or a CGI.pm-like object. In particular, the object
-    must have a param() method that works like the one in CGI.pm does.
-    CGI::Simple and Apache::Request objects are known to work in particular.
-    Note that if you use a hash reference, multiple values for a single key
-    should be presented as an array reference.
-
-    The second argument is a reference to the profile you are validating.
-
-  validate()
-        my( $valids, $missings, $invalids, $unknowns ) = 
-            Data::FormValidator->validate( \%input_hash, \%dfv_profile);
-
-    "validate()" provides a deprecated alternative to "check()". It has the
-    same input syntax, but returns a four element array, described as
-    follows
-
-    valids
-        This is a hash reference to the valid fields which were submitted in
-        the data. The data may have been modified by the various filters
-        specified.
-
-    missings
-        This is a reference to an array which contains the name of the
-        missing fields. Those are the fields that the user forget to fill or
-        filled with spaces. These fields may comes from the *required* list
-        or the *dependencies* list.
-
-    invalids
-        This is a reference to an array which contains the name of the
-        fields which failed one or more of their constraint checks. If there
-        are no invalid fields, an empty arrayref will be returned.
-
-        Fields defined with multiple constraints will have an array ref
-        returned in the @invalids array instead of a string. The first
-        element in this array is the name of the field, and the remaining
-        fields are the names of the failed constraints.
-
-    unknowns
-        This is a list of fields which are unknown to the profile. Whether
-        or not this indicates an error in the user input is application
-        dependant.
-
-  new()
-    Using "new()" is only needed for advanced usage, including these cases:
-
-    o   Loading more than one profile at a time. Then you can select the
-        profile you want by name later with "check()". Here's an example:
-
-         my $dfv = Data::FormValidator->new({
-            profile_1 => { # usual profile definition here },
-            profile_2 => { # another profile definition },
-         });
-
-        As illustrated, multiple profiles are defined through a hash ref
-        whose keys point to profile definitions.
-
-        You can also load several profiles from a file, by defining several
-        profiles as shown above in an external file. Then just pass in the
-        name of the file:
-
-         my $dfv = Data::FormValidator->new('/path/to/profiles.pl');
-
-        If the input profile is specified as a file name, the profiles will
-        be reread each time that the disk copy is modified.
-
-        Now when calling "check()", you just need to supply the profile
-        name:
-
-         my $results = $dfv->check(\%input_hash,'profile_1');
-
-    o   Applying defaults to more than one input profile. There are some
-        parts of the validation profile that you might like to re-use for
-        many form validations.
-
-        To facilitate this, "new()" takes a second argument, a hash
-        reference. Here the usual input profile definitions can be made.
-        These will act as defaults for any subsequent calls to "check()" on
-        this object.
-
-        Currently the logic for this is very simple. Any definition of a key
-        in your validation profile will completely overwrite your default
-        value.
-
-        This means you can't define two keys for "constraint_regexp_map" and
-        expect they will always be there. This kind of feature may be added
-        in the future.
-
-        The exception here is definitions for your "msgs" key. You will
-        safely be able to define some defaults for this key and not have
-        them entirely clobbered just because "msgs" was defined in a
-        validation profile.
-
-        One way to use this feature is to create your own sub-class that
-        always provides your defaults to "new()".
-
-        Another option is to create your own wrapper routine which provides
-        these defaults to "new()". Here's an example of a routine you might
-        put in a CGI::Application super-class to make use of this feature:
-
-         # Always use the built-in CGI object as the form data
-         # and provide some defaults to new constructor
-         sub check_form {
-             my $self = shift;
-             my $profile = shift 
-                || die 'check_form: missing required profile';
- 
-             require Data::FormValidator;
-             my $dfv = Data::FormValidator->new({},{ 
-                # your defaults here
-             });
-             return $dfv->check($self->query,$profile);
-         }
-
-INPUT PROFILE SPECIFICATION
-    An input profile is a hash reference containing one or more of the
-    following keys.
-
-    Here is a very simple input profile. Examples of more advanced options
-    are described below.
-
-        use Data::FormValidator::Constraints qw(:closures);
-
-        my $profile = {
-            optional => [qw( company
-                             fax 
-                             country )],
-
-            required => [qw( fullname 
-                             phone 
-                             email 
-                             address )],
-
-            constraint_methods => {
-                email => email(), 
-            }
-        };
-
-    That defines some fields as optional, some as required, and defines that
-    the field named 'email' must pass the constraint named 'email'.
-
-    Here is a complete list of the keys available in the input profile, with
-    examples of each.
-
-  required
-    This is an array reference which contains the name of the fields which
-    are required. Any fields in this list which are not present or contain
-    only spaces will be reported as missing.
-
-  required_regexp
-     required_regexp => qr/city|state|zipcode/,
-
-    This is a regular expression used to specify additional field names for
-    which values will be required.
-
-  require_some
-     require_some => {
-        # require any two fields from this group
-        city_or_state_or_zipcode => [ 2, qw/city state zipcode/ ], 
-     }
-
-    This is a reference to a hash which defines groups of fields where 1 or
-    more fields from the group should be required, but exactly which fields
-    doesn't matter. The keys in the hash are the group names. These are
-    returned as "missing" unless the required number of fields from the
-    group has been filled in. The values in this hash are array references.
-    The first element in this array should be the number of fields in the
-    group that is required. If the first field in the array is not an a
-    digit, a default of "1" will be used.
-
-  optional
-     optional => [qw/meat coffee chocolate/],
-
-    This is an array reference which contains the name of optional fields.
-    These are fields which MAY be present and if they are, they will be
-    checked for valid input. Any fields not in optional or required list
-    will be reported as unknown.
-
-  optional_regexp
-     optional_regexp => qr/_province$/,
-
-    This is a regular expression used to specify additional fields which are
-    optional. For example, if you wanted all fields names that begin with
-    *user_* to be optional, you could use the regular expression, /^user_/
-
-  dependencies
-     dependencies   => {
-
-        # If cc_no is entered, make cc_type and cc_exp required
-        "cc_no" => [ qw( cc_type cc_exp ) ],
-
-        # if pay_type eq 'check', require check_no
-        "pay_type" => {
-            check => [ qw( check_no ) ],
-         }
-     },
-
-    This is for the case where an optional field has other requirements. The
-    dependent fields can be specified with an array reference.
-
-    If the dependencies are specified with a hash reference then the
-    additional constraint is added that the optional field must equal a key
-    for the dependencies to be added.
-
-    Any fields in the dependencies list that is missing when the target is
-    present will be reported as missing.
-
-  dependency_groups
-     dependency_groups  => {
-         # if either field is filled in, they all become required
-         password_group => [qw/password password_confirmation/],
-     }
-
-    This is a hash reference which contains information about groups of
-    interdependent fields. The keys are arbitrary names that you create and
-    the values are references to arrays of the field names in each group.
-
-  defaults
-     defaults => {
-         country => "USA",
-     },
-
-    This is a hash reference where keys are field names and values are
-    defaults to use if input for the field is missing.
-
-    The values can be code refs which will be used to calculate the value if
-    needed. These code refs will be passed in the DFV::Results object as the
-    only parameter.
-
-    The defaults are set shortly before the constraints are applied, and
-    will be returned with the other valid data.
-
-  filters
-     # trim leading and trailing whitespace on all fields
-     filters       => ['trim'],
-
-    This is a reference to an array of filters that will be applied to ALL
-    optional and required fields, before any constraints are applied.
-
-    This can be the name of a built-in filter (trim,digit,etc) or an
-    anonymous subroutine which should take one parameter, the field value
-    and return the (possibly) modified value.
-
-    Filters modify the data, so use them carefully.
-
-    See Data::FormValidator::Filters for details on the built-in filters.
-
-  field_filters
-     field_filters => { 
-         cc_no => ['digit'],
-     },
-
-    A hash ref with field names as keys. Values are array references of
-    built-in filters to apply (trim,digit,etc) or an anonymous subroutine
-    which should take one parameter, the field value and return the
-    (possibly) modified value.
-
-    Filters are applied before any constraints are applied.
-
-    See Data::FormValidator::Filters for details on the built-in filters.
-
-  field_filter_regexp_map
-     field_filter_regexp_map => {
-         # Upper-case the first letter of all fields that end in "_name"
-         qr/_name$/    => ['ucfirst'],
-     },
-
-    This is a hash reference where the keys are the regular expressions to
-    use and the values are references to arrays of filters which will be
-    applied to specific input fields. Used to apply filters to fields that
-    match a regular expression.
-
-  constraint_methods
-     use Data::FormValidator::Constraints (qw:closures);
-
-     constraint_methods => {
-        cc_no      => cc_number({fields => ['cc_type']}),
-        cc_type    => cc_type(),
-        cc_exp     => cc_exp(),
-      },
-
-    A hash ref which contains the constraints that will be used to check
-    whether or not the field contains valid data.
-
-    Note: To use the built-in constraints, they need to first be loaded into
-    your name space using the syntax above. (Unless you are using the old
-    "constraints" key, documented in "BACKWARDS COMPATIBILITY").
-
-    The keys in this hash are field names. The values can be any of the
-    following:
-
-    o   A named constraint.
-
-        Example:
-
-         my_zipcode_field     => 'zip',
-
-        See Data::FormValidator::Constraints for the details of which
-        built-in constraints that are available.
-
-    o   A perl regular expression
-
-        Example:
-
-         my_zipcode_field   => qr/^\d{5}$/, # match exactly 5 digits
-
-        If this field is named in "untaint_constraint_fields" or
-        "untaint_regexp_map", or "untaint_all_constraints" is effective, be
-        aware of the following: If you write your own regular expressions
-        and only match part of the string then you'll only get part of the
-        string in the valid hash. It is a good idea to write you own
-        constraints like /^regex$/. That way you match the whole string.
-
-    o   a subroutine reference, to supply custom code
-
-        This will check the input and return true or false depending on the
-        input's validity. By default, the constraint function recieves a
-        Data::FormValidator::Results object as its first argument, and the
-        value to be validated as the second. To validate a field based more
-        inputs than just the field itself, see "VALIDATING INPUT BASED ON
-        MULTIPLE FIELDS".
-
-        Examples:
-
-         # Notice the use of 'pop'-- 
-         # the object is the first arg passed to the method
-         # while the value is the second, and last arg.
-         my_zipcode_field => sub { my $val = pop;  return $val =~ '/^\d{5}$/' }, 
- 
-         # OR you can reference a subroutine, which should work like the one above
-         my_zipcode_field => \&my_validation_routine, 
-
-         # An example of setting the constraint name.
-         my_zipcode_field => sub { 
-                my ($dfv, $val) = @_;
-                $dfv->set_current_constraint_name('my_constraint_name');
-                return $val =~ '/^\d{5}$/' 
-                }, 
-
-    o   an array reference
-
-        An array reference is used to apply multiple constraints to a single
-        field. Any of the above options are valid entries the array. See
-        "MULTIPLE CONSTRAINTS" below.
-
-        For more details see "VALIDATING INPUT BASED ON MULTIPLE FIELDS".
-
-  constraint_method_regexp_map
-     use Data::FormValidator::Constraints qw(:closures);
-
-     # In your profile. 
-     constraint_method_regexp_map => {
-         # All fields that end in _postcode have the 'postcode' constraint applied.
-         qr/_postcode$/    => postcode(),
-     },                  
-
-    A hash ref where the keys are the regular expressions to use and the
-    values are the constraints to apply.
-
-    If one or more constraints have already been defined for a given field
-    using "constraint_methods", "constraint_method_regexp_map" will add an
-    additional constraint for that field for each regular expression that
-    matches.
-
-  untaint_all_constraints
-     untaint_all_constraints => 1,
-
-    If this field is set, all form data that passes a constraint will be
-    untainted. The untainted data will be returned in the valid hash.
-    Untainting is based on the pattern match used by the constraint. Note
-    that some constraint routines may not provide untainting.
-
-    See "WRITING YOUR OWN CONSTRAINT ROUTINES" in the
-    Data::FormValidator::Constraints documention for more information.
-
-    This is overridden by "untaint_constraint_fields" and
-    "untaint_regexp_map".
-
-  untaint_constraint_fields
-     untaint_constraint_fields => [qw(zipcode state)],
-
-    Specifies that one or more fields will be untainted if they pass their
-    constraint(s). This can be set to a single field name or an array
-    reference of field names. The untainted data will be returned in the
-    valid hash.
-
-    This overrides the untaint_all_constraints flag.
-
-  untaint_regexp_map
-     untaint_regexp_map => [qr/some_field_\d/],
-
-    Specifies that certain fields will be untained if they pass their
-    constraints and match one of the regular expressions supplied. This can
-    be set to a single regex, or an array reference of regexes. The
-    untainted data will be returned in the valid hash.
-
-    The above example would untaint the fields named "some_field_1", and
-    "some_field_2" but not "some_field".
-
-    This overrides the untaint_all_constraints flag.
-
-  missing_optional_valid
-     missing_optional_valid => 1
-
-    This can be set to a true value to cause optional fields with empty
-    values to be included in the valid hash. By default they are not
-    included-- this is the historical behavior.
-
-    This is an important flag if you are using the contents of an "update"
-    form to update a record in a database. Without using the option, fields
-    that have been set back to "blank" may fail to get updated.
-
-  validator_packages
-     # load all the constraints and filters from these modules
-     validator_packages => [qw(Data::FormValdidator::Constraints::Upload)],
-
-    This key is used to define other packages which contain constraint
-    routines or filters. Set this key to a single package name, or an
-    arrayref of several. All of its constraint and filter routines beginning
-    with 'match_', 'valid_' and 'filter_' will be imported into
-    Data::FormValidator. This lets you reference them in a constraint with
-    just their name, just like built-in routines. You can even override the
-    provided validators.
-
-    See "WRITING YOUR OWN CONSTRAINT ROUTINES" in the
-    Data::FormValidator::Constraints documentation for more information
-
-  msgs
-    This key is used to define parameters related to formatting error
-    messages returned to the user.
-
-    By default, invalid fields have the message "Invalid" associated with
-    them while missing fields have the message "Missing" associated with
-    them.
-
-    In the simplest case, nothing needs to be defined here, and the default
-    values will be used.
-
-    The default formatting applied is designed for display in an XHTML web
-    page. That formatting is as followings:
-
-        <span style="color:red;font-weight:bold"><span class="dfv_errors">* %s</span></span>
-
-    The %s will be replaced with the message. The effect is that the message
-    will appear in bold red with an asterisk before it. This style can be
-    overriden by simply defining "dfv_errors" appropriately in a style
-    sheet, or by providing a new format string.
-
-    Here's a more complex example that shows how to provide your own default
-    message strings, as well as providing custom messages per field, and
-    handling multiple constraints:
-
-     msgs => {
-     
-         # set a custom error prefix, defaults to none
-         prefix=> 'error_',
- 
-         # Set your own "Missing" message, defaults to "Missing"
-         missing => 'Not Here!',
- 
-         # Default invalid message, default's to "Invalid"
-         invalid => 'Problematic!',
- 
-         # message separator for multiple messages
-         # Defaults to ' '
-         invalid_separator => ' <br /> ',
- 
-         # formatting string, default given above.
-         format => 'ERROR: %s',
- 
-         # Error messages, keyed by constraint name
-         # Your constraints must be named to use this.
-         constraints => {
-                         'date_and_time' => 'Not a vaild time format',
-                         # ...
-         },
- 
-         # This token will be included in the hash if there are 
-         # any errors returned. This can be useful with templating
-         # systems like HTML::Template
-         # The 'prefix' setting does not apply here.
-         # defaults to undefined
-         any_errors => 'some_errors',
-     }
-
-    The hash that's prepared can be retrieved through the "msgs" method
-    described in the Data::FormValidator::Results documentation.
-
-  msgs - callback
-    *This is a new feature. While it expected to be forward-compatible, it
-    hasn't yet received the testing the rest of the API has.*
-
-    If the built-in message generation doesn't suit you, it is also possible
-    to provide your own by specifying a code reference:
-
-     msgs  =>  \&my_msgs_callback
-
-    This will be called as a Data::FormValidator::Results method. It may
-    receive as arguments an additional hash reference of control parameters,
-    corresponding to the key names in the usually used in the "msgs" area of
-    the profile. You can ignore this information if you'd like.
-
-    If you have an alternative error message handler you'd like to share,
-    stick in the "Data::FormValidator::ErrMsgs" and upload it to CPAN.
-
-  debug
-    This method is used to print details about what is going on to STDERR.
-
-    Currently only level '1' is used. It provides information about which
-    fields matched constraint_regexp_map.
-
-  A shortcut for array refs
-    A number of parts of the input profile specification include array
-    references as their values. In any of these places, you can simply use a
-    string if you only need to specify one value. For example, instead of
-
-     filters => [ 'trim' ]
-
-    you can simply say
-
-     filters => 'trim'
-
-  A note on regular expression formats
-    In addition to using the preferred method of defining regular
-    expressions using "qr", a deprecated style of defining them as strings
-    is also supported.
-
-    Preferred:
-
-     qr/this is great/
-
-    Deprecated, but supported
-
-     'm/this still works/'
-
-VALIDATING INPUT BASED ON MULTIPLE FIELDS
-    You can pass more than one value into a constraint routine. For that,
-    the value of the constraint should be a hash reference. If you are
-    creating your own routines, be sure to read the section labeled "WRITING
-    YOUR OWN CONSTRAINT ROUTINES", in the Data::FormValidator::Constraints
-    documentation. It describes a newer and more flexible syntax.
-
-    Using the original syntax, one key should be named "constraint" and
-    should have a value set to the reference of the subroutine or the name
-    of a built-in validator. Another required key is "params". The value of
-    the "params" key is a reference to an array of the other elements to use
-    in the validation. If the element is a scalar, it is assumed to be a
-    field name. The field is known to Data::FormValidator, the value will be
-    filtered through any defined filteres before it is passed in. If the
-    value is a reference, the reference is passed directly to the routine.
-    Don't forget to include the name of the field to check in that list, if
-    you are using this syntax.
-
-    Example:
-
-     cc_no  => {  
-         constraint  => "cc_number",
-         params         => [ qw( cc_no cc_type ) ],
-     },
-
-MULTIPLE CONSTRAINTS
-    Multiple constraints can be applied to a single field by defining the
-    value of the constraint to be an array reference. Each of the values in
-    this array can be any of the constraint types defined above.
-
-    When using multiple constraints it is important to return the name of
-    the constraint that failed so you can distinquish between them. To do
-    that, either use a named constraint, or use the hash ref method of
-    defining a constraint and include a "name" key with a value set to the
-    name of your constraint. Here's an example:
-
-     my_zipcode_field => [
-         'zip',
-         { 
-           constraint =>  '/^406/', 
-           name        =>  'starts_with_406',
-         }
-     ],
-
-    You can use an array reference with a single constraint in it if you
-    just want to have the name of your failed constraint returned in the
-    above fashion.
-
-    Read about the "validate()" function above to see how multiple
-    constraints are returned differently with that method.
-
-ADVANCED VALIDATION
-    For even more advanced validation, you will likely want to read the
-    documentation for other modules in this distribution, linked below. Also
-    keep in mind that the Data::FormValidator profile structure is just
-    another data structure. There is no reason why it needs to be defined
-    statically. The profile could also be built on the fly with custom Perl
-    code.
-
-BACKWARDS COMPATIBILITY
-  validate()
-        my( $valids, $missings, $invalids, $unknowns ) = 
-            Data::FormValidator->validate( \%input_hash, \%dfv_profile);
-
-    "validate()" provides a deprecated alternative to "check()". It has the
-    same input syntax, but returns a four element array, described as
-    follows
-
-    valids
-        This is a hash reference to the valid fields which were submitted in
-        the data. The data may have been modified by the various filters
-        specified.
-
-    missings
-        This is a reference to an array which contains the name of the
-        missing fields. Those are the fields that the user forget to fill or
-        filled with spaces. These fields may comes from the *required* list
-        or the *dependencies* list.
-
-    invalids
-        This is a reference to an array which contains the name of the
-        fields which failed one or more of their constraint checks.
-
-        Fields defined with multiple constraints will have an array ref
-        returned in the @invalids array instead of a string. The first
-        element in this array is the name of the field, and the remaining
-        fields are the names of the failed constraints.
-
-    unknowns
-        This is a list of fields which are unknown to the profile. Whether
-        or not this indicates an error in the user input is application
-        dependant.
-
-  constraints (profile key)
-    This is a supported but deprecated profile key. Using
-    "constraint_methods" is recommended instead, which provides a simpler,
-    more versatile interface.
-
-     constraints => {
-        cc_no      => {  
-            constraint  => "cc_number",
-            params        => [ qw( cc_no cc_type ) ],
-        },
-        cc_type    => "cc_type",
-        cc_exp    => "cc_exp",
-      },
-
-    A hash ref which contains the constraints that will be used to check
-    whether or not the field contains valid data.
-
-    The keys in this hash are field names. The values can be any of the
-    following:
-
-    o   A named constraint.
-
-        Example:
-
-         my_zipcode_field     => 'zip',
-
-        See Data::FormValidator::Constraints for the details of which
-        built-in constraints that are available.
-
-  hashref style of specifying constraints
-    Using a hash reference to specify a constraint is an older technique
-    used to name a constraint or supply multiple parameters.
-
-    Both of these interface issues are now better addressed with
-    "constraint_methods" and "$self-\"name_this('foo')>.
-
-     # supply multiple parameters
-     cc_no  => {  
-         constraint  => "cc_number",
-         params      => [ qw( cc_no cc_type ) ],
-     },
-
-     # name a constraint, useful for returning error messages
-     last_name => {
-         name => "ends_in_name",
-         constraint => qr/_name$/,
-     },
-
-    Using a hash reference for a constraint permits the passing of multiple
-    arguments. Required arguments are "constraint" or "constraint_method".
-    Optional arguments are "name" and "params".
-
-    A "name" on a constraints 'glues' the constraint to its error message in
-    the validator profile (refer "msgs" section below). If no "name" is
-    given then it will default to the value of "constraint" or
-    "constraint_method" IF they are NOT a CODE ref or a RegExp ref.
-
-    The "params" value is a reference to an array of the parameters to pass
-    to the constraint method. If an element of the "params" list is a
-    scalar, it is assumed to be naming a key of the %input_hash and that
-    value is passed to the routine. If the parameter is a reference, then it
-    is treated literally and passed unchanged to the routine.
-
-    If you are using the older "constraint" over the new "constraint_method"
-    then don't forget to include the name of the field to check in the
-    "params" list. "constraint_method" provides access to this value via the
-    "get_current_*" methods (refer Data::FormValidator::Constraints)
-
-    For more details see "VALIDATING INPUT BASED ON MULTIPLE FIELDS".
-
-  constraint_regexp_map (profile key)
-    This is a supported by deprecated profile key. Using
-    "constraint_methods_regexp_map" is recommended instead.
-
-     constraint_regexp_map => {
-         # All fields that end in _postcode have the 'postcode' constraint applied.
-         qr/_postcode$/    => 'postcode',
-     },                  
-
-    A hash ref where the keys are the regular expressions to use and the
-    values are the constraints to apply.
-
-    If one or more constraints have already been defined for a given field
-    using "constraints", constraint_regexp_map will add an additional
-    constraint for that field for each regular expression that matches.
-
-SEE ALSO
-    Other modules in this distribution:
-
-    Data::FormValidator::Constraints
-
-    Data::FormValidator::Constraints::Dates
-
-    Data::FormValidator::Constraints::Upload
-
-    Data::FormValidator::ConstraintsFactory
-
-    Data::FormValidator::Filters
-
-    Data::FormValidator::Results
-
-    A sample application by the maintainer:
-
-    Validating Web Forms with Perl,
-    <http://mark.stosberg.com/Tech/perl/form-validation/>
-
-    Related modules:
-
-    Data::FormValidator::Tutorial
-
-    Data::FormValidator::Util::HTML
-
-    CGI::Application::ValidateRM, a CGI::Application & Data::FormValidator
-    glue module
-
-    HTML::Template::Associate::FormValidator is designed to make some kinds
-    of integration with HTML::Template easier.
-
-    Params::Validate is useful for validating function parameters.
-
-    Regexp::Common, Data::Types, Data::Verify, Email::Valid,
-    String::Checker, CGI::ArgChecker, CGI::FormMagick::Validator,
-    CGI::Validate
-
-    Document Translations:
-
-    Japanese: <http://perldoc.jp/docs/modules/>
-
-    Distributions which include Data::formValidator
-
-    FreeBSD includes a port named p5-Data-FormValidator
-
-    Debian GNU/Linux includes a port named libdata-formvalidator-perl
-
-CREDITS
-    Some of those input validation functions have been taken from MiniVend
-    by Michael J. Heins.
-
-    The credit card checksum validation was taken from contribution by Bruce
-    Albrecht to the MiniVend program.
-
-BUGS
-    <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Data-FormValidator>
-
-CONTRIBUTING
-    Patches, questions and feedback are welcome. This project is managed
-    using the darcs source control system ( http://www.darcs.net/ ). My
-    darcs archive is here: http://mark.stosberg.com/darcs_hive/dfv/
-
-AUTHOR
-    Parts Copyright 2001-2003 by Mark Stosberg <markstos at cpan.org>, (Current
-    Maintainer)
-
-    Copyright (c) 1999 Francis J. Lacoste and iNsu Innovations Inc. All
-    rights reserved. (Original Author)
-
-    Parts Copyright 1996-1999 by Michael J. Heins <mike at heins.net>
-
-    Parts Copyright 1996-1999 by Bruce Albrecht
-    <bruce.albrecht at seag.fingerhut.com>
-
-    Support Mailing List
-
-    If you have any questions, comments, bug reports or feature suggestions,
-    post them to the support mailing list! To join the mailing list, visit
-    <http://lists.sourceforge.net/lists/listinfo/cascade-dataform>
-
-LICENSE
-    This program is free software; you can redistribute it and/or modify it
-    under the terms as perl itself.
-

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/README (from rev 2163, packages/libdata-formvalidator-perl/trunk/README)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/debian/changelog
===================================================================
--- packages/libdata-formvalidator-perl/trunk/debian/changelog	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/debian/changelog	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,107 +0,0 @@
-libdata-formvalidator-perl (4.13-1) unstable; urgency=low
-
-  * New upstream release.
-  * Add myself to Uploaders.
-  * Add libtemplate-perl to Build-Depends-Indep for full test coverage.
-
- -- Niko Tyni <ntyni at iki.fi>  Mon, 13 Feb 2006 22:29:21 +0200
-
-libdata-formvalidator-perl (4.12-1) unstable; urgency=low
-
-  * New upstream release.
-  * Add libtest-pod-perl and libcgi-simple-perl to build-depends for more
-    complete testing.
-  * Install RELEASE_NOTES in the doc directory.
-  * Conditionally run ./Build clean only if Build exists so that
-    Module::Build doesn't have to be installed to run debian/rules clean.
-  * Move debhelper to Build-Depends since it's required for clean.
-
- -- Russ Allbery <rra at debian.org>  Mon, 16 Jan 2006 16:10:54 -0800
-
-libdata-formvalidator-perl (4.02-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Tue,  6 Sep 2005 15:46:53 -0500
-
-libdata-formvalidator-perl (3.63-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Thu, 17 Mar 2005 18:34:45 -0600
-
-libdata-formvalidator-perl (3.59-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Fri,  9 Jul 2004 11:36:50 -0500
-
-libdata-formvalidator-perl (3.58-1) unstable; urgency=low
-
-  * Package maintainership transfered to the Debian Perl Group.
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Wed,  5 May 2004 18:50:19 -0500
-
-libdata-formvalidator-perl (3.57-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Sun, 25 Apr 2004 12:10:41 -0500
-
-libdata-formvalidator-perl (3.56-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Tue, 20 Apr 2004 08:31:13 -0500
-
-libdata-formvalidator-perl (3.54-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Fri,  9 Apr 2004 10:08:10 -0500
-
-libdata-formvalidator-perl (3.53-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Tue, 23 Mar 2004 11:43:18 -0600
-
-libdata-formvalidator-perl (3.51-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Mon,  1 Mar 2004 16:04:02 -0600
-
-libdata-formvalidator-perl (3.50-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Wed, 14 Jan 2004 12:46:36 -0600
-
-libdata-formvalidator-perl (3.15-1) unstable; urgency=low
-
-  * New upstream release
-
- -- Gunnar Wolf <gwolf at debian.org>  Sun, 11 Jan 2004 22:33:23 -0600
-
-libdata-formvalidator-perl (3.12-3) unstable; urgency=low
-
-  * Fixed a packaging bug that led me to an incredibly large .diff.gz
-    (Closes: #226021)
-
- -- Gunnar Wolf <gwolf at debian.org>  Sun, 11 Jan 2004 22:12:16 -0600
-
-libdata-formvalidator-perl (3.12-2) unstable; urgency=low
-
-  * Fixed a typo in debian/watch
-  * Fixed missed dependencies/build-dependencies (Closes: #215051)
-
- -- Gunnar Wolf <gwolf at debian.org>  Fri, 10 Oct 2003 08:47:20 -0500
-
-libdata-formvalidator-perl (3.12-1) unstable; urgency=low
-
-  * Initial Release (closes: #207791)
-
- -- Gunnar Wolf <gwolf at debian.org>  Sun, 14 Sep 2003 21:45:21 -0500
-

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/debian/changelog (from rev 2163, packages/libdata-formvalidator-perl/trunk/debian/changelog)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Constraints.pm
===================================================================
--- packages/libdata-formvalidator-perl/trunk/lib/Data/FormValidator/Constraints.pm	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Constraints.pm	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,879 +0,0 @@
-#
-#    Constraints.pm - Standard constraints for use in Data::FormValidator.
-#
-#    This file is part of Data::FormValidator.
-#
-#    Author: Francis J. Lacoste 
-#    Maintainer: Mark Stosberg <mark at summersault.com>
-#
-#    Copyright (C) 1999,2000 iNsu Innovations Inc.
-#    Copyright (C) 2001 Francis J. Lacoste
-#    Parts Copyright 1996-1999 by Michael J. Heins 
-#    Parts Copyright 1996-1999 by Bruce Albrecht  
-#
-#    Parts of this module are based on work by
-#    Bruce Albrecht, contributed to MiniVend.
-#
-#    Parts also based on work by Michael J. Heins 
-#
-#    This program is free software; you can redistribute it and/or modify
-#    it under the terms same terms as perl itself.
-#
-package Data::FormValidator::Constraints;
-use strict;
-use vars qw/$AUTOLOAD @ISA @EXPORT_OK %EXPORT_TAGS $VERSION/;
-
-$VERSION = 4.02;
-
-require Exporter;
- at ISA = qw(Exporter);
-
-BEGIN {
-    use Carp;
-    my @closures = (qw/
-        american_phone
-        cc_exp
-        cc_number
-        cc_type
-        email
-        ip_address
-        phone
-        postcode
-        province
-        state
-        state_or_province
-        zip
-        zip_or_postcode/);
-
-    # This be optimized with some of the voodoo that CGI.pm
-    # uses to AUTOLOAD dynamic functions. 
-    for my $func (@closures) {
-        # cc_number is defined statically
-        unless ($func eq 'cc_number') {
-            # Notice we have to escape some characters
-            # in the subroutine, which is really a string here. 
-
-            local $SIG{__DIE__} = \&confess;
-            my $code = qq!
-            sub $func  {
-                return sub {
-                    my \$dfv = shift;
-                    use UNIVERSAL qw( can ) ;
-                    can(\$dfv, "name_this") 
-                    || die "first arg to $func was not an object. Must be called as a constraint_method.";
-
-                    \$dfv->name_this('$func');
-                    no strict 'refs';
-                    return &{"match_$func"}(\@_);
-                }
-            }
-            !;
-
-            eval "package Data::FormValidator::Constraints; $code";
-            die "couldn't create $func: $@" if $@;
-        }
-    }
-
-    @EXPORT_OK = (
-        @closures,
-        qw(
-        valid_american_phone
-        valid_cc_exp
-        valid_cc_number
-        valid_cc_type
-        valid_email
-        valid_ip_address
-        valid_phone
-        valid_postcode
-        valid_province
-        valid_state
-        valid_state_or_province
-        valid_zip
-        valid_zip_or_postcode
-        match_american_phone
-        match_cc_exp
-        match_cc_number
-        match_cc_type
-        match_email
-        match_ip_address
-        match_phone
-        match_postcode
-        match_province
-        match_state
-        match_state_or_province
-        match_zip
-        match_zip_or_postcode)
-    );
-
-    %EXPORT_TAGS = (
-        # regexp common is correctly empty here, because we handle the case on the fly with the import function below. 
-        regexp_common => [],
-        closures => \@closures, 
-        validators => [qw/
-            valid_american_phone
-            valid_cc_exp
-            valid_cc_number
-            valid_cc_type
-            valid_email
-            valid_ip_address
-            valid_phone
-            valid_postcode
-            valid_province
-            valid_state
-            valid_state_or_province
-            valid_zip
-            valid_zip_or_postcode
-        /],
-        matchers => [qw/
-            match_american_phone
-            match_cc_exp
-            match_cc_number
-            match_cc_type
-            match_email
-            match_ip_address
-            match_phone
-            match_postcode
-            match_province
-            match_state
-            match_state_or_province
-            match_zip
-            match_zip_or_postcode
-        /],		
-    );
-
-    sub import {
-        # This is Regexp::Common support.
-        # Here we are handling cases that look like this:
-        #
-        # my_field => FV_foo_bar(-zoo=>'queue'), 
-        if (grep { m/^:regexp_common$/ } @_) {
-            require Regexp::Common;
-            import  Regexp::Common 'RE_ALL';
-
-            for my $sub (grep { m/^RE_/}  keys %Data::FormValidator::Constraints:: ) {
-                no strict 'refs';
-                my $new_name = $sub;
-                $new_name =~ s/^RE_/FV_/;
-                *{caller() . "::$new_name"} = sub {
-                    my @params =  @_;
-                    return sub {
-                        my $dfv = shift;
-                        $dfv->name_this($new_name);
-
-                        no strict "refs";
-                        my $re = &$sub(-keep=>1, at params);
-                        return ($dfv->get_current_constraint_value =~ qr/^$re$/) ? $1 : undef; 
-                    }
-                }
-            }
-        }
-
-        Data::FormValidator::Constraints->export_to_level(1, at _);
-    }
-
-}
-
-
-# sub DESTROY {}
-
-=pod
-
-=head1 NAME
-
-Data::FormValidator::Constraints - Basic sets of constraints on input profile.
-
-=head1 SYNOPSIS
-
- use Data::FormValidator::Constraints qw(:all);
-
-In an Data::FormValidator profile:
-
-    constraint_methods => {
-	    email	=> email(),
-	    fax		=> american_phone(),
-	    phone	=> american_phone(),
-	    state	=> state(),
-	},
-
-
-=head1 DESCRIPTION
-
-These are the builtin constraints that can be specified by name in the input
-profiles. 
-
-Be sure to check out the SEE ALSO section for even more pre-packaged
-constraints you can use.
-
-=cut
-
-sub AUTOLOAD {
-    my $name = $AUTOLOAD;
-
-	no strict qw/refs/;
-
-	$name =~ m/^(.*::)(valid_|RE_)(.*)/;
-
-	my ($pkg,$prefix,$sub) = ($1,$2,$3);
-
-	#warn "hello!  my ($pkg,$prefix,$sub) = ($1,$2,$3);";
-
-    # Since all the valid_* routines are essentially identical we're
-    # going to generate them dynamically from match_ routines with the same names.
-	if ((defined $prefix) and ($prefix eq 'valid_')) {
-		return defined &{$pkg.'match_' . $sub}(@_);
-    }
-}
-
-=pod
-
-=over 
-
-=item email
-
-Checks if the email LOOKS LIKE an email address. This should be sufficient
-99% of the time. 
-
-Look elsewhere if you want something super fancy that matches every possible variation
-that is valid in the RFC, or runs out and checks some MX records.
-
-=cut
-
-# Many of the following validators are taken from
-# MiniVend 3.14. (http://www.minivend.com)
-# Copyright 1996-1999 by Michael J. Heins <mike at heins.net>
-
-sub match_email {
-    my $email = shift;
-
-    if ($email =~ /^(([a-z0-9_\.\+\-\=\?\^\#]){1,64}\@(([a-z0-9\-]){1,251}\.){1,252}[a-z0-9]{2,4})$/i) {
-	    return $1;
-    }
-    else { 
-        return undef; 
-    }
-}
-
-my $state = <<EOF;
-AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME MD
-MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA PR RI
-SC SD TN TX UT VT VA WA WV WI WY DC AP FP FPO APO GU VI
-EOF
-
-my $province = <<EOF;
-AB BC MB NB NF NL NS NT NU ON PE QC SK YT YK
-EOF
-
-=pod
-
-=item state_or_province
-
-This one checks if the input correspond to an american state or a canadian
-province.
-
-=cut
-
-sub match_state_or_province {
-    my $match;
-    if ($match = match_state(@_)) { 
-		return $match; 
-	}
-    else {
-		return match_province(@_);
-	}
-}
-
-=pod
-
-=item state
-
-This one checks if the input is a valid two letter abbreviation of an 
-american state.
-
-=cut
-
-sub match_state {
-    my $val = shift;
-    if ($state =~ /\b($val)\b/i) {
-	return $1;
-    }
-    else { return undef; }
-}
-
-=pod
-
-=item province
-
-This checks if the input is a two letter canadian province
-abbreviation.
-
-=cut
-
-sub match_province {
-    my $val = shift;
-    if ($province =~ /\b($val)\b/i) {
-	return $1;
-    }
-    else { return undef; }
-}
-
-=pod
-
-=item zip_or_postcode
-
-This constraints checks if the input is an american zipcode or a
-canadian postal code.
-
-=cut
-
-sub match_zip_or_postcode {
-    my $match;
-    if ($match = match_zip(@_)) { 
-		return $match; 
-	}
-    else {
-		return match_postcode(@_)
-	};
-}
-=pod
-
-=item postcode
-
-This constraints checks if the input is a valid Canadian postal code.
-
-=cut
-
-sub match_postcode {
-    my $val = shift;
-    #$val =~ s/[_\W]+//g;
-    if ($val =~ /^([ABCEGHJKLMNPRSTVXYabceghjklmnprstvxy][_\W]*\d[_\W]*[A-Za-z][_\W]*[- ]?[_\W]*\d[_\W]*[A-Za-z][_\W]*\d[_\W]*)$/) {
-	return $1;
-    }
-    else { return undef; }
-}
-
-=pod
-
-=item zip
-
-This input validator checks if the input is a valid american zipcode :
-5 digits followed by an optional mailbox number.
-
-=cut
-
-sub match_zip {
-    my $val = shift;
-    if ($val =~ /^(\s*\d{5}(?:[-]\d{4})?\s*)$/) {
-	return $1;
-    }
-    else { return undef; }
-}
-
-=pod
-
-=item phone
-
-This one checks if the input looks like a phone number, (if it
-contains at least 6 digits.)
-
-=cut
-
-sub match_phone {
-    my $val = shift;
-
-    if ($val =~ /^((?:\D*\d\D*){6,})$/) {
-	return $1;
-    }
-    else { return undef; }
-}
-
-=pod
-
-=item american_phone
-
-This constraints checks if the number is a possible North American style
-of phone number : (XXX) XXX-XXXX. It has to contains 7 or more digits.
-
-=cut
-
-sub match_american_phone {
-    my $val = shift;
-
-    if ($val =~ /^((?:\D*\d\D*){7,})$/) {
-	return $1;
-    }
-    else { return undef; }
-}
-
-
-=pod
-
-=item cc_number
-
-This constraint references the value of a credit card type field.
-
- constraint_methods => {
-    cc_no      => cc_number({fields => ['cc_type']}),
-  }
-
-
-The number is checked only for plausibility, it checks if the number could
-be valid for a type of card by checking the checksum and looking at the number
-of digits and the number of digits of the number.
-
-This functions is only good at catching typos. IT DOESN'T
-CHECK IF THERE IS AN ACCOUNT ASSOCIATED WITH THE NUMBER.
-
-=cut
-
-# This one is taken from the contributed program to 
-# MiniVend by Bruce Albrecht
-
-sub cc_number {
-	my $dfv = shift;
-	my $attrs = pop; 
-	my $data = $dfv->get_input_data;
-
-	my ($cc_type_field) = @{ $attrs->{fields} };
-	return match_cc_number( 
-		$dfv->get_current_constraint_value,
-		$data->{$cc_type_field}
-	);
-}
-
-sub match_cc_number {
-    my ( $the_card, $card_type ) = @_;
-    my $orig_card = $the_card; #used for return match at bottom
-    my ($index, $digit, $product);
-    my $multiplier = 2;        # multiplier is either 1 or 2
-    my $the_sum = 0;
-
-    return undef if length($the_card) == 0;
-
-    # check card type
-    return undef unless $card_type =~ /^[admv]/i;
-
-    return undef if ($card_type =~ /^v/i && substr($the_card, 0, 1) ne "4") ||
-      ($card_type =~ /^m/i && substr($the_card, 0, 1) ne "5") ||
-	($card_type =~ /^d/i && substr($the_card, 0, 4) ne "6011") ||
-	  ($card_type =~ /^a/i && substr($the_card, 0, 2) ne "34" &&
-	   substr($the_card, 0, 2) ne "37");
-
-    # check for valid number of digits.
-    $the_card =~ s/\s//g;    # strip out spaces
-    return undef if $the_card !~ /^\d+$/;
-
-    $digit = substr($the_card, 0, 1);
-    $index = length($the_card)-1;
-    return undef if ($digit == 3 && $index != 14) ||
-        ($digit == 4 && $index != 12 && $index != 15) ||
-            ($digit == 5 && $index != 15) ||
-                ($digit == 6 && $index != 13 && $index != 15);
-
-
-    # calculate checksum.
-    for ($index--; $index >= 0; $index --)
-    {
-        $digit=substr($the_card, $index, 1);
-        $product = $multiplier * $digit;
-        $the_sum += $product > 9 ? $product - 9 : $product;
-        $multiplier = 3 - $multiplier;
-    }
-    $the_sum %= 10;
-    $the_sum = 10 - $the_sum if $the_sum;
-
-    # return whether checksum matched.
-    if ($the_sum == substr($the_card, -1)) {
-	if ($orig_card =~ /^([\d\s]*)$/) { return $1; }
-	else { return undef; }
-    }
-    else {
-	return undef;
-    }
-}
-
-=pod
-
-=item cc_exp
-
-This one checks if the input is in the format MM/YY or MM/YYYY and if
-the MM part is a valid month (1-12) and if that date is not in the past.
-
-=cut
-
-sub match_cc_exp {
-    my $val = shift;
-    my ($matched_month, $matched_year);
-
-    my ($month, $year) = split('/', $val);
-    return undef if $month !~ /^(\d+)$/;
-    $matched_month = $1;
-
-    return undef if  $year !~ /^(\d+)$/;
-    $matched_year = $1;
-
-    return undef if $month <1 || $month > 12;
-    $year += ($year < 70) ? 2000 : 1900 if $year < 1900;
-    my @now=localtime();
-    $now[5] += 1900;
-    return undef if ($year < $now[5]) || ($year == $now[5] && $month <= $now[4]);
-
-    return "$matched_month/$matched_year";
-}
-
-=pod
-
-=item cc_type
-
-This one checks if the input field starts by M(asterCard), V(isa),
-A(merican express) or D(iscovery).
-
-=cut
-
-sub match_cc_type {
-    my $val = shift;
-    if ($val =~ /^([MVAD].*)$/i) { return $1; }
-    else { return undef; }
-}
-
-=pod
-
-=item ip_address
-
-This checks if the input is formatted like an IP address (v4)
-
-=cut
-
-# contributed by Juan Jose Natera Abreu <jnatera at net-uno.net>
-
-sub match_ip_address {
-   my $val = shift;
-   if ($val =~ m/^((\d+)\.(\d+)\.(\d+)\.(\d+))$/) {
-       if 
-	   (($2 >= 0 && $2 <= 255) && ($3 >= 0 && $3 <= 255) && ($4 >= 0 && $4 <= 255) && ($5 >= 0 && $5 <= 255)) {
-	       return $1;
-	   }
-       else { return undef; }
-   }
-   else { return undef; }
-}
-
-
-1;
-
-__END__
-
-=pod
-
-=back
-
-=head1 REGEXP::COMMON SUPPORT
-
-Data::FormValidator also includes built-in support for using any of regular expressions
-in L<Regexp::Common> as named constraints. Simply use the name of regular expression you want.
-This works whether you want to untaint the data or not. For example:
-
- use Data::FormValidator::Constraints qw(:regexp_common);
-
- constraint_methods => {
-	my_ip_address => FV_net_IPv4(),
-
-	# An example with parameters
-	other_ip      => FV_net_IPv4(-sep=>' '),
- }
-
-Notice that the routines are named with the prefix "FV_" instead of "RE_" now. 
-This is simply a visual cue that these are slightly modified versions. We've made
-a wrapper for each Regexp::Common routine so that it can be used as a named constraint 
-like this. 
-
-Be sure to check out the L<Regexp::Common> syntax for how its syntax works. It
-will make more sense to add future regular expressions to Regexp::Common rather
-than to Data::FormValidator.
-
-=head1 PROCEDURAL INTERFACE
-
-You may also call these functions directly through the procedural
-interface by either importing them directly or importing the whole
-I<:validators> group. This is useful if you want to use the built-in validators
-out of the usual profile specification interface. 
-
-
-For example, if you want to access the I<email> validator
-directly, you could either do:
-
-    use Data::FormValidator::Constraints (qw/valid_email/);
-    or
-    use Data::FormValidator::Constraints (:validators);
-
-    if (valid_email($email)) {
-      # do something with the email address
-    }
-
-Notice that when you call validators directly, you'll need to prefix the
-validator name with "valid_" 
-
-Each validator also has a version that returns the untainted value if
-the validation succeeded. You may call these functions directly
-through the procedural interface by either importing them directly or
-importing the I<:matchers> group. For example if you want to untaint a
-value with the I<email> validator directly you may:
-
-    if ($email = match_email($email)) {
-        system("echo $email");
-    }
-    else {
-        die "Unable to validate email";
-    }
-
-Notice that when you call validators directly and want them to return an
-untainted value, you'll need to prefix the validator name with "match_" 
-
-=pod
-
-=head1 WRITING YOUR OWN CONSTRAINT ROUTINES
-
-=head2 New School Constraints Overview
-
-This is the current recommended way to write constraints. See also L<Old School
-Constraints>.
-
-The most flexible way to create constraints to use closures-- a normal seeming
-outer subroutine which returins a customized DFV method subroutine as a result.
-It's easy to do. These "constraint methods" can be named whatever you like, and
-imported normally into the name space where the profile is located. 
-
-Let's look at an example. 
-
-  # Near your profile	
-  # Of course, you don't have to export/import if your constraints are in the same
-  # package as the profile.  
-  use My::Constraints qw(coolness);
-
-  # In your profile
-  constraint_methods => {
-    email 			 => email(),
-	prospective_date => coolness(
-		min => 40,
-		max => 60,
-		{fields => [qw/personality smarts good_looks/]}
-	),
-  }
-
-Let's look at how this complex C<coolness> constraint method works. The 
-interface asks for users to define minimum and maximum coolness values, as
-well as declaring three data field names that we should peek into to look 
-their values. 
-
-Here's what the code might look like:
-
-  sub coolness {
- 	my ($min_cool,$max_cool, $attrs) = @_; 
-	my ($personality,$smarts,$looks) = @{ $attrs->{fields} } if $attrs->{fields};
-	return sub {
-		my $dfv = shift;
-
-		# Name it to refer to in the 'msgs' system.
-		$dfv->name_this('coolness');
-
-		my $val = $dfv->get_current_constraint_value();
-
-		# get other data to refer to
-	    my $data = $dfv->get_input_data;
-
-	    my $has_all_three = ($data->{personality} && $data->{smarts} && $data->{looks});
-		return ( ($val >= $min_cool) && ($val <= $max_cool) && $has_all_three );
-	}
-  }
-
-
-Here is documentation on how old school constraints are created. These are
-supported, but the the new school style documented above is recommended. 
-
-See also the C<validator_packages> option in the input profile, for loading 
-sets of old school constraints from other packages. 
-
-Old school constraint routines are named two ways. Some are named with the
-prefix C<match_> while others start with C<valid_>. The difference is that the
-C<match_> routines are built to untaint the data and return a safe version of
-it if it validates, while C<valid_> routines simply return a true value if the
-validation succeeds and false otherwise.
-
-It is preferable to write C<match_> routines that untaint data for the extra
-security benefits. Plus, Data::FormValidator will AUTOLOAD a C<valid_> version
-if anyone tries to use it, so you only need to write one routine to cover both
-cases. 
-
-Usually constraint routines only need one input, the value being specified.
-However, sometimes more than one value is needed. 
-
-B<Example>:
-
-		image_field  => {  
-			constraint_method  => 'max_image_dimensions',
-			params => [\100,\200],
-		},
-
-Using that syntax, the first parameter that will be passed to the routine is
-the Data::FormValidator object. The remaining parameters will come from the
-C<params> array. Strings will be replaced by the values of fields with the same names,
-and references will be passed directly.
-
-In addition to C<constraint_method>, there is also an even older technique using
-the name C<constraint> instead. Routines that are designed to work with
-C<constraint> I<don't> have access to Data::FormValidator object, which
-means users need to pass in the name of the field being validated. Besides
-adding unnecessary syntax to the user interface, it won't work in conjunction
-with C<constraint_regexp_map>.
-
-=head2 Methods available for use inside of constraints
-
-A few useful methods to use on the Data::FormValidator::Results object are
-available to you to use inside of your routine.
-
-=over 4
-
-=item get_input_data()
-
-Returns the raw input data. This may be a CGI object if that's what 
-was used in the constraint routine. 
-
-B<Examples:>
-
- # Raw and uncensored
- my $data = $self->get_input_data;
-
- # tamed to be a hashref, if it wasn't already
- my $data = $self->get_input_data( as_hashref => 1 );
-
-=item get_current_constraint_field
-
-Returns the name of the current field being tested in the constraint.
-
-B<Example>:
-
- my $field = $self->get_current_constraint_field;
-
-This reduces the number of parameters that need to be passed into the routine
-and allows multi-valued constraints to be used with C<constraint_regexp_map>.
-
-For complete examples of multi-valued constraints, see L<Data::FormValidator::Constraints::Upload>
-
-=item get_current_constraint_value
-
-Returns the name of the current value being tested in the constraint.
-
-B<Example>:
-
- my $value = $self->get_current_constraint_value;
-
-This reduces the number of parameters that need to be passed into the routine
-and allows multi-valued constraints to be used with C<constraint_regexp_map>.
-
-=item get_current_constraint_name
-
-Returns the name of the current constraint being applied
-
-B<Example>:
-
- my $value = $self->get_current_constraint_name;
-
-This is useful for building a constraint on the fly based on it's name.
-It's used internally as part of the interface to the L<Regexp::Commmon>
-regular expressions.
-
-=item name_this
-=item set_current_constraint_name
-
-Sets the name of the current constraint being applied.
-
-B<Example>:
-
- sub my_constraint {
-	my @outer_params = @_;
-	return sub {
-		my $dfv = shift;
-		$dfv->set_current_constraint_name('my_constraint');
-		my @params = @outer_params;
-		# do something constraining here...
-	}
- }
-
-By returning a closure which uses this method,  you can build an advanced named
-constraint in your profile, before you actually have access to the DFV object
-that will be used later. See Data::FormValidator::Constraints::Upload for an
-example.
-
-C<name_this> is a provided as a shorter synonym.
-
-=back
-
-The C<meta()> method may also be useful to communicate meta data that
-may have been found. See L<Data::FormValidator::Results> for documentation
-of that method.
-
-=head1  BACKWARDS COMPATIBLITY
-
-Prior to Data::FormValidator 4.00, contraints were specified a bit differently.
-This older style is still supported. 
-
-It was not necessary to explicitly load some constraints into your name space,
-and the names were given as strings, like this:
-
-    constraints  => {
-	    email	      => 'email',
-	    fax		      => 'american_phone',
-	    phone	      => 'american_phone',
-	    state	      => 'state',
-		my_ip_address => 'RE_net_IPv4',
-		other_ip => {
-			constraint => 'RE_net_IPv4',
-			params => [ \'-sep'=> \' ' ],
-		},
-		my_cc_no      => {
-			constraint => 'cc_number',
-			params => [qw/cc_no cc_type/],
-		}
-	},
-
-
-=head1 SEE ALSO
-
-L<Data::FormValidator::Constraints::Upload> - validate the bytes, format and dimensions of file uploads,
-L<Data::FormValidator::Constraints::DateTime> - 
-  A newer DateTime constraint module. May save you a step of tranforming the date into
-  a more useful format after it's validated. 
-L<Data::FormValidator::Constraints::Dates> - the original DFV date constraint module
-L<Regexp::Common> -- lost of useful regular expressions to choose from!
-
-L<Data::FormValidator>
-L<Data::FormValidator::Filters>
-L<Data::FormValidator::ConstraintsFactory>
-
-=head1 CREDITS
-
-Some of those input validation functions have been taken from MiniVend
-by Michael J. Heins
-
-The credit card checksum validation was taken from contribution by
-Bruce Albrecht to the MiniVend program.
-
-=head1 AUTHORS
-
-    Francis J. Lacoste 
-    Michael J. Heins 
-    Bruce Albrecht  
-    Mark Stosberg
-
-=head1 COPYRIGHT
-
-Copyright (c) 1999 iNsu Innovations Inc.
-All rights reserved.
-
-Parts Copyright 1996-1999 by Michael J. Heins 
-Parts Copyright 1996-1999 by Bruce Albrecht  
-Parts Copyright 2005	  by Mark Stosberg
-
-This program is free software; you can redistribute it and/or modify
-it under the terms as perl itself.
-
-=cut

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Constraints.pm (from rev 2163, packages/libdata-formvalidator-perl/trunk/lib/Data/FormValidator/Constraints.pm)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Results.pm
===================================================================
--- packages/libdata-formvalidator-perl/trunk/lib/Data/FormValidator/Results.pm	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Results.pm	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,1222 +0,0 @@
-#
-#    Results.pm - Object which contains validation result.
-#
-#    This file is part of FormValidator.
-#
-#    Author: Francis J. Lacoste <francis.lacoste at iNsu.COM>
-#    Maintainer: Mark Stosberg <mark at summersault.com>
-#
-#    Copyright (C) 2000 iNsu Innovations Inc.
-#
-#    This program is free software; you can redistribute it and/or modify
-#    it under the terms same terms as perl itself.
-#
-use strict;
-
-package Data::FormValidator::Results;
-
-use Carp;
-use Symbol;
-use Data::FormValidator::Filters qw/:filters/;
-use Data::FormValidator::Constraints (qw/:validators :matchers/);
-use vars qw/$AUTOLOAD $VERSION/;
-use overload
-  'bool' => \&_bool_overload_based_on_success,
-  fallback => 1;
-
-$VERSION = 4.13;
-
-=pod
-
-=head1 NAME
-
-Data::FormValidator::Results - results of form input validation.
-
-=head1 SYNOPSIS
-
- 	my $results = Data::FormValidator->check(\%input_hash, \%dfv_profile);
-
-    # Print the name of missing fields
-    if ( $results->has_missing ) {
-	foreach my $f ( $results->missing ) {
-	    print $f, " is missing\n";
-	}
-    }
-
-    # Print the name of invalid fields
-    if ( $results->has_invalid ) {
-	foreach my $f ( $results->invalid ) {
-	    print $f, " is invalid: ", $results->invalid( $f ), "\n";
-	}
-    }
-
-    # Print unknown fields
-    if ( $results->has_unknown ) {
-	foreach my $f ( $results->unknown ) {
-	    print $f, " is unknown\n";
-	}
-    }
-
-    # Print valid fields
-    foreach my $f ( $results->valid() ) {
-        print $f, " =  ", $results->valid( $f ), "\n";
-    }
-
-=head1 DESCRIPTION
-
-This object is returned by the L<Data::FormValidator> C<check> method. 
-It can be queried for information about the validation results.
-
-=cut
-
-sub new {
-    my $proto = shift;
-    my $class = ref $proto || $proto;
-    my ($profile, $data) = @_;
-
-    my $self = bless {}, $class;
-
-    $self->_process( $profile, $data );
-
-    $self;
-}
-
-sub _process {
-    my ($self, $profile, $data) = @_;
-
- 	# Copy data and assumes that all is valid to start with
- 		
-	my %data        = $self->_get_input_as_hash($data);
-    my %valid	    = %data;
-    my @missings    = ();
-    my @unknown	    = ();
-
-	# msgs() method will need access to the profile
-	$self->{profile} = $profile;
-
-	my %imported_validators;
-
-    # import valid_* subs from requested packages
-	foreach my $package (_arrayify($profile->{validator_packages})) {
-		if ( !exists $imported_validators{$package} ) {
-			local $SIG{__DIE__}  = \&confess;
-			eval "require $package";
-			if ($@) {
-				die "Couldn't load validator package '$package': $@";
-			}
-
-			# Perl will die with a nice error message if the package can't be found
-			# No need to go through extra effort here. -mls :)
-			my $package_ref = qualify_to_ref("${package}::");
-			my @subs = grep(/^(valid_|match_|filter_)/,
-			                keys(%{*{$package_ref}}));
-			foreach my $sub (@subs) {
-				# is it a sub? (i.e. make sure it's not a scalar, hash, etc.)
-				my $subref = *{qualify_to_ref("${package}::$sub")}{CODE};
-				if (defined $subref) {
-					*{qualify_to_ref($sub)} = $subref;
-				}
-			}
-			$imported_validators{$package} = 1;
-		}
-	}
-
-	# Apply inconditional filters
-    foreach my $filter (_arrayify($profile->{filters})) {
-		if (defined $filter) {
-			# Qualify symbolic references
-			$filter = (ref $filter eq 'CODE' ? $filter : *{qualify_to_ref("filter_$filter")}{CODE}) ||
-				die "No filter found named: '$filter'";
-			foreach my $field ( keys %valid ) {
-				# apply filter, modifying %valid by reference, skipping undefined values
-				_filter_apply(\%valid,$field,$filter);
-			}
-		}	
-    }
-
-    # Apply specific filters
-    while ( my ($field,$filters) = each %{$profile->{field_filters} }) {
-		foreach my $filter ( _arrayify($filters)) {
-			if (defined $filter) {
-				# Qualify symbolic references
-				$filter = (ref $filter eq 'CODE' ? $filter : *{qualify_to_ref("filter_$filter")}{CODE}) ||
-					die "No filter found named '$filter'";
-				
-				# apply filter, modifying %valid by reference
-				_filter_apply(\%valid,$field,$filter);
-			}	
-		}
-    }   
-
-	# add in specific filters from the regexp map
-	while ( my ($re,$filters) = each %{$profile->{field_filter_regexp_map} }) {
-		my $sub = _create_sub_from_RE($re);
-
-		foreach my $filter ( _arrayify($filters)) {
-			if (defined $filter) {
-				# Qualify symbolic references
-				$filter = (ref $filter eq 'CODE' ? $filter : *{qualify_to_ref("filter_$filter")}{CODE}) ||
-					die "No filter found named '$filter'";
-
-				no strict 'refs';
-
-				# find all the keys that match this RE and apply filters to them
-				for my $field (grep { $sub->($_) } (keys %valid)) {
-					# apply filter, modifying %valid by reference
-					_filter_apply(\%valid,$field,$filter);
-				}
-			}	
-		}
-	}
- 
-    my %required    = map { $_ => 1 } _arrayify($profile->{required});
-    my %optional    = map { $_ => 1 } _arrayify($profile->{optional});
-
-    # loop through and add fields to %required and %optional based on regular expressions   
-    my $required_re = _create_sub_from_RE($profile->{required_regexp});
-    my $optional_re = _create_sub_from_RE($profile->{optional_regexp});
-
-    foreach my $k (keys %valid) {
-       if ($required_re && $required_re->($k)) {
-		  $required{$k} =  1;
-       }
-       
-       if ($optional_re && $optional_re->($k)) {
-		  $optional{$k} =  1;
-       }
-    }
-
-	# handle "require_some"
-	my %require_some;
- 	while ( my ( $field, $deps) = each %{$profile->{require_some}} ) {
-        foreach my $dep (_arrayify($deps)){
-             $require_some{$dep} = 1;
-        }
-    }
-
-	
-	# Remove all empty fields
-	foreach my $field (keys %valid) {
-		if (ref $valid{$field}) {
-			if ( ref $valid{$field} eq 'ARRAY' ) {
-				for (my $i = 0; $i < scalar @{ $valid{$field} }; $i++) {
-					$valid{$field}->[$i] = undef unless (defined $valid{$field}->[$i] and length $valid{$field}->[$i]);
-			    }	
-                # If all fields are empty, we delete it.
-                delete $valid{$field} unless grep { defined $_ } @{$valid{$field}};
-
-			}
-		}
-		else {
-			delete $valid{$field} unless (defined $valid{$field} and length $valid{$field});
-		}
-	}
-
-    # Check if the presence of some fields makes other optional fields required.
-    while ( my ( $field, $deps) = each %{$profile->{dependencies}} ) {
-        if (defined $valid{$field}) {
-			if (ref($deps) eq 'HASH') {
-				foreach my $key (keys %$deps) {
-                    # Handle case of a key with a single value given as an arrayref
-                    # There is probably a better, more general soution to this problem.
-                    my $val_to_compare;
-                    if ((ref $valid{$field} eq 'ARRAY') and (scalar @{ $valid{$field} } == 1)) {
-                        $val_to_compare = $valid{$field}->[0];
-                    }
-                    else {
-                        $val_to_compare = $valid{$field}
-                    }
-
-					if($val_to_compare eq $key){
-						foreach my $dep (_arrayify($deps->{$key})){
-							$required{$dep} = 1;
-						}
-					}
-				}
-			}
-            else {
-                foreach my $dep (_arrayify($deps)){
-                    $required{$dep} = 1;
-                }
-            }
-        }
-    }
-
-    # check dependency groups
-    # the presence of any member makes them all required
-    foreach my $group (values %{ $profile->{dependency_groups} }) {
-       my $require_all = 0;
-       foreach my $field (_arrayify($group)) {
-	  		$require_all = 1 if $valid{$field};
-       }
-       if ($require_all) {
-	  		map { $required{$_} = 1 } _arrayify($group); 
-       }
-    }
-
-    # Find unknown
-    @unknown =
-      grep { not (exists $optional{$_} or exists $required{$_} or exists $require_some{$_} ) } keys %valid;
-    # and remove them from the list
-	foreach my $field ( @unknown ) {
-		delete $valid{$field};
-	}
-
-    # Fill defaults
-    while ( my ($field,$value) = each %{$profile->{defaults}} ) {
-        unless(exists $valid{$field}) {
-            if (ref($value) && ref($value) eq "CODE") {
-                $valid{$field} = $value->($self);
-            } else {
-                $valid{$field} = $value;
-            }
-        }
-	}
-
-    # Check for required fields
-    foreach my $field ( keys %required ) {
-        push @missings, $field unless exists $valid{$field};
-    }
-
-	# Check for the absence of require_some fields
-	while ( my ( $field, $deps) = each %{$profile->{require_some}} ) {
-		my $enough_required_fields = 0;
-		my @deps = _arrayify($deps);
-		# num fields to require is first element in array if looks like a digit, 1 otherwise. 
-		my $num_fields_to_require = ($deps[0] =~ m/^\d+$/) ? $deps[0] : 1;
-		foreach my $dep (@deps){
-			$enough_required_fields++ if exists $valid{$dep};
-		}
-		push @missings, $field unless ($enough_required_fields >= $num_fields_to_require);
-	}
-
-    # add in the constraints from the regexp maps
-    # We don't want to modify the profile, so we use a new variable.
-	$profile->{constraints} ||= {};
-	my $private_constraints = {
-	    %{ $profile->{constraints} }, 	
-		_add_constraints_from_map($profile,'constraint',\%valid),
-	};
-	$profile->{constraint_methods} ||= {};
-	my $private_constraint_methods = {
-	    %{ $profile->{constraint_methods} }, 	
-		_add_constraints_from_map($profile,'constraint_method',\%valid),
-	};
-
-    #Decide which fields to untaint
-    my ($untaint_all, %untaint_hash);
-    if (defined $profile->{untaint_regexp_map} or defined $profile->{untaint_constraint_fields} ) {
-        # first deal with untaint_constraint_fields
-        if (defined($profile->{untaint_constraint_fields})) {
-            if (ref $profile->{untaint_constraint_fields} eq "ARRAY") {
-                foreach my $field (@{$profile->{untaint_constraint_fields}}) {
-                    $untaint_hash{$field} = 1;
-                }
-            }
-            elsif ($valid{$profile->{untaint_constraint_fields}}) {
-                $untaint_hash{$profile->{untaint_constraint_fields}} = 1;
-            }
-        }
-
-        # now look at untaint_regexp_map
-        if(defined($profile->{untaint_regexp_map})) {
-            my @untaint_regexes;
-            if(ref $profile->{untaint_regexp_map} eq "ARRAY") {
-                @untaint_regexes = @{$profile->{untaint_regexp_map}};
-            }
-            else {
-                push(@untaint_regexes, $profile->{untaint_regexp_map});
-            }
-
-            foreach my $regex (@untaint_regexes) {
-                # look at both constraints and constraint_methods
-                foreach my $field (keys %$private_constraints, keys %$private_constraint_methods) {
-                    next if($untaint_hash{$field}); 
-                    $untaint_hash{$field} = 1 if( $field =~ $regex );
-                }
-            }
-        }
-    }
-    elsif ((defined($profile->{untaint_all_constraints}))
-	   && ($profile->{untaint_all_constraints} == 1)) {
-	   $untaint_all = 1;
-    }
-
-	$self->_check_constraints($private_constraints,\%valid,$untaint_all,\%untaint_hash);
-
-	my $force_method_p = 1;
-	$self->_check_constraints($private_constraint_methods,\%valid,$untaint_all,\%untaint_hash, $force_method_p);
-
-    # all invalid fields are removed from valid hash
-	foreach my $field (keys %{ $self->{invalid} }) {
-		delete $valid{$field};
-	}
-
-    # add back in missing optional fields from the data hash if we need to
-	foreach my $field ( keys %data ) {
-		if ($profile->{missing_optional_valid} and $optional{$field} and (not exists $valid{$field})) {
-			$valid{$field} = undef;
-		}
-	}
-
-	my ($missing,$invalid);
-
-	$self->{valid} ||= {};
-    $self->{valid}	=  { %valid , %{$self->{valid}} };
-    $self->{missing}	= { map { $_ => 1 } @missings };
-    $self->{unknown}	= { map { $_ => $data{$_} } @unknown };
-
-}
-
-=pod
-
-=head1  success();
-
-This method returns true if there were no invalid or missing fields,
-else it returns false.
-
-As a shorthand, When the $results object is used in boolean context, it is overloaded
-to use the value of success() instead. That allows creation of a syntax like this one used
-in C<CGI::Application::Plugin::ValidateRM>:
-
- my $results = $self->check_rm('form_display','_form_profile') || return $self->dfv_error_page;
-
-=cut
-
-sub success {
-    my $self = shift;
-    return !($self->has_invalid || $self->has_missing);
-}
-
-=head1  valid( [[field] [, value]] );
-
-In an array context with no arguments, it returns the list of fields which 
-contain valid values:
-
- @all_valid_field_names = $r->valid;
-
-In a scalar context with no arguments, it returns an hash reference which 
-contains the valid fields as keys and their input as values:
-
- $all_valid_href = $r->valid;
-
-If called with one argument in scalar context, it returns the value of that
-C<field> if it contains valid data, C<undef> otherwise. The value will be an
-array ref if the field had multiple values:
-
- $value = $r->valid('field');
-
-If called with one argument in array conect, it returns the values of C<field> 
-as an array:
-
- @values = $r->valid('field');
-
-If called with two arguments, it sets C<field> to C<value> and returns C<value>.
-This form is useful to alter the results from within some constraints.
-See the L<Data::FormValidator::Constraints> documentation.
-
- $new_value = $r->valid('field',$new_value);
-
-=cut
-
-sub valid {
-	my $self = shift;
-	my $key = shift;
-	my $val = shift;
-	$self->{valid}{$key} = $val if defined $val;
-
-    if (defined $key) {
-        return wantarray ? _arrayify($self->{valid}{$key}) : $self->{valid}{$key};
-    }
-
-    # If we got this far, there were no arguments passed. 
-	return wantarray ? keys %{ $self->{valid} } : $self->{valid};
-}
-
-
-=pod
-
-=head1 has_missing()
-
-This method returns true if the results contain missing fields.
-
-=cut
-
-sub has_missing {
-    return scalar keys %{$_[0]{missing}};
-}
-
-=pod
-
-=head1 missing( [field] )
-
-In an array context it returns the list of fields which are missing.
-In a scalar context, it returns an array reference to the list of missing fields.
-
-If called with an argument, it returns true if that C<field> is missing,
-undef otherwise.
-
-=cut
-
-sub missing {
-    return $_[0]{missing}{$_[1]} if (defined $_[1]);
-
-    wantarray ? keys %{$_[0]{missing}} : [ keys %{$_[0]{missing}} ];
-}
-
-
-=pod
-
-=head1 has_invalid()
-
-This method returns true if the results contain fields with invalid
-data.
-
-=cut
-
-sub has_invalid {
-    return scalar keys %{$_[0]{invalid}};
-}
-
-=pod
-
-=head1 invalid( [field] )
-
-In an array context, it returns the list of fields which contains invalid value. 
-
-In a scalar context, it returns an hash reference which contains the invalid
-fields as keys, and references to arrays of failed constraints as values.
-
-If called with an argument, it returns the reference to an array of failed 
-constraints for C<field>.
-
-=cut
-
-sub invalid {
-	my $self = shift;
-	my $field = shift;
-    return $self->{invalid}{$field} if defined $field;
-
-    wantarray ? keys %{$self->{invalid}} : $self->{invalid};
-}
-
-=pod
-
-=head1 has_unknown()
-
-This method returns true if the results contain unknown fields.
-
-=cut
-
-sub has_unknown {
-    return scalar keys %{$_[0]{unknown}};
-
-}
-
-=pod
-
-=head1 unknown( [field] )
-
-In an array context, it returns the list of fields which are unknown. 
-In a scalar context, it returns an hash reference which contains the unknown 
-fields and their values.
-
-If called with an argument, it returns the value of that C<field> if it
-is unknown, undef otherwise.
-
-=cut
-
-sub unknown {
-    return (wantarray ? _arrayify($_[0]{unknown}{$_[1]}) : $_[0]{unknown}{$_[1]})
-      if (defined $_[1]);
-
-    wantarray ? keys %{$_[0]{unknown}} : $_[0]{unknown};
-}
-
-
-=pod
-
-=head1 msgs([config parameters])
-
-This method returns a hash reference to error messages. The exact format
-is determined by parameters in the C<msgs> area of the validation profile,
-described in the L<Data::FormValidator> documentation.
-
-B<NOTE:> the C<msgs> parameter in the profile can take a code reference as a
-value, allowing complete control of how messages are generated. If such a code
-reference was provided there, it will be called here instead of the usual
-processing, described below. It will receive as arguments the L<Data::FormValidator::Results>
-object and a hash reference of control parameters.
-
-The hashref passed in should contain the same options that you can define in
-the validation profile. This allows you to separate the controls for message
-display from the rest of the profile. While validation profiles may be
-different for every form, you may wish to format messages the same way across
-many projects.
-
-Controls passed into the <msgs> method will be applied first, followed by ones
-applied in the profile. This allows you to keep the controls you pass to
-C<msgs> as "global" and override them in a specific profile if needed. 
-
-=cut
-
-sub msgs {
-  my $self = shift;
-  my $msgs = $self->{profile}{msgs} || {};
-  if ((ref $msgs eq 'CODE')) {
-    return $msgs->($self, at _);
-  } else {
-    return $self->_generate_msgs(@_);
-  }
-}
-
-
-sub _generate_msgs {
-	my $self = shift;
-	my $controls = shift || {};
-	if (defined $controls and ref $controls ne 'HASH') {
-		die "$0: parameter passed to msgs must be a hash ref";
-	}
-
-
-	# Allow msgs to be called more than one to accumulate error messages
-	$self->{msgs} ||= {};
-	$self->{profile}{msgs} ||= {};
-	$self->{msgs} = { %{ $self->{msgs} }, %$controls };
-
-    # Legacy typo support. 
-    for my $href ($self->{msgs}, $self->{profile}{msgs}) {
-        if (
-             (not defined $href->{invalid_separator}) 
-             &&  (defined $href->{invalid_seperator})
-         ) {
-            $href->{invalid_separator} = $href->{invalid_seperator};
-        }
-    }
-
-	my %profile = (
-		prefix	=> '',
-		missing => 'Missing',
-		invalid	=> 'Invalid',
-		invalid_separator => ' ',
-
-		format  => '<span style="color:red;font-weight:bold"><span class="dfv_errors">* %s</span></span>',
-		%{ $self->{msgs} },
-		%{ $self->{profile}{msgs} },
-	);
-
-
-	my %msgs = ();
-
-	# Add invalid messages to hash
-		#  look at all the constraints, look up their messages (or provide a default)
-		#  add field + formatted constraint message to hash
-	if ($self->has_invalid) {
-		my $invalid = $self->invalid;
-		for my $i ( keys %$invalid ) {
-			$msgs{$i} = join $profile{invalid_separator}, map {
-				_error_msg_fmt($profile{format},($profile{constraints}{$_} || $profile{invalid}))
-				} @{ $invalid->{$i} };
-		}
-	}
-
-	# Add missing messages, if any
-	if ($self->has_missing) {
-		my $missing = $self->missing;
-		for my $m (@$missing) {
-			$msgs{$m} = _error_msg_fmt($profile{format},$profile{missing});
-		}
-	}
-
-	my $msgs_ref = prefix_hash($profile{prefix},\%msgs);
-
-    if (! $self->success) {
-    	$msgs_ref->{ $profile{any_errors} } = 1 if defined $profile{any_errors};
-    }
-
-	return $msgs_ref;
-
-}
-
-=pod
-
-=head1 meta()
-
-In a few cases, a constraint may discover meta data that is useful
-to access later. For example, when using L<Data::FormValidator::Constraints::Upload>, several bits of meta data are discovered about files in the process
-of validating. These can include "bytes", "width", "height" and "extension".
-The C<meta()> function is used by constraint methods to set this data. It's
-also used to access this data. Here are some examples.
-
- # return all field names that have meta data
- my @fields = $results->meta();
-
- # To retrieve all meta data for a field:
- $meta_href = $results->meta('img');
- 
- # Access a particular piece: 
- $width = $results->meta('img')->{width};
- 
-Here's how to set some meta data. This is useful to know if you are
-writing your own complex constraint.
-
-	$self->meta('img', {
-		width  => '50',
-		height => '60',
-	});
-
-This function does not currently support multi-valued fields. If it 
-does in the future, the above syntax will still work.
-
-=cut
-
-sub meta {
-	my $self  = shift;
-	my $field = shift;
-	my $data  = shift;
-
-	# initialize if it's the first call
-	$self->{__META} ||= {};
-
-	if ($data) {
-		(ref $data eq 'HASH') or die 'meta: data passed not a hash ref'; 
-        $self->{__META}{$field} = $data;
-	}
-
-
-	# If we are passed a field, return data for that field
-	if ($field) {
-		return $self->{__META}{$field};
-	}
-	# Otherwise return a list of all fields that have meta data
-	else {
-		return keys %{ $self->{__META} };
-	}
-}
-
-# These are documented in ::Constraints, in the section
-# on writing your own routines. It was more intuitive
-# for the user to look there. 
-
-sub get_input_data {
-	my $self = shift;
-    my %p = @_;
-    if ($p{as_hashref}) {
-        my %hash = $self->_get_input_as_hash( $self->{__INPUT_DATA} );
-        return \%hash;
-    }
-    else {
-	    return $self->{__INPUT_DATA};
-    }
-}
-
-sub get_current_constraint_field {
-	my $self = shift;
-	return $self->{__CURRENT_CONSTRAINT_FIELD};
-}
-
-sub get_current_constraint_value {
-	my $self = shift;
-	return $self->{__CURRENT_CONSTRAINT_VALUE};
-}
-
-sub get_current_constraint_name {
-	my $self = shift;
-	return $self->{__CURRENT_CONSTRAINT_NAME};
-}
-
-sub set_current_constraint_name {
-	my $self = shift;
-	my $value = shift;
-	$self->{__CURRENT_CONSTRAINT_NAME} = $value;
-} 
-# same as above
-sub name_this {
-	my $self = shift;
-	my $value = shift;
-	$self->{__CURRENT_CONSTRAINT_NAME} = $value;
-} 
-
-# INPUT: prefix_string, hash reference
-# Copies the hash and prefixes all keys with prefix_string
-# OUTPUT: hash refence
-sub prefix_hash {
-	my ($pre,$href) = @_;
-	die "prefix_hash: need two arguments" unless (scalar @_ == 2);
-	die "prefix_hash: second argument must be a hash ref" unless (ref $href eq 'HASH');
-	my %out; 
-	for (keys %$href) {
-		$out{$pre.$_} = $href->{$_};
-	}
-	return \%out;
-}
-
-
-# We tolerate two kinds of regular expression formats
-# First, the preferred format made with "qr", matched using a leading paren
-# Also, we accept the deprecated format given as strings: 'm/old/'
-# (which must start with a slash or "m", not a paren)
-sub _create_sub_from_RE {
-	my $re = shift || return undef;
-	my $untaint_this = shift;
-    my $force_method_p = shift;
-
-	my $sub;
-	# If it's "qr" style
-	if (substr($re,0,1) eq '(') {
-		$sub = sub { 
-            # With methods, the value is the second argument
-            my $val = $force_method_p ? $_[1] : $_[0];
-			my ($match) = ($val =~ $re); 
-			if ($untaint_this && defined $match) {
-                # pass the value through a RE that matches anything to untaint it.
-                my ($untainted) = ($&  =~ m/(.*)/s);
-				return $untainted;
-			}
-			else {
-				return $match;
-			}
-		};
-
-	}
-	else {
-        local $SIG{__DIE__}  = \&confess;
-        my $return_code = ($untaint_this) ? '; return ($& =~ m/(.*)/s)[0] if defined($`);' : '';
-        # With methods, the value is the second argument
-        if ($force_method_p) {
-            $sub = eval 'sub { $_[1] =~ '.$re.$return_code. '}';
-        }
-        else {
-            $sub = eval 'sub { $_[0] =~ '.$re.$return_code. '}';
-        }
-	    die "Error compiling regular expression $re: $@" if $@;
-	}
-	return $sub;
-}
-
-
-sub _error_msg_fmt  {
-	my ($fmt,$msg) = @_;
-	$fmt ||= 
-			'<span style="color:red;font-weight:bold"><span class="dfv_errors">* %s</span></span>';
-	($fmt =~ m/%s/) || die 'format must contain %s'; 
-	return sprintf $fmt, $msg;
-}
-
-
-
-# takes string or array ref as input
-# returns array
-sub _arrayify {
-   # if the input is undefined, return an empty list
-   my $val = shift;
-   defined $val or return ();
-
-   if ( ref $val eq 'ARRAY' ) {
-		# if it's a reference, return an array unless it points an empty array. -mls
-                return (defined $val->[0]) ? @$val : ();
-   } 
-   else {
-		# if it's a string, return an array unless the string is missing or empty. -mls
-                return (length $val) ? ($val) : ();
-   }
-}
-
-# apply filter, modifying %valid by reference
-# We don't bother trying to filter undefined fields.
-# This prevents warnings from Perl. 
-sub _filter_apply {
-	my ($valid,$field,$filter) = @_;
-	die 'wrong number of arguments passed to _filter_apply' unless (scalar @_ == 3);
-	if (ref $valid->{$field} eq 'ARRAY') {
-		for (my $i = 0; $i < @{ $valid->{$field} }; $i++) {
-			$valid->{$field}->[$i] = $filter->( $valid->{$field}->[$i] ) if defined $valid->{$field}->[$i];
-		}
-	}
-	else {
-		$valid->{$field} = $filter->( $valid->{$field} ) if defined $valid->{$field};
-	}
-}
-
-# =head2 _constraint_hash_build()
-# 
-# $constraint_href = $self->_constraint_hash_build($spec,$untaint_p)
-#
-# Input:
-#   - $spec           # Any constraint valid in the profile
-#   - $untaint        # bool for whether we could try to untaint the field. 
-#   - $force_method_p # bool for if it's  a method ?
-#
-# Output:
-#  - $constraint_hashref
-#    Keys are as follows:  
-# 		constraint - the constraint as coderef
-# 		name	   - the constraint name, if we know it. 
-# 		params	   - 'params', as given in the hashref style of specifying a constraint
-# 		is_method  - bool for whether this was a 'constraint' or 'constraint_method'
-
-sub _constraint_hash_build {
-	my ($self,$constraint_spec,$untaint_this,$force_method_p) = @_;
-	die "_constraint_hash_build received wrong number of arguments" unless (scalar @_ == 4);
-
-	my	$c = {
-			name 		=> $constraint_spec,
-			constraint  => $constraint_spec, 
-		};
-
-   # constraints can be passed in directly via hash
-	if (ref $c->{constraint} eq 'HASH') {
-			$c->{constraint} = ($constraint_spec->{constraint_method} || $constraint_spec->{constraint});
-			$c->{name}       = $constraint_spec->{name};
-			$c->{params}     = $constraint_spec->{params};
-			$c->{is_method}  = 1 if $constraint_spec->{constraint_method};
-	}
-
-	# Check for regexp constraint
-	if ((ref $c->{constraint} eq 'Regexp')
-			or ( $c->{constraint} =~ m@^\s*(/.+/|m(.).+\2)[cgimosx]*\s*$@ )) {
-		$c->{constraint} = _create_sub_from_RE($c->{constraint},$untaint_this,$force_method_p);
-	}
-	# check for code ref
-	elsif (ref $c->{constraint} eq 'CODE') {
-		# do nothing, it's already a code ref
-	}
-	else {
-		# provide a default name for the constraint if we don't have one already
-		$c->{name} ||= $c->{constraint};
-
-		#If untaint is turned on call match_* sub directly. 
-		if ($untaint_this) {
-			my $routine = 'match_'.$c->{constraint};			
-			my $match_sub = *{qualify_to_ref($routine)}{CODE};
-			if ($match_sub) {
-				$c->{constraint} = $match_sub; 
-			}
-			# If the constraint name starts with RE_, try looking for it in the Regexp::Common package
-			elsif ($c->{constraint} =~ m/^RE_/) {
-				local $SIG{__DIE__}  = \&confess;
-				$c->{is_method} = 1;
-				$c->{constraint} = eval 'sub { &_create_regexp_common_constraint(@_)}' 
-					|| die "could not create Regexp::Common constraint: $@";
-			} else {
-				die "No untainting constraint found named $c->{constraint}";
-			}
-		}
-		else {
-			# try to use match_* first
-			my $routine = 'match_'.$c->{constraint};			
-			if (defined *{qualify_to_ref($routine)}{CODE}) {
-				local $SIG{__DIE__}  = \&confess;
-				$c->{constraint} = eval 'sub { no strict qw/refs/; return defined &{"match_'.$c->{constraint}.'"}(@_)}';
-			}
-			# match_* doesn't exist; if it is supposed to be from the
-			# validator_package(s) there may be only valid_* defined
-			elsif (my $valid_sub = *{qualify_to_ref('valid_'.$c->{constraint})}{CODE}) {
-				$c->{constraint} = $valid_sub;
-			}
-			# Load it from Regexp::Common 
-			elsif ($c->{constraint} =~ m/^RE_/) {
-				local $SIG{__DIE__}  = \&confess;
-				$c->{is_method} = 1;
-				$c->{constraint} = eval 'sub { return defined &_create_regexp_common_constraint(@_)}' ||
-					die "could not create Regexp::Common constraint: $@";
-			}
-			else {
-				die "No constraint found named '$c->{name}'";
-			}
-		}
-	}
-
-	# Save the current constraint name for later
-	$self->{__CURRENT_CONSTRAINT_NAME} = $c->{name};
-
-	return $c;
-
-}
-
-# =head2 _constraint_input_build()
-# 
-#  @params = $self->constraint_input_build($c,$value,$data);
-# 
-# Build in the input that passed into the constraint. 
-# 
-# =cut
-
-sub _constraint_input_build {
-	my ($self,$c,$value,$data) = @_;
-	die "_constraint_input_build received wrong number of arguments" unless (scalar @_ == 4);
-
-	my @params;
-	if (defined $c->{params}) {
-		foreach my $fname (_arrayify($c->{params})) {
-			# If the value is passed by reference, we treat it literally
-			push @params, (ref $fname) ? $fname : $data->{$fname}
-		}
-	}
-	else {
-		push @params, $value;
-	}
-
-	unshift @params, $self if $c->{is_method};
-	return @params;
-}
-
-# =head2 _constraint_check_match()
-#
-# ($value,$failed_href) = $self->_constraint_check_match($c,\@params,$untaint_this);
-#
-# This is the routine that actually, finally, checks if a constraint passes or fails.
-#
-# Input:
-#   - $c,            a constraint hash, as returned by C<_constraint_hash_build()>.
-#   - \@params,      params to pass to the constraint, as prepared by C<_constraint_input_build()>. 
-#   - $untaint_this  bool if we untaint successful constraints. 
-#
-# Output:
-#  - $value          the value if successful
-#  - $failed_href    a hashref with the following keys:
-#		- failed     bool for failure or not
-#	    - name	     name of the failed constraint, if known. 
-
-sub _constraint_check_match {
-	my 	($self,$c,$params,$untaint_this) = @_;
-	die "_constraint_check_match received wrong number of arguments" unless (scalar @_ == 4);
-
-    my $match = $c->{constraint}->( @$params );
-
-    # We need to make this distinction when untainting,
-    # to allow untainting values that are defined but not true,
-    # such as zero.
-    my $success;
-    if (defined $match) {
-       $success =  ($untaint_this) ? length $match : $match;
-    }
-
-	my $failed = 1 unless $success;
-	return (
-		$match,
-		{
-			failed  => $failed,
-			name	=> $self->{__CURRENT_CONSTRAINT_NAME},
-		},
-	);
-}
-
-# Figure out whether the data is a hash reference of a param-capable object and return it has a hash
-sub _get_input_as_hash {
-	my ($self,$data) = @_;
-	$self->{__INPUT_DATA} = $data;
-	require UNIVERSAL;
-
-    # This checks whether we have an object that supports param
-    if (UNIVERSAL::can($data,'param') ) {
-		my %return;
-		foreach my $k ($data->param()){
-			# we expect param to return an array if there are multiple values
-			my @v = $data->param($k);
-			$return{$k} = scalar(@v)>1 ? \@v : $v[0];
-		}
-		return %return;
-	}
-	# otherwise, it's already a hash reference
-    elsif (ref $data eq 'HASH') {
-		return %$data;	
-    }
-	else {
-		die "Data::FormValidator->validate() or check() called with invalid input data structure.";
-	}
-}
-
-# A newer version of this logic now exists in Constraints.pm in the AUTOLOADing section
-# This is is used to support the older param passing style. Eg:
-#
-# {
-#	constraint => 'RE_foo_bar',
-#	params => [ \'zoo' ]
-#  }
-#
-# Still, it's possble, the two bits of logic could be refactored into one location if you cared
-# to do that. 
-
-sub _create_regexp_common_constraint  {
-	# this should work most of the time and is useful for preventing warnings
-
-	# prevent name space clashes
-    package Data::FormValidator::Constraints::RegexpCommon;		
-	
-	require Regexp::Common;
-	import  Regexp::Common 'RE_ALL';
-
-	my $self = shift;
-	my $re_name = $self->get_current_constraint_name;
-	# deference all input
-	my @params = map {$_ = $$_ if ref $_ }  @_;
-
-	no strict "refs";
-	my $re = &$re_name(-keep=>1, at params) || die 'no matching Regexp::Common routine found';
-	return ($self->get_current_constraint_value =~ qr/^$re$/) ? $1 : undef; 
-}
-
-# _add_constraints_from_map($profile,'constraint',\%valid);
-# Returns:
-#  - a hash to add to either 'constraints' or 'constraint_methods'
-
-sub _add_constraints_from_map {
-	die "_add_constraints_from_map: need 3 arguments" unless (scalar @_ == 3);
-	my ($profile, $name, $valid) = @_;
-	($name =~ m/^constraint(_method)?$/) || die "unexpected input.";
-
-	my $key_name = $name.'s';
-	my $map_name = $name.'_regexp_map';
-
-	my %result = ();
-	foreach my $re (keys %{ $profile->{$map_name} }) {
-		my $sub = _create_sub_from_RE($re);
-
-		# find all the keys that match this RE and add a constraint for them
-		for my $key (keys %$valid) {
-			if ($sub->($key)) {
-					my $cur = $profile->{$key_name}{$key};
-					my $new = $profile->{$map_name}{$re};
-					# If they already have an arrayref of constraints, add to the list
-					if (ref $cur eq 'ARRAY') {
-						push @{ $result{$key} }, $new;
-					} 
-					# If they have a single constraint defined, create an array ref with with this plus the new one
-					elsif ($cur) {
-						$result{$key} = [$cur,$new];
-					}
-					# otherwise, a new constraint is created with this as the single constraint
-					else {
-						$result{$key} = $new;
-					}
-					warn "$map_name: $key matches\n" if $profile->{debug};
-				}
-			}
-	}
-	return %result;
-}
-
-sub _bool_overload_based_on_success {
-    my $results = shift;
-    return $results->success()
-}
-
-# =head2 _check_constraints()
-#
-# $self->_check_constraints(
-#	$profile->{constraint_methods},
-#	\%valid, 
-#	$untaint_all
-#	\%untaint_hash
-#	$force_method_p
-#);
-#
-# Input:
-#  - 'constraints' or 'constraint_methods' hashref
-#  - hashref of valid data
-#  - bool to try to untaint everything
-#  - hashref of things to untaint
-#  - bool if all constraints should be treated as methods. 
-	
-sub _check_constraints {
-	my ($self, 
-	    $constraint_href, 
-		$valid, 
-		$untaint_all,
-		$untaint_href,
-		$force_method_p) = @_; 
-
-	while ( my ($field,$constraint_list) = each %$constraint_href ) {
-		next unless exists $valid->{$field};
-
-		my $is_constraint_list = 1 if (ref $constraint_list eq 'ARRAY');
-		my $untaint_this = ($untaint_all || $untaint_href->{$field} || 0);
-
-		my @invalid_list;
-        # used to insure we only bother recording each failed constraint once
-		my %constraints_seen;
-		foreach my $constraint_spec (_arrayify($constraint_list)) {
-
-			# set current constraint field for use by get_current_constraint_field
-			$self->{__CURRENT_CONSTRAINT_FIELD} = $field;
-
-			# Initialize the current constraint name to undef, to prevent it
-			# from being accidently shared
-			$self->{__CURRENT_CONSTRAINT_NAME} = undef;
-
-			my $c = $self->_constraint_hash_build($constraint_spec,$untaint_this, $force_method_p);
-			$c->{is_method} = 1 if $force_method_p;
-
-			my $is_value_list = 1 if (ref $valid->{$field} eq 'ARRAY');
-            my %param_data = ( $self->_get_input_as_hash($self->get_input_data) , %$valid );
-			if ($is_value_list) {
-				foreach (my $i = 0; $i < scalar @{ $valid->{$field}} ; $i++) {
-                    if( !exists $constraints_seen{\$c} ) {
-
-                        my @params = $self->_constraint_input_build($c,$valid->{$field}->[$i],\%param_data);
-
-                        # set current constraint field for use by get_current_constraint_value
-                        $self->{__CURRENT_CONSTRAINT_VALUE} = $valid->{$field}->[$i];
-
-                        my ($match,$failed) = $self->_constraint_check_match($c,\@params,$untaint_this);
-                        if ($failed->{failed}) {
-                            push @invalid_list, $failed;
-                            $constraints_seen{\$c} = 1;
-                        }
-                        else {
-                            $valid->{$field}->[$i] = $match if $untaint_this;
-                        }
-                    }
-				}
-			}
-			else {
-				my @params = $self->_constraint_input_build($c,$valid->{$field},\%param_data);
-
-				# set current constraint field for use by get_current_constraint_value
-				$self->{__CURRENT_CONSTRAINT_VALUE} = $valid->{$field};
-
-				my ($match,$failed) = $self->_constraint_check_match($c,\@params,$untaint_this);
-				if ($failed->{failed}) {
-					push @invalid_list, $failed
-				}
-				else {
-					$valid->{$field} = $match if $untaint_this;
-				}
-			}
-	   }
-
-		if (@invalid_list) {
-			my @failed = map { $_->{name} } @invalid_list;
-			push @{ $self->{invalid}{$field}  }, @failed;
-            # the older interface to validate returned things differently
-			push @{ $self->{validate_invalid} }, $is_constraint_list ? [$field, @failed] : $field;
-		}
-	}
-}
-
-1;
-
-__END__
-
-=pod
-
-=head1 SEE ALSO
-
-Data::FormValidator, Data::FormValidator::Filters,
-Data::FormValidator::Constraints, Data::FormValidator::ConstraintsFactory
-
-=head1 AUTHOR
-
-Author: Francis J. Lacoste <francis.lacoste at iNsu.COM>
-Maintainer: Mark Stosberg <mark at summersault.com> 
-
-=head1 COPYRIGHT
-
-Copyright (c) 1999,2000 iNsu Innovations Inc.
-All rights reserved.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms as perl itself.
-
-=cut

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator/Results.pm (from rev 2163, packages/libdata-formvalidator-perl/trunk/lib/Data/FormValidator/Results.pm)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator.pm
===================================================================
--- packages/libdata-formvalidator-perl/trunk/lib/Data/FormValidator.pm	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator.pm	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,1214 +0,0 @@
-
-#    FormValidator.pm - Object that validates form input data.
-#
-#    This file is part of Data::FormValidator.
-#
-#    Author: Francis J. Lacoste 
-#    Maintainer: Mark Stosberg <mark at stosberg.com>
-#
-#    Copyright (C) 1999 Francis J. Lacoste, iNsu Innovations
-#    Parts Copyright 1996-1999 by Michael J. Heins 
-#    Parts Copyright 1996-1999 by Bruce Albrecht  
-#    Parts Copyright 2001-2005 by Mark Stosberg 
-#
-#    Parts of this module are based on work by
-#    Bruce Albrecht,  contributed to
-#    MiniVend.
-#
-#    Parts also based on work by Michael J. Heins 
-#
-#    This program is free software; you can redistribute it and/or modify
-#    it under the terms same terms as perl itself.
-#
-
-package Data::FormValidator;
-
-use 5.005; # for "qr" support, which isn't strictly required. 
-
-use Data::FormValidator::Results;
-use Data::FormValidator::Filters (qw/:filters/);
-use Data::FormValidator::Constraints (qw/:validators :matchers/);
-
-use vars qw( $VERSION $AUTOLOAD @ISA @EXPORT_OK %EXPORT_TAGS );
-
-$VERSION = '4.13';
-
-require Exporter;
- at ISA = qw(Exporter);
-
-%EXPORT_TAGS = (
-    filters => [qw/
-        filter_alphanum
-        filter_decimal
-        filter_digit
-        filter_dollars
-        filter_integer
-        filter_lc
-        filter_neg_decimal
-        filter_neg_integer
-        filter_phone
-        filter_pos_decimal
-        filter_pos_integer
-        filter_quotemeta
-        filter_sql_wildcard
-        filter_strip
-        filter_trim
-        filter_uc
-        filter_ucfirst
-    /],
-    validators => [qw/
-        valid_american_phone
-        valid_cc_exp
-        valid_cc_number
-        valid_cc_type
-        valid_email
-        valid_ip_address
-        valid_phone
-        valid_postcode
-        valid_province
-        valid_state
-        valid_state_or_province
-        valid_zip
-        valid_zip_or_postcode
-    /],
-    matchers => [qw/
-        match_american_phone
-        match_cc_exp
-        match_cc_number
-        match_cc_type
-        match_email
-        match_ip_address
-        match_phone
-        match_postcode
-        match_province
-        match_state
-        match_state_or_province
-        match_zip
-        match_zip_or_postcode
-    /],        
-);
- at EXPORT_OK = (@{ $EXPORT_TAGS{filters} }, @{ $EXPORT_TAGS{validators} }, @{ $EXPORT_TAGS{matchers} });
-
-
-use strict;
-use Symbol;
-
-
-sub DESTROY {}
-
-=pod
-
-=head1 NAME
-
-Data::FormValidator - Validates user input (usually from an HTML form) based
-on input profile.
-
-=head1 SYNOPSIS
-
- use Data::FormValidator;
- 
- my $results = Data::FormValidator->check(\%input_hash, \%dfv_profile);
- 
- if ($results->has_invalid or $results->has_missing) {
-     # do something with $results->invalid, $results->missing
-     # or  $results->msgs
- }
- else {
-     # do something with $results->valid
- }
-
-
-=head1 DESCRIPTION
-
-Data::FormValidator's main aim is to make input validation expressible in a
-simple format.
-
-Data::FormValidator lets you define profiles which declare the
-required and optional fields and any constraints they might have.
-
-The results are provided as an object which makes it easy to handle 
-missing and invalid results, return error messages about which constraints
-failed, or process the resulting valid data.
-
-=cut
-
-sub new {
-    my $proto = shift;
-    my $profiles_or_file = shift;
-    my $defaults = shift;
-
-    my $class = ref $proto || $proto;
-
-    if ($defaults) {
-        ref $defaults eq 'HASH' or 
-            die 'second argument to new must be a hash ref';
-    }
-
-    my ($file, $profiles);
-
-    if (ref $profiles_or_file) {
-        $profiles = $profiles_or_file;
-    }
-    else {
-        $file = $profiles_or_file;
-    }
-
-
-    bless { 
-        profile_file => $file,
-        profiles     => $profiles,
-        defaults     => $defaults,
-    }, $class;
-}
-
-=head1 VALIDATING INPUT
-
-=head2 check()
-
- my $results = Data::FormValidator->check(\%input_hash, \%dfv_profile);
-
-C<check> is the recommended method to use to validate forms. It returns it's results as a
-L<Data::FormValidator::Results|Data::FormValidator::Results> object.  A
-deprecated method C<validate> is also available, returning it's results as an
-array described below.
-
- use Data::FormValidator;
- my $results = Data::FormValidator->check(\%input_hash, \%dfv_profile);
-
-Here, C<check()> is used as a class method, and takes two required parameters. 
-
-The first a reference to the data to be be validated. This can either be a hash
-reference, or a CGI.pm-like object. In particular, the object must have a param()
-method that works like the one in CGI.pm does. CGI::Simple and Apache::Request
-objects are known to work in particular. Note that if you use a hash reference,
-multiple values for a single key should be presented as an array reference.
-
-The second argument is a reference to the profile you are validating.
-
-=head2 validate()
-
-    my( $valids, $missings, $invalids, $unknowns ) = 
-        Data::FormValidator->validate( \%input_hash, \%dfv_profile);
-
-C<validate()> provides a deprecated alternative to C<check()>. It has the same input
-syntax, but returns a four element array, described as follows
-
-=over
-
-=item valids
-
-This is a hash reference to the valid fields which were submitted in
-the data. The data may have been modified by the various filters specified.
-
-=item missings
-
-This is a reference to an array which contains the name of the missing
-fields. Those are the fields that the user forget to fill or filled
-with spaces. These fields may comes from the I<required> list or the
-I<dependencies> list.
-
-=item invalids
-
-This is a reference to an array which contains the name of the fields which
-failed one or more of their constraint checks. If there are no invalid fields,
-an empty arrayref will be returned. 
-
-Fields defined with multiple constraints will have an array ref returned in the
- at invalids array instead of a string. The first element in this array is the
-name of the field, and the remaining fields are the names of the failed
-constraints. 
-
-=item unknowns
-
-This is a list of fields which are unknown to the profile. Whether or
-not this indicates an error in the user input is application
-dependant.
-
-=back
-
-=head2 new()
-
-Using C<new()> is only needed for advanced usage, including these cases:
-
-=over
-
-=item o
-
-Loading more than one profile at a time. Then you can select the profile you
-want by name later with C<check()>. Here's an example:
-
- my $dfv = Data::FormValidator->new({
-    profile_1 => { # usual profile definition here },
-    profile_2 => { # another profile definition },
- });
-
-
-As illustrated, multiple profiles are defined through a hash ref whose keys point
-to profile definitions.
-
-You can also load several profiles from a file, by defining several profiles as shown above
-in an external file. Then just pass in the name of the file:
-
- my $dfv = Data::FormValidator->new('/path/to/profiles.pl');
-
-If the input profile is specified as a file name, the profiles will be reread
-each time that the disk copy is modified.
-
-Now when calling C<check()>, you just need to supply the profile name:
-
- my $results = $dfv->check(\%input_hash,'profile_1');
-
-=item o
-
-Applying defaults to more than one input profile. There are some parts 
-of the validation profile that you might like to re-use for many form
-validations. 
-
-To facilitate this, C<new()> takes a second argument, a hash reference. Here
-the usual input profile definitions can be made. These will act as defaults for
-any subsequent calls to C<check()> on this object.
-
-Currently the logic for this is very simple. Any definition of a key in your
-validation profile will completely overwrite your default value. 
-
-This means you can't define two keys for C<constraint_regexp_map> and expect
-they will always be there. This kind of feature may be added in the future.
-
-The exception here is definitions for your C<msgs> key. You will safely  
-be able to define some defaults for this key and not have them entirely clobbered 
-just because C<msgs> was defined in a validation profile.
-
-One way to use this feature is to create your own sub-class that always provides
-your defaults to C<new()>. 
-
-Another option is to create your own wrapper routine which provides these defaults to 
-C<new()>.  Here's an example of a routine you might put in a
-L<CGI::Application|CGI::Application> super-class to make use of this feature:
-
- # Always use the built-in CGI object as the form data
- # and provide some defaults to new constructor
- sub check_form {
-     my $self = shift;
-     my $profile = shift 
-        || die 'check_form: missing required profile';
- 
-     require Data::FormValidator;
-     my $dfv = Data::FormValidator->new({},{ 
-        # your defaults here
-     });
-     return $dfv->check($self->query,$profile);
- }
-
-
-=back
-
-=cut
-
-sub validate {
-    my ($self,$data,$name) = @_;
-
-    my $data_set = $self->check( $data,$name );
-
-    my $valid   = $data_set->valid();
-    my $missing = $data_set->missing();
-    my $invalid = $data_set->{validate_invalid} || [];
-    my $unknown = [ $data_set->unknown ];
-
-    return ( $valid, $missing, $invalid, $unknown );
-}
-
-sub check {
-    my ( $self, $data, $name ) = @_;
-    
-    # check can be used as a class method for simple cases
-    if (not ref $self) {
-        my $class = $self;
-        $self = {};
-        bless $self, $class;
-    }
-
-    my $profile;
-    if ( ref $name ) {
-        $profile = $name;
-    } else {
-        $self->load_profiles;
-        $profile = $self->{profiles}{$name};
-        die "No such profile $name\n" unless $profile;
-    }
-    die "input profile must be a hash ref" unless ref $profile eq "HASH";
-
-    # add in defaults from new(), if any
-    if ($self->{defaults}) {
-        $profile = { %{$self->{defaults}}, %$profile };
-    }
-    
-    # check the profile syntax or die with an error. 
-    _check_profile_syntax($profile);
-
-    my $results = Data::FormValidator::Results->new( $profile, $data );
-
-    # As a special case, pass through any defaults for the 'msgs' key.
-    $results->msgs($self->{defaults}->{msgs}) if $self->{defaults}->{msgs};
-
-    return $results;
-}
-
-=head1 INPUT PROFILE SPECIFICATION
-
-An input profile is a hash reference containing one or more of the following
-keys. 
-
-Here is a very simple input profile. Examples of more advanced options are
-described below.
-
-    use Data::FormValidator::Constraints qw(:closures);
-
-    my $profile = {
-        optional => [qw( company
-                         fax 
-                         country )],
-
-        required => [qw( fullname 
-                         phone 
-                         email 
-                         address )],
-
-        constraint_methods => {
-            email => email(), 
-        }
-    };
-
-
-That defines some fields as optional, some as required, and defines that the
-field named 'email' must pass the constraint named 'email'.
-
-Here is a complete list of the keys available in the input profile, with
-examples of each.
-
-=head2 required
-
-This is an array reference which contains the name of the fields which are
-required. Any fields in this list which are not present or contain only
-spaces will be reported as missing.
-
-=head2 required_regexp
-
- required_regexp => qr/city|state|zipcode/,
-
-This is a regular expression used to specify additional field names for which values
-will be required.
-
-=head2 require_some
-
- require_some => {
-    # require any two fields from this group
-    city_or_state_or_zipcode => [ 2, qw/city state zipcode/ ], 
- }
-
-This is a reference to a hash which defines groups of fields where 1 or more
-fields from the group should be required, but exactly which fields doesn't
-matter. The keys in the hash are the group names.  These are returned as
-"missing" unless the required number of fields from the group has been filled
-in. The values in this hash are array references. The first element in this
-array should be the number of fields in the group that is required. If the
-first field in the array is not an a digit, a default of "1" will be used. 
-
-=head2 optional
-
- optional => [qw/meat coffee chocolate/],
-
-This is an array reference which contains the name of optional fields.
-These are fields which MAY be present and if they are, they will be
-checked for valid input. Any fields not in optional or required list
-will be reported as unknown.
-
-=head2 optional_regexp
-
- optional_regexp => qr/_province$/,
-
-This is a regular expression used to specify additional fields which are
-optional. For example, if you wanted all fields names that begin with I<user_> 
-to be optional, you could use the regular expression, /^user_/
-
-=head2 dependencies
-
- dependencies   => {
-
-    # If cc_no is entered, make cc_type and cc_exp required
-    "cc_no" => [ qw( cc_type cc_exp ) ],
-
-    # if pay_type eq 'check', require check_no
-    "pay_type" => {
-        check => [ qw( check_no ) ],
-     }
- },
-
-This is for the case where an optional field has other requirements.  The
-dependent fields can be specified with an array reference.  
-
-If the dependencies are specified with a hash reference then the additional
-constraint is added that the optional field must equal a key for the
-dependencies to be added.
-
-Any fields in the dependencies list that is missing when the target is present
-will be reported as missing.
-
-=head2 dependency_groups
-
- dependency_groups  => {
-     # if either field is filled in, they all become required
-     password_group => [qw/password password_confirmation/],
- }
-
-This is a hash reference which contains information about groups of 
-interdependent fields. The keys are arbitrary names that you create and
-the values are references to arrays of the field names in each group. 
-
-=head2 defaults
-
- defaults => {
-     country => "USA",
- },
-
-This is a hash reference where keys are field names and 
-values are defaults to use if input for the field is missing. 
-
-The values can be code refs which will be used to calculate the 
-value if needed. These code refs will be passed in the DFV::Results
-object as the only parameter. 
-
-The defaults are set shortly before the constraints are applied, and
-will be returned with the other valid data.
-
-=head2 filters
-
- # trim leading and trailing whitespace on all fields
- filters       => ['trim'],
-
-This is a reference to an array of filters that will be applied to ALL optional
-and required fields, B<before> any constraints are applied. 
-
-This can be the name of a built-in filter
-(trim,digit,etc) or an anonymous subroutine which should take one parameter, 
-the field value and return the (possibly) modified value.
-
-Filters modify the data, so use them carefully. 
-
-See Data::FormValidator::Filters for details on the built-in filters.
-
-=head2 field_filters
-
- field_filters => { 
-     cc_no => ['digit'],
- },
-
-A hash ref with field names as keys. Values are array references of built-in
-filters to apply (trim,digit,etc) or an anonymous subroutine which should take
-one parameter, the field value and return the (possibly) modified value.
-
-Filters are applied B<before> any constraints are applied. 
-
-See L<Data::FormValidator::Filters> for details on the built-in filters.
-
-=head2 field_filter_regexp_map
-
- field_filter_regexp_map => {
-     # Upper-case the first letter of all fields that end in "_name"
-     qr/_name$/    => ['ucfirst'],
- },
-
-This is a hash reference where the keys are the regular expressions to
-use and the values are references to arrays of filters which will be
-applied to specific input fields. Used to apply filters to fields that
-match a regular expression. 
-
-=head2 constraint_methods
-
- use Data::FormValidator::Constraints (qw:closures);
-
- constraint_methods => {
-    cc_no      => cc_number({fields => ['cc_type']}),
-    cc_type    => cc_type(),
-    cc_exp     => cc_exp(),
-  },
-
-A hash ref which contains the constraints that will be used to check whether or
-not the field contains valid data.
-
-B<Note:> To use the built-in constraints, they need to first be loaded into your
-name space using the syntax above. (Unless you are using the old C<constraints> key,  
-documented in L<BACKWARDS COMPATIBILITY>). 
-
-The keys in this hash are field names. The values can be any of the following:
-
-=over 
-
-=item o
-
-A named constraint. 
-
-B<Example>: 
-
- my_zipcode_field     => 'zip',
-
-See L<Data::FormValidator::Constraints> for the details of which
-built-in constraints that are available.
-
-
-=item o 
-
-A perl regular expression
-
-B<Example>: 
-
- my_zipcode_field   => qr/^\d{5}$/, # match exactly 5 digits
-
-If this field is named in C<untaint_constraint_fields> or C<untaint_regexp_map>,
-or C<untaint_all_constraints> is effective, be aware of the following: If you
-write your own regular expressions and only match part of the string then
-you'll only get part of the string in the valid hash. It is a good idea to
-write you own constraints like /^regex$/. That way you match the whole string.
-
-=item o
-
-a subroutine reference, to supply custom code
-
-This will check the input and return true or false depending on the input's validity.
-By default, the constraint function recieves a L<Data::FormValidator::Results>
-object as its first argument, and the value to be validated as the second.  To
-validate a field based more inputs than just the field itself, see 
-L<VALIDATING INPUT BASED ON MULTIPLE FIELDS>.
-
-B<Examples>:
-
- # Notice the use of 'pop'-- 
- # the object is the first arg passed to the method
- # while the value is the second, and last arg.
- my_zipcode_field => sub { my $val = pop;  return $val =~ '/^\d{5}$/' }, 
- 
- # OR you can reference a subroutine, which should work like the one above
- my_zipcode_field => \&my_validation_routine, 
-
- # An example of setting the constraint name.
- my_zipcode_field => sub { 
- 	my ($dfv, $val) = @_;
-	$dfv->set_current_constraint_name('my_constraint_name');
- 	return $val =~ '/^\d{5}$/' 
-	}, 
-
-=item o 
-
-an array reference
-
-An array reference is used to apply multiple constraints to a single
-field. Any of the above options are valid entries the array.
-See L<MULTIPLE CONSTRAINTS> below.
-
-For more details see L<VALIDATING INPUT BASED ON MULTIPLE FIELDS>.
-
-=back
-
-=head2 constraint_method_regexp_map
-
- use Data::FormValidator::Constraints qw(:closures);
-
- # In your profile. 
- constraint_method_regexp_map => {
-     # All fields that end in _postcode have the 'postcode' constraint applied.
-     qr/_postcode$/    => postcode(),
- },                  
-
-A hash ref where the keys are the regular expressions to
-use and the values are the constraints to apply. 
-
-If one or more constraints have already been defined for a given field using
-C<constraint_methods>, C<constraint_method_regexp_map> will add an additional
-constraint for that field for each regular expression that matches.
-
-=head2 untaint_all_constraints
-
- untaint_all_constraints => 1,
-
-If this field is set, all form data that passes a constraint will be untainted.
-The untainted data will be returned in the valid hash.  Untainting is based on
-the pattern match used by the constraint.  Note that some constraint routines
-may not provide untainting.
-
-See L<WRITING YOUR OWN CONSTRAINT ROUTINES> in the Data::FormValidator::Constraints
-documention for more information.
-
-This is overridden by C<untaint_constraint_fields> and C<untaint_regexp_map>.
-
-=head2 untaint_constraint_fields
-
- untaint_constraint_fields => [qw(zipcode state)],
-
-Specifies that one or more fields will be untainted if they pass their
-constraint(s). This can be set to a single field name or an array reference of
-field names. The untainted data will be returned in the valid hash. 
-
-This overrides the untaint_all_constraints flag.
-
-=head2 untaint_regexp_map
-
- untaint_regexp_map => [qr/some_field_\d/],
-
-Specifies that certain fields will be untained if they pass their constraints
-and match one of the regular expressions supplied. This can be set to a single
-regex, or an array reference of regexes. The untainted data will be returned
-in the valid hash.
-
-The above example would untaint the fields named C<some_field_1>, and C<some_field_2>
-but not C<some_field>. 
-
-This overrides the untaint_all_constraints flag.
-
-=head2 missing_optional_valid
-
- missing_optional_valid => 1
-
-This can be set to a true value to cause optional fields with empty values to
-be included in the valid hash. By default they are not included-- this is the
-historical behavior. 
-
-This is an important flag if you are using the contents of an "update" form to
-update a record in a database. Without using the option, fields that have been
-set back to "blank" may fail to get updated.
-
-=head2 validator_packages 
-
- # load all the constraints and filters from these modules
- validator_packages => [qw(Data::FormValdidator::Constraints::Upload)],
-
-This key is used to define other packages which contain constraint routines or
-filters.  Set this key to a single package name, or an arrayref of several. All
-of its constraint and filter routines  beginning with 'match_', 'valid_' and
-'filter_' will be imported into Data::FormValidator.  This lets you reference
-them in a constraint with just their name, just like built-in routines.  You
-can even override the provided validators.
-
-See L<WRITING YOUR OWN CONSTRAINT ROUTINES> in the Data::FormValidator::Constraints
-documentation for more information
-
-=head2 msgs
-
-This key is used to define parameters related to formatting error messages
-returned to the user.
-
-By default, invalid fields have the message "Invalid" associated with them
-while missing fields have the message "Missing" associated with them. 
-
-In the simplest case, nothing needs to be defined here, and the default values
-will be used. 
-
-The default formatting applied is designed for display in an XHTML web page.
-That formatting is as followings:
-
-    <span style="color:red;font-weight:bold"><span class="dfv_errors">* %s</span></span>
-
-The C<%s> will be replaced with the message. The effect is that the message
-will appear in bold red with an asterisk before it. This style can be overriden by simply
-defining "dfv_errors" appropriately in a style sheet, or by providing a new format string.
-
-Here's a more complex example that shows how to provide your own default message strings, as well
-as providing custom messages per field, and handling multiple constraints:
-
- msgs => {
-     
-     # set a custom error prefix, defaults to none
-     prefix=> 'error_',
- 
-     # Set your own "Missing" message, defaults to "Missing"
-     missing => 'Not Here!',
- 
-     # Default invalid message, default's to "Invalid"
-     invalid => 'Problematic!',
- 
-     # message separator for multiple messages
-     # Defaults to ' '
-     invalid_separator => ' <br /> ',
- 
-     # formatting string, default given above.
-     format => 'ERROR: %s',
- 
-     # Error messages, keyed by constraint name
-     # Your constraints must be named to use this.
-     constraints => {
-                     'date_and_time' => 'Not a vaild time format',
-                     # ...
-     },
- 
-     # This token will be included in the hash if there are 
-     # any errors returned. This can be useful with templating
-     # systems like HTML::Template
-     # The 'prefix' setting does not apply here.
-     # defaults to undefined
-     any_errors => 'some_errors',
- }
-
-The hash that's prepared can be retrieved through the C<msgs> method
-described in the L<Data::FormValidator::Results> documentation.
-
-=head2 msgs - callback 
-
-I<This is a new feature. While it expected to be forward-compatible, it hasn't
-yet received the testing the rest of the API has.>   
-
-If the built-in message generation doesn't suit you, it is also possible to
-provide your own by specifying a code reference:
-
- msgs  =>  \&my_msgs_callback
-
-This will be called as a L<Data::FormValidator::Results> method.  It may
-receive as arguments an additional hash reference of control parameters,
-corresponding to the key names in the usually used in the C<msgs> area of the
-profile. You can ignore this information if you'd like. 
-
-If you have an alternative error message handler you'd like to share, 
-stick in the C<Data::FormValidator::ErrMsgs> and upload it to CPAN. 
-
-=head2 debug
-
-This method is used to print details about what is going on to STDERR.
-
-Currently only level '1' is used. It provides information about which 
-fields matched constraint_regexp_map. 
-
-=head2 A shortcut for array refs
-
-A number of parts of the input profile specification include array references
-as their values.  In any of these places, you can simply use a string if you
-only need to specify one value. For example, instead of
-
- filters => [ 'trim' ]
-
-you can simply say
-
- filters => 'trim'
-
-=head2 A note on regular expression formats
-
-In addition to using the preferred method of defining regular expressions
-using C<qr>, a deprecated style of defining them as strings is also supported.
-
-Preferred:
-
- qr/this is great/
-
-Deprecated, but supported
-
- 'm/this still works/'
-
-=head1 VALIDATING INPUT BASED ON MULTIPLE FIELDS
-
-You can pass more than one value into a constraint routine.  For that, the
-value of the constraint should be a hash reference. If you are creating your
-own routines, be sure to read the section labeled 
-L<WRITING YOUR OWN CONSTRAINT ROUTINES>, 
-in the Data::FormValidator::Constraints documentation.  It describes
-a newer and more flexible syntax. 
-
-Using the original syntax, one key should be named C<constraint> and should
-have a value set to the reference of the subroutine or the name of a built-in
-validator.  Another required key is C<params>. The value of the C<params> key
-is a reference to an array of the other elements to use in the validation. If
-the element is a scalar, it is assumed to be a field name. The field is known
-to Data::FormValidator, the value will be filtered through any defined filteres
-before it is passed in.  If the value is a reference, the reference is passed
-directly to the routine.  Don't forget to include the name of the field to
-check in that list, if you are using this syntax.
-
-B<Example>:
-
- cc_no  => {  
-     constraint  => "cc_number",
-     params         => [ qw( cc_no cc_type ) ],
- },
-
-
-=head1 MULTIPLE CONSTRAINTS
-
-Multiple constraints can be applied to a single field by defining the value of
-the constraint to be an array reference. Each of the values in this array can
-be any of the constraint types defined above.
-
-When using multiple constraints it is important to return the name of the
-constraint that failed so you can distinquish between them. To do that,
-either use a named constraint, or use the hash ref method of defining a
-constraint and include a C<name> key with a value set to the name of your
-constraint.  Here's an example:
-
- my_zipcode_field => [
-     'zip',
-     { 
-       constraint =>  '/^406/', 
-       name        =>  'starts_with_406',
-     }
- ],
-
-You can use an array reference with a single constraint in it if you just want
-to have the name of your failed constraint returned in the above fashion. 
-
-Read about the C<validate()> function above to see how multiple constraints
-are returned differently with that method.
-
-=cut
-
-sub load_profiles {
-    my $self = shift;
-
-    my $file = $self->{profile_file};
-    return unless $file;
-
-    die "No such file: $file\n" unless -f $file;
-    die "Can't read $file\n"    unless -r _;
-
-    my $mtime = (stat _)[9];
-    return if $self->{profiles} and $self->{profiles_mtime} <= $mtime;
-
-    $self->{profiles} = do $file;
-    die "Input profiles didn't return a hash ref\n"
-      unless ref $self->{profiles} eq "HASH";
-
-    $self->{profiles_mtime} = $mtime;
-}
-
-
-
-# check the profile syntax and die if we have an error
-sub _check_profile_syntax {
-    my $profile = shift;
-
-    (ref $profile eq 'HASH') or
-        die "Invalid input profile: needs to be a hash reference\n";
-
-    my %valid_profile_keys = (
-		constraint_methods 	          => undef,
-		constraint_method_regexp_map  => undef,
-        constraint_regexp_map=> undef,
-        constraints=> undef,
-        defaults=> undef,
-        dependencies=> undef,
-        dependency_groups=> undef,
-        field_filter_regexp_map=> undef,
-        field_filters=> undef,
-        filters=> undef,
-        missing_optional_valid=> undef,
-        msgs=> undef,
-        optional=> undef,
-        optional_regexp=> undef,
-        require_some=> undef,
-        required=> undef,
-        required_regexp => undef,
-        untaint_all_constraints=> undef,
-        validator_packages=> undef,
-        untaint_constraint_fields=> undef,
-        untaint_regexp_map => undef,
-        debug=> undef,
-    );
-
-    # If any of the keys in the profile are not listed as 
-    # valid keys here, we die with an error    
-    my @invalid;
-    for my $key (keys %$profile) {
-        push @invalid, $key unless exists $valid_profile_keys{$key};
-    }
-
-    local $" = ', ';
-    if (@invalid) {
-        die "Invalid input profile: keys not recognised [@invalid]\n";
-    }
-
-    my %valid_constraint_hash_keys = (
-        constraint => undef,
-        constraint_method => undef,
-        name => undef,
-        params => undef,
-    );
-
-    my @constraint_hashrefs = grep { ref $_ eq 'HASH' } values %{ $profile->{constraints} } 
-        if $profile->{constraints};
-    push @constraint_hashrefs, grep { ref $_ eq 'HASH' } values %{ $profile->{constraint_regexp_map} } 
-        if $profile->{constraint_regexp_map};
-
-    for my $href (@constraint_hashrefs) {
-        for my $key (keys %$href) {
-            push @invalid, $key unless exists $valid_constraint_hash_keys{$key};
-        }
-    }
-
-    if (@invalid) {
-        die "Invalid input profile: constraint hashref keys not recognised [@invalid]\n";
-    }
-
-	my %valid_msgs_hash_keys = (
-            prefix => undef,
-            missing => undef,
-            invalid => undef,
-            invalid_separator => undef,
-            invalid_seperator => undef,
-            format  => undef,
-            constraints  => undef,
-            any_errors => undef,
-	);
-	if (ref $profile->{msgs} eq 'HASH') {
-		for my $key (keys %{ $profile->{msgs} }) {
-			push @invalid, $key unless exists $valid_msgs_hash_keys{$key};
-		}
-	}
-    if (@invalid) {
-        die "Invalid input profile: msgs keys not recognized: [@invalid]\n";
-    }
-
-
-}
-
-
-
-
-1;
-
-__END__
-
-=pod
-
-=head1 ADVANCED VALIDATION
-
-For even more advanced validation, you will likely want to read the
-documentation for other modules in this distribution, linked below. Also keep
-in mind that the  Data::FormValidator profile structure is just another data
-structure. There is no reason why it needs to be defined statically. The
-profile could also be built on the fly with custom Perl code.
-
-=head1 BACKWARDS COMPATIBILITY
-
-=head2 validate()
-
-    my( $valids, $missings, $invalids, $unknowns ) = 
-        Data::FormValidator->validate( \%input_hash, \%dfv_profile);
-
-C<validate()> provides a deprecated alternative to C<check()>. It has the same input
-syntax, but returns a four element array, described as follows
-
-=over
-
-=item valids
-
-This is a hash reference to the valid fields which were submitted in
-the data. The data may have been modified by the various filters specified.
-
-=item missings
-
-This is a reference to an array which contains the name of the missing
-fields. Those are the fields that the user forget to fill or filled
-with spaces. These fields may comes from the I<required> list or the
-I<dependencies> list.
-
-=item invalids
-
-This is a reference to an array which contains the name of the fields
-which failed one or more of their constraint checks.
-
-Fields defined with multiple constraints will have an array ref returned in the
- at invalids array instead of a string. The first element in this array is the
-name of the field, and the remaining fields are the names of the failed
-constraints. 
-
-=item unknowns
-
-This is a list of fields which are unknown to the profile. Whether or
-not this indicates an error in the user input is application
-dependant.
-
-=back
-
-=head2 constraints (profile key)
-
-This is a supported but deprecated profile key. Using C<constraint_methods> is
-recommended instead, which provides a simpler, more versatile interface. 
-
- constraints => {
-    cc_no      => {  
-        constraint  => "cc_number",
-        params        => [ qw( cc_no cc_type ) ],
-    },
-    cc_type    => "cc_type",
-    cc_exp    => "cc_exp",
-  },
-
-A hash ref which contains the constraints that
-will be used to check whether or not the field contains valid data.
-
-The keys in this hash are field names. The values can be any of the following:
-
-=over 
-
-=item o
-
-A named constraint. 
-
-B<Example>: 
-
- my_zipcode_field     => 'zip',
-
-See L<Data::FormValidator::Constraints> for the details of which
-built-in constraints that are available.
-
-=back
-
-=head2 hashref style of specifying constraints 
-
-Using a hash reference to specify a constraint is an older technique
-used to name a constraint or supply multiple parameters.
-
-Both of these interface issues are now better addressed with C<constraint_methods>
-and C<$self-\>name_this('foo')>.
-
- # supply multiple parameters
- cc_no  => {  
-     constraint  => "cc_number",
-     params      => [ qw( cc_no cc_type ) ],
- },
-
- # name a constraint, useful for returning error messages
- last_name => {
-     name => "ends_in_name",
-     constraint => qr/_name$/,
- },
-
-Using a hash reference for a constraint permits the passing of multiple
-arguments. Required arguments are C<constraint> or C<constraint_method>.
-Optional arguments are C<name> and C<params>.
-
-A C<name> on a constraints 'glues' the constraint to its error message
-in the validator profile (refer C<msgs> section below). If no C<name> is 
-given then it will default to the value of C<constraint> or 
-C<constraint_method> IF they are NOT a CODE ref or a RegExp ref.
-
-The C<params> value is a reference to an array of the parameters to pass 
-to the constraint method. 
-If an element of the C<params> list is a scalar, it is assumed to be naming
-a key of the %input_hash and that value is passed to the routine. 
-If the parameter is a reference, then it is treated literally and passed 
-unchanged to the routine.
-
-If you are using the older C<constraint> over 
-the new C<constraint_method> then don't forget to include the name of the 
-field to check in the C<params> list. C<constraint_method> provides access
-to this value via the C<get_current_*> methods 
-(refer L<Data::FormValidator::Constraints>)
-
-For more details see L<VALIDATING INPUT BASED ON MULTIPLE FIELDS>.
-
-=head2 constraint_regexp_map (profile key)
-
-This is a supported by deprecated profile key. Using
-C<constraint_methods_regexp_map> is recommended instead.
-
- constraint_regexp_map => {
-     # All fields that end in _postcode have the 'postcode' constraint applied.
-     qr/_postcode$/    => 'postcode',
- },                  
-
-A hash ref where the keys are the regular expressions to
-use and the values are the constraints to apply. 
-
-If one or more constraints have already been defined for a given field using
-"constraints", constraint_regexp_map will add an additional constraint for that
-field for each regular expression that matches.
-
-=head1 SEE ALSO
-
-B<Other modules in this distribution:>
-
-L<Data::FormValidator::Constraints|Data::FormValidator::Constraints> 
-
-L<Data::FormValidator::Constraints::Dates|Data::FormValidator::Constraints::Dates> 
-
-L<Data::FormValidator::Constraints::Upload|Data::FormValidator::Constraints::Upload>
-
-L<Data::FormValidator::ConstraintsFactory|Data::FormValidator::ConstraintsFactory>
-
-L<Data::FormValidator::Filters|Data::FormValidator::Filters>
-
-L<Data::FormValidator::Results|Data::FormValidator::Results>
-
-B<A sample application by the maintainer:> 
-
-Validating Web Forms with Perl, L<http://mark.stosberg.com/Tech/perl/form-validation/>
-
-B<Related modules:>
-
-L<Data::FormValidator::Tutorial|Data::FormValidator::Tutorial> 
-
-L<Data::FormValidator::Util::HTML|Data::FormValidator::Util::HTML>
-
-L<CGI::Application::ValidateRM|CGI::Application::ValidateRM>, a
-CGI::Application & Data::FormValidator glue module
-
-L<HTML::Template::Associate::FormValidator|HTML::Template::Associate::FormValidator> is designed
-to make some kinds of integration with HTML::Template easier. 
-
-L<Params::Validate|Params::Validate> is useful for validating function parameters.  
-
-L<Regexp::Common|Regexp::Common>,
-L<Data::Types|Data::Types>,
-L<Data::Verify|Data::Verify>,
-L<Email::Valid|Email::Valid>,
-L<String::Checker|String::Checker>,
-L<CGI::ArgChecker|CGI::ArgChecker>,
-L<CGI::FormMagick::Validator|CGI::FormMagick::Validator>,
-L<CGI::Validate|CGI::Validate>
-
-B<Document Translations:>
-
-Japanese: L<http://perldoc.jp/docs/modules/>
-
-B<Distributions which include Data::formValidator> 
-
-FreeBSD includes a port named B<p5-Data-FormValidator>
-
-Debian GNU/Linux includes a port named B<libdata-formvalidator-perl>
-
-=head1 CREDITS
-
-Some of those input validation functions have been taken from MiniVend
-by Michael J. Heins.
-
-The credit card checksum validation was taken from contribution by Bruce
-Albrecht to the MiniVend program.
-
-=head1 BUGS
-
-L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Data-FormValidator> 
-
-=head1 CONTRIBUTING
-
-Patches, questions and feedback are welcome. This project is managed using
-the darcs source control system ( http://www.darcs.net/ ). My darcs archive is here:
-http://mark.stosberg.com/darcs_hive/dfv/
-
-=head1 AUTHOR
-
-Parts Copyright 2001-2003 by Mark Stosberg <markstos at cpan.org>, (Current Maintainer)
-
-Copyright (c) 1999 Francis J. Lacoste and iNsu Innovations Inc.  All rights reserved.
-(Original Author)
-
-Parts Copyright 1996-1999 by Michael J. Heins <mike at heins.net>
-
-Parts Copyright 1996-1999 by Bruce Albrecht  <bruce.albrecht at seag.fingerhut.com>
-
-B<Support Mailing List>
- 
-If you have any questions, comments, bug reports or feature suggestions,
-post them to the support mailing list!  To join the mailing list, visit 
-L<http://lists.sourceforge.net/lists/listinfo/cascade-dataform>
-
-=head1 LICENSE 
-
-This program is free software; you can redistribute it and/or modify
-it under the terms as perl itself.
-
-=cut
-

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/lib/Data/FormValidator.pm (from rev 2163, packages/libdata-formvalidator-perl/trunk/lib/Data/FormValidator.pm)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/11_procedural_match.t
===================================================================
--- packages/libdata-formvalidator-perl/trunk/t/11_procedural_match.t	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/11_procedural_match.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,56 +0,0 @@
-use strict;
-#Check that the match_* routines are nominally working.
-
-$^W = 1;
-
-use Test::More tests => 25;
-
-
-use Data::FormValidator qw(:validators :matchers);
-
-my $invalid = "fake value";
-
-#For CC Exp test
-my @time = localtime(time);
-
-my %tests = ( 
-    match_american_phone => "555-555-5555",
-    match_cc_exp => "10/" . sprintf("%.2d", ($time[5] - 99)), 
-    match_cc_type => "MasterCard",
-    match_email => 'foo at domain.com',
-    match_ip_address => "64.58.79.230",
-    match_phone => "123-456-7890",
-    match_postcode => "T2N 0E6",
-    match_province => "NB",
-    match_state => "CA",
-    match_state_or_province => "QC",
-    match_zip => "94112",
-    match_zip_or_postcode => "50112",
-);
-
-my $i = 1;
-
-foreach my $function (keys(%tests)) {
-    my $rv;
-    my $val = $tests{$function};
-    my $is_valid = "\$rv = $function('$val');";
-    my $not_valid = "\$rv = $function('$invalid');";
-    
-    eval $is_valid;
-    ok(not $@ and ($rv eq $val)) or
-      diag sprintf("%-25s using %-16s", $function, "valid value. ");
-    $i++;
-
-    eval $not_valid;
-    ok(not $@ and not $rv) or
-      diag sprintf("%-25s using %-16s", $function, "invalid value. ");
-    $i++;
-}
-    
-#Test cc_number seperately since i do not know a valid cc number
-my $rv;
-eval "\$rv = match_cc_number('$invalid', 'm')";
-
-ok(not $@ and not $rv) or
-  diag sprintf("%-25s using %-16s", "match_cc_number", "invalid value. ");
-

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/11_procedural_match.t (from rev 2163, packages/libdata-formvalidator-perl/trunk/t/11_procedural_match.t)

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/credit_card.t (from rev 2163, packages/libdata-formvalidator-perl/trunk/t/credit_card.t)

Deleted: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/procedural_valid.t
===================================================================
--- packages/libdata-formvalidator-perl/trunk/t/procedural_valid.t	2006-02-21 20:19:02 UTC (rev 2162)
+++ packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/procedural_valid.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,99 +0,0 @@
-use strict;
-#Check that the valid_* routines are nominally working.
-
-$^W = 1;
-
-use Test::More qw/no_plan/;
-
-use Data::FormValidator qw(:validators :matchers);
-
-
-
-my $invalid = "fake value";
-
-#For CC Exp test
-my @time = localtime(time);
-
-my %tests = ( 
-    valid_american_phone => "555-555-5555",
-    valid_cc_exp => "10/" . sprintf("%.2d", ($time[5] - 99)), 
-    valid_cc_type => "MasterCard",
-    valid_email => 'foo at domain.com',
-    valid_ip_address => "64.58.79.230",
-    valid_phone => "123-456-7890",
-    valid_postcode => "T2N 0E6",
-    valid_province => "NB",
-    valid_state => "CA",
-    valid_state_or_province => "QC",
-    valid_zip => "94112",
-    valid_zip_or_postcode => "50112",
-);
-
-my $i = 1;
-
-foreach my $function (keys(%tests)) {
-    my $rv;
-    my $val = $tests{$function};
-    my $is_valid = "\$rv = $function('$val');";
-    my $not_valid = "\$rv = $function('$invalid');";
-    
-    eval $is_valid;
-    ok(not $@ and $rv == 1) or
-       diag $@;
-    #diag sprintf("%-25s using %-16s", $function, "(valid value)");
-    $i++;
-
-    eval $not_valid;
-    ok(not $@ and not $rv) or 
-      diag sprintf("%-25s using %-16s", $function, "(invalid value)");
-    $i++;
-}
-    
-#Test cc_number seperately since i do not know a valid cc number
-{
-    my $rv;
-    eval "\$rv = valid_cc_number('$invalid', 'm')";
-
-    ok(not $@ and not $rv) or
-      diag sprintf("%-25s using %-16s", "valid_cc_number", "(invalid value)");
-}
-
-$i++;
-
-#Test fake validation routine
-{
-    my $rv;
-    eval "\$rv = valid_foobar('$invalid', 'm')";
-
-    ok($@) or
-      diag sprintf("%-25s", "Fake Valid Routine");
-}
-
-ok(! valid_email('pretty_b;ue_eyes16 at cpan.org'), 'semi-colons in e-mail aren\'t valid');
-ok(! valid_email('Ollie 102 at cpan.org'), 'spaces in e-mail aren\'t valid');
-
-ok(! valid_email('mark at summersualt.com\0mark at summersault.com'), "including a null in an e-mail is not valid.");
-
-
-my $address_1 = 'mark';
-isnt($address_1, valid_email($address_1), "'$address_1' is not a valid e-mail");
-
-my $address_2 = 'Mark Stosberg <mark at summersault.com>';
-ok(! valid_email($address_2), "'$address_2' is not a valid e-mail");
-
-my $address_3 = 'mark at summersault.com';
-ok(valid_email($address_3), "'$address_3' is a valid e-mail");
-
-my $address_6 = 'Mark.Stosberg at summersault.com';
-ok(valid_email($address_6), "'$address_6' is a valid e-mail");
-
-my $address_7 = 'Mark_Stosberg at summersault.com';
-ok(valid_email($address_7), "'$address_7' is a valid e-mail");
-
-
-
-
-
-
-
-

Copied: packages/libdata-formvalidator-perl/tags/debian_version_4_14-1/t/procedural_valid.t (from rev 2163, packages/libdata-formvalidator-perl/trunk/t/procedural_valid.t)

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1 (from rev 2165, packages/libdigest-sha-perl/trunk)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/Changes
===================================================================
--- packages/libdigest-sha-perl/trunk/Changes	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/Changes	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,303 +0,0 @@
-Revision history for Perl extension Digest::SHA.
-
-5.32  Fri Dec  2 02:32:20 MST 2005
-	- added POD section to shasum script
-		-- thanks to Gunnar Wolf for patch
-	- made minor code changes to silence compiler warnings
-		-- resulting from signed/unsigned integer mixing
-	- inserted code in test scripts for POD checking
-		-- to recover gracefully if Test::More isn't installed
-
-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_34-1/Changes (from rev 2166, packages/libdigest-sha-perl/trunk/Changes)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/META.yml
===================================================================
--- packages/libdigest-sha-perl/trunk/META.yml	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/META.yml	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,16 +0,0 @@
---- #YAML:1.0
-name: Digest-SHA
-version: 5.32
-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.32
-generated_by: Module::Build version 0.22

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/META.yml (from rev 2166, packages/libdigest-sha-perl/trunk/META.yml)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/README
===================================================================
--- packages/libdigest-sha-perl/trunk/README	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/README	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,44 +0,0 @@
-Digest::SHA version 5.32
-========================
-
-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_34-1/README (from rev 2166, packages/libdigest-sha-perl/trunk/README)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/SHA.pm
===================================================================
--- packages/libdigest-sha-perl/trunk/SHA.pm	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/SHA.pm	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,560 +0,0 @@
-package Digest::SHA;
-
-use strict;
-use warnings;
-use integer;
-
-our $VERSION = '5.32';
-
-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
-	Gunnar Wolf
-	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_34-1/SHA.pm (from rev 2166, packages/libdigest-sha-perl/trunk/SHA.pm)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/SIGNATURE
===================================================================
--- packages/libdigest-sha-perl/trunk/SIGNATURE	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/SIGNATURE	2006-02-21 22:31:00 UTC (rev 2167)
@@ -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 234d6e683cd04f64881c8bfb94bc8de9ab9669ea Changes
-SHA1 952a17b73eeb605287d1aa08d2e8bf4837106b43 MANIFEST
-SHA1 a69adf3bb5d885f99e4a8f07dd4724decc842355 META.yml
-SHA1 9903634fd8ce5d1ed2fbece7be5ed0cd5d98f158 Makefile.PL
-SHA1 94739b3bc13e08c7205ef528b693aeac7b1e7035 README
-SHA1 c924486cc12ab9861a1614b165a7fbb47a8acf2b SHA.pm
-SHA1 51d3d1db41241cdf960bb3d5c81efa9eac13b197 SHA.xs
-SHA1 0389154c992f23bfc99b36f187500c4d2e47ac95 ppport.h
-SHA1 4fa482ab1615e7668067755241cf76e93cf78d38 shasum
-SHA1 256bc66f0b6a725a8944517997e6aba03dfcc7a4 src/hmac.c
-SHA1 4142a51a034944b856542995323469c43736b0a9 src/hmac.h
-SHA1 7589c6ce33e74a58ded932d69756659e91723fdb src/hmacxtra.c
-SHA1 95a0da170e7333dea20a83a7004b6b4624f45cc9 src/sha.c
-SHA1 115932cd051663d7cad78bc95627acdb58819ef1 src/sha.h
-SHA1 c1bba35de65c8d81362472b76075dba8cf1e542b src/sha64bit.c
-SHA1 48d806b05a15dfd8211d5f7158b3294d86fa24d2 src/sha64bit.h
-SHA1 329ac17325437c725331fbf84ae0c9484f50041a src/shaxtra.c
-SHA1 fa6461bfc23f1392721d265196b58f607b68fc4f t/0-pod-coverage.t
-SHA1 308ce1bdbb89141d83ffc0470c7f9207286c5be4 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)
-
-iD8DBQFDkBVdBwNg/wr1Y/4RAlzFAKCazz/1OH93iWzjOHDMHz4A6CNoNwCfVrG/
-Oz3pPPBhIBKQhZehPM6ZxBw=
-=99iU
------END PGP SIGNATURE-----

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/SIGNATURE (from rev 2166, packages/libdigest-sha-perl/trunk/SIGNATURE)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/debian/changelog
===================================================================
--- packages/libdigest-sha-perl/trunk/debian/changelog	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/debian/changelog	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,20 +0,0 @@
-libdigest-sha-perl (5.32-2) NOTUPLOADED; urgency=low
-
-  * Allard Hoeve: fix erronous watch file.
-
- -- Allard Hoeve <allard at byte.nl>  Mon,  9 Jan 2006 16:52:57 +0100
-
-libdigest-sha-perl (5.32-1) unstable; urgency=low
-
-  * New upstream release
-  * Fixed watch file so it does not get confused by other modules in the
-    same namespace
-
- -- Gunnar Wolf <gwolf at debian.org>  Mon,  5 Dec 2005 12:59:55 -0600
-
-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_34-1/debian/changelog (from rev 2166, packages/libdigest-sha-perl/trunk/debian/changelog)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/ppport.h
===================================================================
--- packages/libdigest-sha-perl/trunk/ppport.h	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/ppport.h	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,540 +0,0 @@
-
-/* ppport.h -- Perl/Pollution/Portability Version 2.0002 
- *
- * Automatically Created by Devel::PPPort on Wed Oct  8 22:28:04 2003 
- *
- * Do NOT edit this file directly! -- Edit PPPort.pm instead.
- *
- * Version 2.x, Copyright (C) 2001, Paul Marquess.
- * Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
- * This code may be used and distributed under the same license as any
- * version of Perl.
- * 
- * This version of ppport.h is designed to support operation with Perl
- * installations back to 5.004, and has been tested up to 5.8.0.
- *
- * If this version of ppport.h is failing during the compilation of this
- * module, please check if a newer version of Devel::PPPort is available
- * on CPAN before sending a bug report.
- *
- * If you are using the latest version of Devel::PPPort and it is failing
- * during compilation of this module, please send a report to perlbug at perl.com
- *
- * Include all following information:
- *
- *  1. The complete output from running "perl -V"
- *
- *  2. This file.
- *
- *  3. The name & version of the module you were trying to build.
- *
- *  4. A full log of the build that failed.
- *
- *  5. Any other information that you think could be relevant.
- *
- *
- * For the latest version of this code, please retreive the Devel::PPPort
- * module from CPAN.
- * 
- */
-
-/*
- * In order for a Perl extension module to be as portable as possible
- * across differing versions of Perl itself, certain steps need to be taken.
- * Including this header is the first major one, then using dTHR is all the
- * appropriate places and using a PL_ prefix to refer to global Perl
- * variables is the second.
- *
- */
-
-
-/* If you use one of a few functions that were not present in earlier
- * versions of Perl, please add a define before the inclusion of ppport.h
- * for a static include, or use the GLOBAL request in a single module to
- * produce a global definition that can be referenced from the other
- * modules.
- * 
- * Function:            Static define:           Extern define:
- * newCONSTSUB()        NEED_newCONSTSUB         NEED_newCONSTSUB_GLOBAL
- *
- */
- 
-
-/* To verify whether ppport.h is needed for your module, and whether any
- * special defines should be used, ppport.h can be run through Perl to check
- * your source code. Simply say:
- * 
- * 	perl -x ppport.h *.c *.h *.xs foo/bar*.c [etc]
- * 
- * The result will be a list of patches suggesting changes that should at
- * least be acceptable, if not necessarily the most efficient solution, or a
- * fix for all possible problems. It won't catch where dTHR is needed, and
- * doesn't attempt to account for global macro or function definitions,
- * nested includes, typemaps, etc.
- * 
- * In order to test for the need of dTHR, please try your module under a
- * recent version of Perl that has threading compiled-in.
- *
- */ 
-
-
-/*
-#!/usr/bin/perl
- at ARGV = ("*.xs") if !@ARGV;
-%badmacros = %funcs = %macros = (); $replace = 0;
-foreach (<DATA>) {
-	$funcs{$1} = 1 if /Provide:\s+(\S+)/;
-	$macros{$1} = 1 if /^#\s*define\s+([a-zA-Z0-9_]+)/;
-	$replace = $1 if /Replace:\s+(\d+)/;
-	$badmacros{$2}=$1 if $replace and /^#\s*define\s+([a-zA-Z0-9_]+).*?\s+([a-zA-Z0-9_]+)/;
-	$badmacros{$1}=$2 if /Replace (\S+) with (\S+)/;
-}
-foreach $filename (map(glob($_), at ARGV)) {
-	unless (open(IN, "<$filename")) {
-		warn "Unable to read from $file: $!\n";
-		next;
-	}
-	print "Scanning $filename...\n";
-	$c = ""; while (<IN>) { $c .= $_; } close(IN);
-	$need_include = 0; %add_func = (); $changes = 0;
-	$has_include = ($c =~ /#.*include.*ppport/m);
-
-	foreach $func (keys %funcs) {
-		if ($c =~ /#.*define.*\bNEED_$func(_GLOBAL)?\b/m) {
-			if ($c !~ /\b$func\b/m) {
-				print "If $func isn't needed, you don't need to request it.\n" if
-				$changes += ($c =~ s/^.*#.*define.*\bNEED_$func\b.*\n//m);
-			} else {
-				print "Uses $func\n";
-				$need_include = 1;
-			}
-		} else {
-			if ($c =~ /\b$func\b/m) {
-				$add_func{$func} =1 ;
-				print "Uses $func\n";
-				$need_include = 1;
-			}
-		}
-	}
-
-	if (not $need_include) {
-		foreach $macro (keys %macros) {
-			if ($c =~ /\b$macro\b/m) {
-				print "Uses $macro\n";
-				$need_include = 1;
-			}
-		}
-	}
-
-	foreach $badmacro (keys %badmacros) {
-		if ($c =~ /\b$badmacro\b/m) {
-			$changes += ($c =~ s/\b$badmacro\b/$badmacros{$badmacro}/gm);
-			print "Uses $badmacros{$badmacro} (instead of $badmacro)\n";
-			$need_include = 1;
-		}
-	}
-	
-	if (scalar(keys %add_func) or $need_include != $has_include) {
-		if (!$has_include) {
-			$inc = join('',map("#define NEED_$_\n", sort keys %add_func)).
-			       "#include \"ppport.h\"\n";
-			$c = "$inc$c" unless $c =~ s/#.*include.*XSUB.*\n/$&$inc/m;
-		} elsif (keys %add_func) {
-			$inc = join('',map("#define NEED_$_\n", sort keys %add_func));
-			$c = "$inc$c" unless $c =~ s/^.*#.*include.*ppport.*$/$inc$&/m;
-		}
-		if (!$need_include) {
-			print "Doesn't seem to need ppport.h.\n";
-			$c =~ s/^.*#.*include.*ppport.*\n//m;
-		}
-		$changes++;
-	}
-	
-	if ($changes) {
-		open(OUT,">/tmp/ppport.h.$$");
-		print OUT $c;
-		close(OUT);
-		open(DIFF, "diff -u $filename /tmp/ppport.h.$$|");
-		while (<DIFF>) { s!/tmp/ppport\.h\.$$!$filename.patched!; print STDOUT; }
-		close(DIFF);
-		unlink("/tmp/ppport.h.$$");
-	} else {
-		print "Looks OK\n";
-	}
-}
-__DATA__
-*/
-
-#ifndef _P_P_PORTABILITY_H_
-#define _P_P_PORTABILITY_H_
-
-#ifndef PERL_REVISION
-#   ifndef __PATCHLEVEL_H_INCLUDED__
-#       include "patchlevel.h"
-#   endif
-#   ifndef PERL_REVISION
-#	define PERL_REVISION	(5)
-        /* Replace: 1 */
-#       define PERL_VERSION	PATCHLEVEL
-#       define PERL_SUBVERSION	SUBVERSION
-        /* Replace PERL_PATCHLEVEL with PERL_VERSION */
-        /* Replace: 0 */
-#   endif
-#endif
-
-#define PERL_BCDVERSION ((PERL_REVISION * 0x1000000L) + (PERL_VERSION * 0x1000L) + PERL_SUBVERSION)
-
-/* It is very unlikely that anyone will try to use this with Perl 6 
-   (or greater), but who knows.
- */
-#if PERL_REVISION != 5
-#	error ppport.h only works with Perl version 5
-#endif /* PERL_REVISION != 5 */
-
-#ifndef ERRSV
-#	define ERRSV perl_get_sv("@",FALSE)
-#endif
-
-#if (PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5))
-/* Replace: 1 */
-#	define PL_Sv		Sv
-#	define PL_compiling	compiling
-#	define PL_copline	copline
-#	define PL_curcop	curcop
-#	define PL_curstash	curstash
-#	define PL_defgv		defgv
-#	define PL_dirty		dirty
-#	define PL_dowarn	dowarn
-#	define PL_hints		hints
-#	define PL_na		na
-#	define PL_perldb	perldb
-#	define PL_rsfp_filters	rsfp_filters
-#	define PL_rsfpv		rsfp
-#	define PL_stdingv	stdingv
-#	define PL_sv_no		sv_no
-#	define PL_sv_undef	sv_undef
-#	define PL_sv_yes	sv_yes
-/* Replace: 0 */
-#endif
-
-#ifdef HASATTRIBUTE
-#  if defined(__GNUC__) && defined(__cplusplus)
-#    define PERL_UNUSED_DECL
-#  else
-#    define PERL_UNUSED_DECL __attribute__((unused))
-#  endif
-#else
-#  define PERL_UNUSED_DECL
-#endif
-
-#ifndef dNOOP
-#  define NOOP (void)0
-#  define dNOOP extern int Perl___notused PERL_UNUSED_DECL
-#endif
-
-#ifndef dTHR
-#  define dTHR          dNOOP
-#endif
-
-#ifndef dTHX
-#  define dTHX          dNOOP
-#  define dTHXa(x)      dNOOP
-#  define dTHXoa(x)     dNOOP
-#endif
-
-#ifndef pTHX
-#    define pTHX	void
-#    define pTHX_
-#    define aTHX
-#    define aTHX_
-#endif         
-
-#ifndef UVSIZE
-#   define UVSIZE IVSIZE
-#endif
-
-#ifndef NVTYPE
-#   if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
-#       define NVTYPE long double
-#   else
-#       define NVTYPE double
-#   endif
-typedef NVTYPE NV;
-#endif
-
-#ifndef INT2PTR
-
-#if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
-#  define PTRV                  UV
-#  define INT2PTR(any,d)        (any)(d)
-#else
-#  if PTRSIZE == LONGSIZE
-#    define PTRV                unsigned long
-#  else
-#    define PTRV                unsigned
-#  endif
-#  define INT2PTR(any,d)        (any)(PTRV)(d)
-#endif
-#define NUM2PTR(any,d)  (any)(PTRV)(d)
-#define PTR2IV(p)       INT2PTR(IV,p)
-#define PTR2UV(p)       INT2PTR(UV,p)
-#define PTR2NV(p)       NUM2PTR(NV,p)
-#if PTRSIZE == LONGSIZE
-#  define PTR2ul(p)     (unsigned long)(p)
-#else
-#  define PTR2ul(p)     INT2PTR(unsigned long,p)        
-#endif
-
-#endif /* !INT2PTR */
-
-#ifndef boolSV
-#	define boolSV(b) ((b) ? &PL_sv_yes : &PL_sv_no)
-#endif
-
-#ifndef gv_stashpvn
-#	define gv_stashpvn(str,len,flags) gv_stashpv(str,flags)
-#endif
-
-#ifndef newSVpvn
-#	define newSVpvn(data,len) ((len) ? newSVpv ((data), (len)) : newSVpv ("", 0))
-#endif
-
-#ifndef newRV_inc
-/* Replace: 1 */
-#	define newRV_inc(sv) newRV(sv)
-/* Replace: 0 */
-#endif
-
-/* DEFSV appears first in 5.004_56 */
-#ifndef DEFSV
-#  define DEFSV	GvSV(PL_defgv)
-#endif
-
-#ifndef SAVE_DEFSV
-#    define SAVE_DEFSV SAVESPTR(GvSV(PL_defgv))
-#endif
-
-#ifndef newRV_noinc
-#  ifdef __GNUC__
-#    define newRV_noinc(sv)               \
-      ({                                  \
-          SV *nsv = (SV*)newRV(sv);       \
-          SvREFCNT_dec(sv);               \
-          nsv;                            \
-      })
-#  else
-#    if defined(USE_THREADS)
-static SV * newRV_noinc (SV * sv)
-{
-          SV *nsv = (SV*)newRV(sv);       
-          SvREFCNT_dec(sv);               
-          return nsv;                     
-}
-#    else
-#      define newRV_noinc(sv)    \
-        (PL_Sv=(SV*)newRV(sv), SvREFCNT_dec(sv), (SV*)PL_Sv)
-#    endif
-#  endif
-#endif
-
-/* Provide: newCONSTSUB */
-
-/* newCONSTSUB from IO.xs is in the core starting with 5.004_63 */
-#if (PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION < 63))
-
-#if defined(NEED_newCONSTSUB)
-static
-#else
-extern void newCONSTSUB(HV * stash, char * name, SV *sv);
-#endif
-
-#if defined(NEED_newCONSTSUB) || defined(NEED_newCONSTSUB_GLOBAL)
-void
-newCONSTSUB(stash,name,sv)
-HV *stash;
-char *name;
-SV *sv;
-{
-	U32 oldhints = PL_hints;
-	HV *old_cop_stash = PL_curcop->cop_stash;
-	HV *old_curstash = PL_curstash;
-	line_t oldline = PL_curcop->cop_line;
-	PL_curcop->cop_line = PL_copline;
-
-	PL_hints &= ~HINT_BLOCK_SCOPE;
-	if (stash)
-		PL_curstash = PL_curcop->cop_stash = stash;
-
-	newSUB(
-
-#if (PERL_VERSION < 3) || ((PERL_VERSION == 3) && (PERL_SUBVERSION < 22))
-     /* before 5.003_22 */
-		start_subparse(),
-#else
-#  if (PERL_VERSION == 3) && (PERL_SUBVERSION == 22)
-     /* 5.003_22 */
-     		start_subparse(0),
-#  else
-     /* 5.003_23  onwards */
-     		start_subparse(FALSE, 0),
-#  endif
-#endif
-
-		newSVOP(OP_CONST, 0, newSVpv(name,0)),
-		newSVOP(OP_CONST, 0, &PL_sv_no),   /* SvPV(&PL_sv_no) == "" -- GMB */
-		newSTATEOP(0, Nullch, newSVOP(OP_CONST, 0, sv))
-	);
-
-	PL_hints = oldhints;
-	PL_curcop->cop_stash = old_cop_stash;
-	PL_curstash = old_curstash;
-	PL_curcop->cop_line = oldline;
-}
-#endif
-
-#endif /* newCONSTSUB */
-
-#ifndef START_MY_CXT
-
-/*
- * Boilerplate macros for initializing and accessing interpreter-local
- * data from C.  All statics in extensions should be reworked to use
- * this, if you want to make the extension thread-safe.  See ext/re/re.xs
- * for an example of the use of these macros.
- *
- * Code that uses these macros is responsible for the following:
- * 1. #define MY_CXT_KEY to a unique string, e.g. "DynaLoader_guts"
- * 2. Declare a typedef named my_cxt_t that is a structure that contains
- *    all the data that needs to be interpreter-local.
- * 3. Use the START_MY_CXT macro after the declaration of my_cxt_t.
- * 4. Use the MY_CXT_INIT macro such that it is called exactly once
- *    (typically put in the BOOT: section).
- * 5. Use the members of the my_cxt_t structure everywhere as
- *    MY_CXT.member.
- * 6. Use the dMY_CXT macro (a declaration) in all the functions that
- *    access MY_CXT.
- */
-
-#if defined(MULTIPLICITY) || defined(PERL_OBJECT) || \
-    defined(PERL_CAPI)    || defined(PERL_IMPLICIT_CONTEXT)
-
-/* This must appear in all extensions that define a my_cxt_t structure,
- * right after the definition (i.e. at file scope).  The non-threads
- * case below uses it to declare the data as static. */
-#define START_MY_CXT
-
-#if (PERL_VERSION < 4 || (PERL_VERSION == 4 && PERL_SUBVERSION < 68 ))
-/* Fetches the SV that keeps the per-interpreter data. */
-#define dMY_CXT_SV \
-	SV *my_cxt_sv = perl_get_sv(MY_CXT_KEY, FALSE)
-#else /* >= perl5.004_68 */
-#define dMY_CXT_SV \
-	SV *my_cxt_sv = *hv_fetch(PL_modglobal, MY_CXT_KEY,		\
-				  sizeof(MY_CXT_KEY)-1, TRUE)
-#endif /* < perl5.004_68 */
-
-/* This declaration should be used within all functions that use the
- * interpreter-local data. */
-#define dMY_CXT	\
-	dMY_CXT_SV;							\
-	my_cxt_t *my_cxtp = INT2PTR(my_cxt_t*,SvUV(my_cxt_sv))
-
-/* Creates and zeroes the per-interpreter data.
- * (We allocate my_cxtp in a Perl SV so that it will be released when
- * the interpreter goes away.) */
-#define MY_CXT_INIT \
-	dMY_CXT_SV;							\
-	/* newSV() allocates one more than needed */			\
-	my_cxt_t *my_cxtp = (my_cxt_t*)SvPVX(newSV(sizeof(my_cxt_t)-1));\
-	Zero(my_cxtp, 1, my_cxt_t);					\
-	sv_setuv(my_cxt_sv, PTR2UV(my_cxtp))
-
-/* This macro must be used to access members of the my_cxt_t structure.
- * e.g. MYCXT.some_data */
-#define MY_CXT		(*my_cxtp)
-
-/* Judicious use of these macros can reduce the number of times dMY_CXT
- * is used.  Use is similar to pTHX, aTHX etc. */
-#define pMY_CXT		my_cxt_t *my_cxtp
-#define pMY_CXT_	pMY_CXT,
-#define _pMY_CXT	,pMY_CXT
-#define aMY_CXT		my_cxtp
-#define aMY_CXT_	aMY_CXT,
-#define _aMY_CXT	,aMY_CXT
-
-#else /* single interpreter */
-
-
-#define START_MY_CXT	static my_cxt_t my_cxt;
-#define dMY_CXT_SV	dNOOP
-#define dMY_CXT		dNOOP
-#define MY_CXT_INIT	NOOP
-#define MY_CXT		my_cxt
-
-#define pMY_CXT		void
-#define pMY_CXT_
-#define _pMY_CXT
-#define aMY_CXT
-#define aMY_CXT_
-#define _aMY_CXT
-
-#endif 
-
-#endif /* START_MY_CXT */
-
-#ifndef IVdf
-#  if IVSIZE == LONGSIZE
-#       define	IVdf		"ld"
-#       define	UVuf		"lu"
-#       define	UVof		"lo"
-#       define	UVxf		"lx"
-#       define	UVXf		"lX"
-#   else
-#       if IVSIZE == INTSIZE
-#           define	IVdf	"d"
-#           define	UVuf	"u"
-#           define	UVof	"o"
-#           define	UVxf	"x"
-#           define	UVXf	"X"
-#       endif
-#   endif
-#endif
-
-#ifndef NVef
-#   if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE) && \
-	defined(PERL_PRIfldbl) /* Not very likely, but let's try anyway. */ 
-#       define NVef		PERL_PRIeldbl
-#       define NVff		PERL_PRIfldbl
-#       define NVgf		PERL_PRIgldbl
-#   else
-#       define NVef		"e"
-#       define NVff		"f"
-#       define NVgf		"g"
-#   endif
-#endif
-
-#ifndef AvFILLp			/* Older perls (<=5.003) lack AvFILLp */
-#   define AvFILLp AvFILL
-#endif
-
-#ifdef SvPVbyte
-#   if PERL_REVISION == 5 && PERL_VERSION < 7
-       /* SvPVbyte does not work in perl-5.6.1, borrowed version for 5.7.3 */
-#       undef SvPVbyte
-#       define SvPVbyte(sv, lp) \
-          ((SvFLAGS(sv) & (SVf_POK|SVf_UTF8)) == (SVf_POK) \
-           ? ((lp = SvCUR(sv)), SvPVX(sv)) : my_sv_2pvbyte(aTHX_ sv, &lp))
-       static char *
-       my_sv_2pvbyte(pTHX_ register SV *sv, STRLEN *lp)
-       {   
-           sv_utf8_downgrade(sv,0);
-           return SvPV(sv,*lp);
-       }
-#   endif
-#else
-#   define SvPVbyte SvPV
-#endif
-
-#endif /* _P_P_PORTABILITY_H_ */
-
-/* End of File ppport.h */

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/ppport.h (from rev 2166, packages/libdigest-sha-perl/trunk/ppport.h)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/shasum
===================================================================
--- packages/libdigest-sha-perl/trunk/shasum	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/shasum	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,212 +0,0 @@
-#!perl -w
-
-	# shasum: filter for computing SHA digests (analogous to md5sum)
-	#
-	# Copyright (C) 2003-2005 Mark Shelor, All Rights Reserved
-	#
-	# Version: 5.32
-	# Fri Dec  2 02:32:20 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 SHA 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.32";
-
-
-	# 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 SHA 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_34-1/shasum (from rev 2166, packages/libdigest-sha-perl/trunk/shasum)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.c
===================================================================
--- packages/libdigest-sha-perl/trunk/src/hmac.c	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.c	2006-02-21 22:31:00 UTC (rev 2167)
@@ -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.32
- * Fri Dec  2 02:32:20 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;
-{
-	unsigned 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_34-1/src/hmac.c (from rev 2166, packages/libdigest-sha-perl/trunk/src/hmac.c)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.h
===================================================================
--- packages/libdigest-sha-perl/trunk/src/hmac.h	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/hmac.h	2006-02-21 22:31:00 UTC (rev 2167)
@@ -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.32
- * Fri Dec  2 02:32:20 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_34-1/src/hmac.h (from rev 2166, packages/libdigest-sha-perl/trunk/src/hmac.h)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.c
===================================================================
--- packages/libdigest-sha-perl/trunk/src/sha.c	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.c	2006-02-21 22:31:00 UTC (rev 2167)
@@ -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.32
- * Fri Dec  2 02:32:20 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 < 1)
-		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)
-			CLRBIT(s->block, s->blockcnt), s->blockcnt++;
-		else
-			s->sha(s, s->block), s->blockcnt = 0;
-	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);
-}
-
-/* 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;
-{
-	unsigned 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_34-1/src/sha.c (from rev 2166, packages/libdigest-sha-perl/trunk/src/sha.c)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.h
===================================================================
--- packages/libdigest-sha-perl/trunk/src/sha.h	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/src/sha.h	2006-02-21 22:31:00 UTC (rev 2167)
@@ -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.32
- * Fri Dec  2 02:32:20 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_34-1/src/sha.h (from rev 2166, packages/libdigest-sha-perl/trunk/src/sha.h)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod-coverage.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/0-pod-coverage.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod-coverage.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,25 +0,0 @@
-BEGIN {
-	eval "use Test::More";
-	if ($@) {
-		print "1..0 # Skipped: Test::More not installed\n";
-		exit;
-	}
-}
-
-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_34-1/t/0-pod-coverage.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/0-pod-coverage.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/0-pod.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/0-pod.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,11 +0,0 @@
-BEGIN {
-	eval "use Test::More";
-	if ($@) {
-		print "1..0 # Skipped: Test::More not installed\n";
-		exit;
-	}
-}
-
-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_34-1/t/0-pod.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/0-pod.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-exist.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/1-exist.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-exist.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,17 +0,0 @@
-use Test;
-
-BEGIN { plan tests => 1 }
-
-use Digest::SHA 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);
-
-ok(1);

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-exist.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/1-exist.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-hello-world.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/1-hello-world.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-hello-world.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,20 +0,0 @@
-use Test;
-use Digest::SHA qw(sha1);
-use strict;
-use integer;
-
-my(@vec, @rsp);
-
-BEGIN { 
-
-	@vec = ( "hello world" );
-
-	@rsp = ( pack("H*", "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed") );
-
-	plan tests => scalar(@vec);
-
-}
-
-for (my $i = 0; $i < @vec; $i++) {
-	ok(sha1($vec[$i]), $rsp[$i]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/1-hello-world.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/1-hello-world.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-1.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-sha-1.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-1.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,26 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(sha1_hex);
-
-my(@vec, @rsp);
-
-BEGIN {
-	@vec = (
-"abc",
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-"a" x 1000000
-	);
-
-	@rsp = (
-"a9993e364706816aba3e25717850c26c9cd0d89d",
-"84983e441c3bd26ebaae4aa1f95129e5e54670f1",
-"34aa973cd4c4daa4f61eeb2bdbad27316534016f"
-	);
-
-	plan tests => scalar(@vec);
-}
-
-for (my $i = 0; $i < @vec; $i++) {
-	ok(sha1_hex($vec[$i]), $rsp[$i]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-1.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-sha-1.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-224.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-sha-224.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-224.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,26 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(sha224_hex);
-
-my(@vec, @rsp);
-
-BEGIN { 
-	@vec = (
-"abc",
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-"a" x 1000000
-	);
-
-	@rsp = (
-"23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
-"75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525",
-"20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67"
-	);
-
-	plan tests => scalar(@vec); 
-}
-
-for (my $i = 0; $i < @vec; $i++) {
-	ok(sha224_hex($vec[$i]), $rsp[$i]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-224.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-sha-224.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-256.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-sha-256.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-256.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,26 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(sha256_hex);
-
-my(@vec, @rsp);
-
-BEGIN { 
-	@vec = (
-"abc",
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-"a" x 1000000
-	);
-
-	@rsp = (
-"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad",
-"248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1",
-"cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0"
-	);
-
-	plan tests => scalar(@vec);
-}
-
-for (my $i = 0; $i < @vec; $i++) {
-	ok(sha256_hex($vec[$i]), $rsp[$i]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-256.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-sha-256.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-384.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-sha-384.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-384.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,28 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(sha384_hex);
-
-my(@vec, @rsp);
-
-BEGIN { 
-	@vec = (
-"abc",
-"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
-"a" x 1000000
-	);
-
-	@rsp = (
-"cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7",
-"09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039",
-"9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985"
-	);
-
-	plan tests => scalar(@vec); 
-}
-
-my $skip = sha384_hex("") ? 0 : 1;
-
-for (my $i = 0; $i < @vec; $i++) {
-	skip($skip, sha384_hex($vec[$i]), $rsp[$i]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-384.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-sha-384.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-512.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-sha-512.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-512.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,28 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(sha512_hex);
-
-my(@vec, @rsp);
-
-BEGIN { 
-	@vec = (
-"abc",
-"abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
-"a" x 1000000
-	);
-
-	@rsp = (
-"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f",
-"8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909",
-"e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b"
-	);
-
-	plan tests => scalar(@vec);
-}
-
-my $skip = sha512_hex("") ? 0 : 1;
-
-for (my $i = 0; $i < @vec; $i++) {
-	skip($skip, sha512_hex($vec[$i]), $rsp[$i]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-512.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-sha-512.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-base64.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-sha-base64.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-base64.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,30 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(sha1_base64 sha224_base64 sha256_base64 sha384_base64 sha512_base64);
-
-my(@vec, $data);
-
-BEGIN { 
-	$data = "abc";
-	@vec = (
-\&sha1_base64, "qZk+NkcGgWq6PiVxeFDCbJzQ2J0",
-\&sha224_base64, "Iwl9IjQF2CKGQqR3vaJVsyqtvOS9oLP342ydpw",
-\&sha256_base64, "ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0",
-\&sha384_base64, "ywB1P0WjXou1oD1pmsZQBycsMqsO3tFjGotgWkP/W+2AhgcroefMI1i67KE0yCWn",
-\&sha512_base64, "3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05ohkpkqJ0/BqDa6PCOj/uu9RU1EI2Q86A4qmslPpUyknw"
-	);
-
-	plan tests => scalar(@vec) / 2;
-}
-
-my $fcn;
-my $rsp;
-my $skip;
-
-while (@vec) {
-	$fcn = shift(@vec);
-	$rsp = shift(@vec);
-	$skip = &$fcn("") ? 0 : 1;
-	skip($skip, &$fcn($data), $rsp);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-base64.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-sha-base64.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-oo.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-sha-oo.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-oo.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,44 +0,0 @@
-use Test;
-use strict;
-use integer;
-use File::Basename qw(dirname);
-use File::Spec;
-use Digest::SHA;
-
-my(@vec);
-
-BEGIN { 
-	@vec = (
-"ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0",
-"248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"
-	);
-
-	plan tests => 1 + scalar(@vec);
-}
-
-	# attempt to use an invalid algorithm, and check for failure
-
-my $NSA = "SHA-42";	# No Such Algorithm
-ok(Digest::SHA->new($NSA), undef);
-
-	# test OO methods using first two SHA-256 vectors from NIST
-
-my $temp = dirname($0) . "/oo.tmp";
-my $file = File::Spec->canonpath($temp);
-open(FILE, ">$file");
-binmode(FILE);
-print FILE "bcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
-close(FILE);
-
-my $ctx = Digest::SHA->new()->reset("SHA-256")->new();
-$ctx->add_bits("a", 5)->add_bits("001");
-
-my $rsp = shift(@vec);
-ok($ctx->clone->add("b", "c")->b64digest, $rsp);
-
-$rsp = shift(@vec);
-open(FILE, "<$file");
-binmode(FILE);
-ok($ctx->addfile(*FILE)->hexdigest, $rsp);
-close(FILE);
-unlink($file);

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-sha-oo.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-sha-oo.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-bit.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-vectors-bit.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-bit.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,82 +0,0 @@
-# Test against SHA-1 Sample Vectors from NIST
-#
-#	ref: http://csrc.nist.gov/cryptval/shs.html
-#
-# Uses files "nist/bit-messages.sha1" and "nist/bit-hashes.sha1"
-
-use Test;
-use strict;
-use integer;
-
-use File::Basename qw(dirname);
-use File::Spec;
-use Digest::SHA;
-
-my @hashes;
-
-BEGIN {
-	my $file = dirname($0) . "/nist/bit-hashes.sha1";
-	my $datafile = File::Spec->canonpath($file);
-	open(F, $datafile);
-	while (<F>) {
-		next unless (/^[0-9A-F]/);
-		s/[\r\n]+$//;
-		if (/\^$/) {
-			s/\s*\^$//;
-			push(@hashes, $_);
-		}
-	}
-	close(F);
-	plan tests => scalar(@hashes);
-}
-
-sub doType3 {
-	my $hash;
-	my $str = pack("B*", shift);
-	my $ctx = Digest::SHA->new(1);
-	for (my $j = 0; $j <= 99; $j++) {
-		for (my $i = 1; $i <= 50000; $i++) {
-			$str .= chr(0x00) x (int($j/4)+3);
-			$str .= pack("N", $i);
-			$str = $ctx->add($str)->digest;
-		}
-		ok(uc(unpack("H*", $str)), $hash = shift(@hashes));
-	}
-}
-
-my @msgs;
-my @cnts;
-my $bitstr;
-my $bitval;
-my $line;
-my $hash;
-my $type3 = 0;
-my $ctx = Digest::SHA->new(1);
-
-my $file = dirname($0) . "/nist/bit-messages.sha1";
-my $datafile = File::Spec->canonpath($file);
-open(F, $datafile);
-while (<F>) {
-	$type3 = 1 if (/Type 3/);
-	$type3 = 0 if (/^<D/);
-	next unless (/^[0-9^ ]/);
-	s/[\r\n]+$//;
-	$line .= $_;
-	if (/\^$/) {
-		$line =~ s/\s*\^$//;
-		@cnts = split(/\s+/, $line);
-		$bitstr = "";
-		$bitval = $cnts[1];
-		for (my $i = 0; $i < $cnts[0]; $i++) {
-			$bitstr .= $bitval x $cnts[$i+2];
-			$bitval = $bitval eq "1" ? "0" : "1";
-		}
-		ok(
-			uc($ctx->add_bits($bitstr)->hexdigest),
-			$hash = shift(@hashes)
-		) unless $type3;
-		doType3($bitstr) if ($type3);
-		$line = "";
-	}
-}
-close(F);

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-bit.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-vectors-bit.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-byte.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/2-nist-vectors-byte.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-byte.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,82 +0,0 @@
-# Test against SHA-1 Sample Vectors from NIST
-#
-#	ref: http://csrc.nist.gov/cryptval/shs.html
-#
-# Uses files "nist/byte-messages.sha1" and "nist/byte-hashes.sha1"
-
-use Test;
-use strict;
-use integer;
-
-use File::Basename qw(dirname);
-use File::Spec;
-use Digest::SHA;
-
-my @hashes;
-
-BEGIN {
-	my $file = dirname($0) . "/nist/byte-hashes.sha1";
-	my $datafile = File::Spec->canonpath($file);
-	open(F, $datafile);
-	while (<F>) {
-		next unless (/^[0-9A-F]/);
-		s/[\r\n]+$//;
-		if (/\^$/) {
-			s/\s*\^$//;
-			push(@hashes, $_);
-		}
-	}
-	close(F);
-	plan tests => scalar(@hashes);
-}
-
-sub doType3 {
-	my $hash;
-	my $str = pack("B*", shift);
-	my $ctx = Digest::SHA->new(1);
-	for (my $j = 0; $j <= 99; $j++) {
-		for (my $i = 1; $i <= 50000; $i++) {
-			$str .= chr(0x00) x (int($j/4)+3);
-			$str .= pack("N", $i);
-			$str = $ctx->add($str)->digest;
-		}
-		ok(uc(unpack("H*", $str)), $hash = shift(@hashes));
-	}
-}
-
-my @msgs;
-my @cnts;
-my $bitstr;
-my $bitval;
-my $line;
-my $hash;
-my $type3 = 0;
-my $ctx = Digest::SHA->new(1);
-
-my $file = dirname($0) . "/nist/byte-messages.sha1";
-my $datafile = File::Spec->canonpath($file);
-open(F, $datafile);
-while (<F>) {
-	$type3 = 1 if (/Type 3/);
-	$type3 = 0 if (/^<D/);
-	next unless (/^[0-9^ ]/);
-	s/[\r\n]+$//;
-	$line .= $_;
-	if (/\^$/) {
-		$line =~ s/\s*\^$//;
-		@cnts = split(/\s+/, $line);
-		$bitstr = "";
-		$bitval = $cnts[1];
-		for (my $i = 0; $i < $cnts[0]; $i++) {
-			$bitstr .= $bitval x $cnts[$i+2];
-			$bitval = $bitval eq "1" ? "0" : "1";
-		}
-		ok (
-			uc($ctx->add(pack("B*", $bitstr))->hexdigest),
-			$hash = shift(@hashes)
-		) unless $type3;
-		doType3($bitstr) if ($type3);
-		$line = "";
-	}
-}
-close(F);

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/2-nist-vectors-byte.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/2-nist-vectors-byte.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-easy.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/3-gillogly-easy.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-easy.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,61 +0,0 @@
-# Test against short bitwise vectors from Jim Gillogly and Francois Grieu
-#
-# http://www.chiark.greenend.org.uk/pipermail/ukcrypto/1999-February/003538.html
-
-use Test;
-use strict;
-use integer;
-use Digest::SHA;
-
-#	SHA-1 Test Vectors
-#
-#	In the following we use the notation bitstring#n to mean a bitstring
-#	repeated n (in decimal) times, and we use | for concatenation.
-#	Therefore 110#3|1 is 1101101101.
-#
-#	110#148|11  : CE7387AE 577337BE 54EA94F8 2C842E8B E76BC3E1
-#	110#149     : DE244F06 3142CB2F 4C903B7F 7660577F 9E0D8791
-#	110#149|1   : A3D29824 27AE39C8 920CA5F4 99D6C2BD 71EBF03C
-#	110#149|11  : 351AAB58 FF93CF12 AF7D5A58 4CFC8F7D 81023D10
-#
-#	110#170     : 99638692 1E480D4E 2955E727 5DF3522C E8F5AB6E
-#	110#170|1   : BB5F4AD4 8913F51B 157EB985 A5C2034B 8243B01B
-#	110#170|11  : 9E92C554 2237B957 BA2244E8 141FDB66 DEC730A5
-#	110#171     : 2103E454 DA4491F4 E32DD425 A3341DC9 C2A90848
-#
-#	011#490     : B4B18049 DE405027 528CD9E7 4B2EC540 D4E6F06B
-#	011#490|0   : 34C63356 B3087427 20AB9669 14EB0FC9 26E4294B
-#	011#490|01  : 75FACE18 02B9F84F 326368AB 06E73E05 02E9EA34
-#	011#491     : 7C2C3D62 F6AEC28D 94CDF93F 02E739E7 490698A1
-#
-
-my(@vec);
-
-BEGIN { 
-	@vec = (
-		"110",148,"11","ce7387ae577337be54ea94f82c842e8be76bc3e1",
-		"110",149,"","de244f063142cb2f4c903b7f7660577f9e0d8791",
-		"110",149,"1","a3d2982427ae39c8920ca5f499d6c2bd71ebf03c",
-		"110",149,"11","351aab58ff93cf12af7d5a584cfc8f7d81023d10",
-		"110",170,"","996386921e480d4e2955e7275df3522ce8f5ab6e",
-		"110",170,"1","bb5f4ad48913f51b157eb985a5c2034b8243b01b",
-		"110",170,"11","9e92c5542237b957ba2244e8141fdb66dec730a5",
-		"110",171,"","2103e454da4491f4e32dd425a3341dc9c2a90848",
-		"011",490,"","b4b18049de405027528cd9e74b2ec540d4e6f06b",
-		"011",490,"0","34c63356b308742720ab966914eb0fc926e4294b",
-		"011",490,"01","75face1802b9f84f326368ab06e73e0502e9ea34",
-		"011",491,"","7c2c3d62f6aec28d94cdf93f02e739e7490698a1",
-	);
-	plan tests => scalar(@vec) / 4;
-}
-
-my $bitstr;
-my $bitcnt;
-my $ctx = Digest::SHA->new(1);
-
-for (my $i = 0; $i < @vec/4; $i++) {
-	$bitstr = ($vec[4*$i] x $vec[4*$i+1]) . $vec[4*$i+2];
-	$bitcnt = length($bitstr);
-	$bitstr = pack("B*", $bitstr);
-	ok($ctx->add_bits($bitstr, $bitcnt)->hexdigest, $vec[4*$i+3]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-easy.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/3-gillogly-easy.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-hard.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/3-gillogly-hard.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-hard.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,114 +0,0 @@
-# Test against long bitwise vectors from Jim Gillogly and Francois Grieu
-#
-# http://www.chiark.greenend.org.uk/pipermail/ukcrypto/1999-February/003538.html
-
-use Test;
-use strict;
-use integer;
-use File::Basename qw(dirname);
-use File::Spec;
-use Digest::SHA;
-
-#	SHA-1 Test Vectors
-#
-#	In the following we use the notation bitstring#n to mean a bitstring
-#	repeated n (in decimal) times, and we use | for concatenation.
-#	Therefore 110#3|1 is 1101101101.
-#
-#	Here is a set near 2^32 bits to test the roll-over in the length
-#	field from one to two 32-bit words:
-#
-#	110#1431655764|11 1eef5a18 969255a3 b1793a2a 955c7ec2 8cd221a5
-#	110#1431655765|   7a1045b9 14672afa ce8d90e6 d19b3a6a da3cb879
-#	110#1431655765|1  d5e09777 a94f1ea9 240874c4 8d9fecb6 b634256b
-#	110#1431655765|11 eb256904 3c3014e5 1b2862ae 6eb5fb4e 0b851d99
-#
-#	011#1431655764|01 4CB0C4EF 69143D5B F34FC35F 1D4B19F6 ECCAE0F2
-#	011#1431655765    47D92F91 1FC7BB74 DE00ADFC 4E981A81 05556D52
-#	011#1431655765|0  A3D7438C 589B0B93 2AA91CC2 446F06DF 9ABC73F0
-#	011#1431655765|01 3EEE3E1E 28DEDE2C A444D68D A5675B2F AAAB3203
-
-my(@vec110, @vec011);
-
-BEGIN { 
-	@vec110 = (	# 110 rep 1431655764
-		"11", "1eef5a18969255a3b1793a2a955c7ec28cd221a5",
-		"110", "7a1045b914672aface8d90e6d19b3a6ada3cb879",
-		"1101", "d5e09777a94f1ea9240874c48d9fecb6b634256b",
-		"11011", "eb2569043c3014e51b2862ae6eb5fb4e0b851d99"
-	);
-
-	@vec011 = (	# 011 rep 1431655764
-		"01", "4cb0c4ef69143d5bf34fc35f1d4b19f6eccae0f2",
-		"011", "47d92f911fc7bb74de00adfc4e981a8105556d52",
-		"0110", "a3d7438c589b0b932aa91cc2446f06df9abc73f0",
-		"01101", "3eee3e1e28dede2ca444d68da5675b2faaab3203"
-	);
-	plan tests => scalar(@vec110) / 2 + scalar(@vec011) / 2; 
-}
-
-my $fileSTATE110 = dirname($0) . "/gillogly/state.110";
-my $fileSTATE011 = dirname($0) . "/gillogly/state.011";
-
-my $STATE110 = File::Spec->canonpath($fileSTATE110);
-my $STATE011 = File::Spec->canonpath($fileSTATE011);
-
-my $reps = 1 << 14;
-my $loops = int(1431655764 / $reps);
-my $rest = 3 * (1431655764 - $loops * $reps);
-
-sub state110 {
-	my $state;
-	my $bitstr;
-
-	$state = Digest::SHA->new(1);
-	if (-r $STATE110) {
-		if ($state->load($STATE110)) {
-			return($state);
-		}
-	}
-	$bitstr = pack("B*", "110" x $reps);
-	$state->reset;
-	for (my $i = 0; $i < $loops; $i++) {
-		$state->add_bits($bitstr, 3 * $reps);
-	}
-	$state->add_bits($bitstr, $rest);
-	$state->dump($STATE110);
-	return($state);
-}
-
-sub state011 {
-	my $state;
-	my $bitstr;
-
-	$state = Digest::SHA->new(1);
-	if (-r $STATE011) {
-		if ($state->load($STATE011)) {
-			return($state);
-		}
-	}
-	$bitstr = pack("B*", "011" x $reps);
-	$state->reset;
-	for (my $i = 0; $i < $loops; $i++) {
-		$state->add_bits($bitstr, 3 * $reps);
-	}
-	$state->add_bits($bitstr, $rest);
-	$state->dump($STATE011);
-	return($state);
-}
-
-my $i;
-
-my $state110 = state110();
-for ($i = 0; $i < @vec110/2; $i++) {
-	my $state = $state110->clone;
-	$state->add_bits($vec110[2*$i]);
-	ok($state->hexdigest, $vec110[2*$i+1]);
-}
-
-my $state011 = state011();
-for ($i = 0; $i < @vec011/2; $i++) {
-	my $state = $state011->clone;
-	$state->add_bits($vec011[2*$i]);
-	ok($state->hexdigest, $vec011[2*$i+1]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/3-gillogly-hard.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/3-gillogly-hard.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-increasing.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/4-bitstr-increasing.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-increasing.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,22 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA;
-
-BEGIN { plan tests => 1 }
-
-my $i;
-my $bitstr = pack("B*", "1" x 3999);
-my $state = Digest::SHA->new("sHa1");
-
-# Note that (1 + 2 + ... + 3999) + 2000 = 8000000
-
-for ($i = 0; $i <= 3999; $i++) {
-	$state->add_bits($bitstr, $i);
-}
-$state->add_bits($bitstr, 2000);
-
-ok(
-	$state->hexdigest,
-	"559a512393dd212220ee080730d6f11644ba0222"
-);

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-increasing.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/4-bitstr-increasing.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-large.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/4-bitstr-large.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-large.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,21 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA;
-
-BEGIN { plan tests => 1 }
-
-my $i;
-my $bitstr = pack("B*", "11111111" x 10000);
-my $state = Digest::SHA->new("1");
-
-$state->add_bits($bitstr, 1);	# creates an alignment nuisance
-for ($i = 0; $i < 99; $i++) {
-	$state->add_bits($bitstr, 80000);
-}
-$state->add_bits($bitstr, 79999);
-
-ok(
-	$state->hexdigest,
-	"559a512393dd212220ee080730d6f11644ba0222"
-);

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-large.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/4-bitstr-large.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-random.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/4-bitstr-random.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-random.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,24 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA;
-
-BEGIN { plan tests => 1 }
-
-my $reps = 8000000;
-my $bitstr = pack("B*", "11111111" x 127);
-my $maxbits = 8 * 127;
-my $state = Digest::SHA->new(1);
-my $num;
-
-while ($reps > $maxbits) {
-	$num = int(rand($maxbits));
-	$state->add_bits($bitstr, $num);
-	$reps -= $num;
-}
-$state->add_bits($bitstr, $reps);
-
-ok(
-	$state->hexdigest,
-	"559a512393dd212220ee080730d6f11644ba0222"
-);

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/4-bitstr-random.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/4-bitstr-random.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-fips198.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/5-hmac-fips198.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-fips198.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,44 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(hmac_sha1_hex);
-
-my(@vec);
-
-BEGIN { 
-	@vec = (
-		"Sample #1",
-		"Sample #2",
-		"Sample #3",
-		"Sample #4"
-	);
-	plan tests => scalar(@vec);
-}
-
-my @keys = ("", "", "", "");
-
-my $i = 0;
-$keys[0] .= chr($i++) while (length($keys[0]) < 64);
-
-$i = 0x30;
-$keys[1] .= chr($i++) while (length($keys[1]) < 20);
-
-$i = 0x50;
-$keys[2] .= chr($i++) while (length($keys[2]) < 100);
-
-$i = 0x70;
-$keys[3] .= chr($i++) while (length($keys[3]) < 49);
-
-my @hmac1rsp = (
-	"4f4ca3d5d68ba7cc0a1208c9c61e9c5da0403c0a",
-	"0922d3405faa3d194f82a45830737d5cc6c75d24",
-	"bcf41eab8bb2d802f3d05caf7cb092ecf8d1a3aa",
-	"9ea886efe268dbecce420c7524df32e0751a2a26"
-);
-
-for ($i = 0; $i < @vec; $i++) {
-	ok(
-		hmac_sha1_hex($vec[$i], $keys[$i]),
-		$hmac1rsp[$i]
-	);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-fips198.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/5-hmac-fips198.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-rfc2202.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/5-hmac-rfc2202.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-rfc2202.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,49 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(hmac_sha1_hex);
-
-my(@vec);
-
-BEGIN { 
-	@vec = (
-"Hi There",
-"what do ya want for nothing?",
-chr(0xdd) x 50,
-chr(0xcd) x 50,
-"Test With Truncation",
-"Test Using Larger Than Block-Size Key - Hash Key First",
-"Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
-	);
-	plan tests => scalar(@vec);
-}
-
-my @keys = (
-	chr(0x0b) x 20,
-	"Jefe",
-	chr(0xaa) x 20,
-	"",
-	chr(0x0c) x 20,
-	chr(0xaa) x 80,
-	chr(0xaa) x 80
-);
-
-my @hmac1rsp = (
-	"b617318655057264e28bc0b6fb378c8ef146be00",
-	"effcdf6ae5eb2fa2d27416d5f184df9c259a7c79",
-	"125d7342b9ac11cd91a39af48aa17b4f63f175d3",
-	"4c9007f4026250c6bc8414f9bf50c86c2d7235da",
-	"4c1a03424b55e07fe7f27be1d58bb9324a9a5a04",
-	"aa4ae5e15272d00e95705637ce8a3b55ed402112",
-	"e8e99d0f45237d786d6bbaa7965c7808bbff1a91"
-);
-
-my $i = 0x01;
-$keys[3] .= chr($i++) while (length($keys[3]) < 25);
-
-for ($i = 0; $i < @vec; $i++) {
-	ok(
-		hmac_sha1_hex($vec[$i], $keys[$i]),
-		$hmac1rsp[$i]
-	);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-rfc2202.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/5-hmac-rfc2202.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-sha-256.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/5-hmac-sha-256.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-sha-256.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,64 +0,0 @@
-# HMAC-SHA-256 test vectors from draft-ietf-ipsec-ciph-sha-256-01.txt
-
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(hmac_sha256_hex);
-
-my(@data);
-
-BEGIN { 
-	@data = (
-"abc",
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
-"Hi There",
-"what do ya want for nothing?",
-chr(0xdd) x 50,
-chr(0xcd) x 50,
-"Test With Truncation",
-"Test Using Larger Than Block-Size Key - Hash Key First",
-"Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
-	);
-	plan tests => scalar(@data);
-}
-
-my $k1 = pack("H*", "0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20");
-my $k2 = pack("H*", "0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425");
-
-my @key = (
-	$k1,
-	$k1,
-	$k1,
-	chr(0x0b) x 32,
-	"Jefe",
-	chr(0xaa) x 32,
-	$k2,
-	chr(0x0c) x 32,
-	chr(0xaa) x 80,
-	chr(0xaa) x 80
-);
-
-my @hmac256rsp = (
-	"a21b1f5d4cf4f73a4dd939750f7a066a7f98cc131cb16a6692759021cfab8181",
-	"104fdc1257328f08184ba73131c53caee698e36119421149ea8c712456697d30",
-	"470305fc7e40fe34d3eeb3e773d95aab73acf0fd060447a5eb4595bf33a9d1a3",
-	"198a607eb44bfbc69903a0f1cf2bbdc5ba0aa3f3d9ae3c1c7a3b1696a0b68cf7",
-	"5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843",
-	"cdcb1220d1ecccea91e53aba3092f962e549fe6ce9ed7fdc43191fbde45c30b0",
-	"d4633c17f6fb8d744c66dee0f8f074556ec4af55ef07998541468eb49bd2e917",
-	"7546af01841fc09b1ab9c3749a5f1c17d4f589668a587b2700a9c97c1193cf42",
-	"6953025ed96f0c09f80a96f78e6538dbe2e7b820e3dd970e7ddd39091b32352f",
-	"6355ac22e890d0a3c8481a5ca4825bc884d3e7a1ff98a2fc2ac7d8e064c3b2e6"
-);
-
-	# do the first one by hand to test multi-argument data feed
-
-ok(hmac_sha256_hex("a", "b", "c", $k1), $hmac256rsp[0]);
-
-for (my $i = 1; $i < @data; $i++) {
-	ok(
-		hmac_sha256_hex($data[$i], $key[$i]),
-		$hmac256rsp[$i]
-	);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-sha-256.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/5-hmac-sha-256.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-woodbury.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/5-hmac-woodbury.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-woodbury.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,114 +0,0 @@
-# Test Vectors for HMAC-SHA-256/384/512
-#
-# Vectors and script courtesy of Adam Woodbury, The MITRE Corporation
-
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(hmac_sha256_hex hmac_sha384_hex hmac_sha512_hex);
-
-BEGIN { plan tests => 21 }
-
-# Use RFC 2202 data/key values for 512-bit blocks
-
-my @vecs_bs512 = (
-	"Hi There",
-	"what do ya want for nothing?",
-	chr(0xdd) x 50,
-	chr(0xcd) x 50,
-	"Test With Truncation",
-	"Test Using Larger Than Block-Size Key - Hash Key First",
-	"Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data"
-);
-
-my @keys_bs512 = (
-	chr(0x0b) x 20,
-	"Jefe",
-	chr(0xaa) x 20,
-	"",
-	chr(0x0c) x 20,
-	chr(0xaa) x 80,
-	chr(0xaa) x 80
-);
-
-# Lengthen final RFC 2202 data/key values for 1024-bit blocks
-
-my @vecs_bs1024 = (
-	"Hi There",
-	"what do ya want for nothing?",
-	chr(0xdd) x 50,
-	chr(0xcd) x 50,
-	"Test With Truncation",
-	"Test Using Larger Than Block-Size Key - Hash Key First",
-	"Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data. The Larger Block-Sizes Make For Much Longer Test Vectors"
-);
-
-my @keys_bs1024 = (
-	chr(0x0b) x 20,
-	"Jefe",
-	chr(0xaa) x 20,
-	"",
-	chr(0x0c) x 20,
-	chr(0xaa) x 200,
-	chr(0xaa) x 200
-);
-
-my @hmac256rsp = (
-	"b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7",
-	"5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843",
-	"773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe",
-	"82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b",
-	"a3b6167473100ee06e0c796c2955552bfa6f7c0a6a8aef8b93f860aab0cd20c5",
-	"6953025ed96f0c09f80a96f78e6538dbe2e7b820e3dd970e7ddd39091b32352f",
-	"6355ac22e890d0a3c8481a5ca4825bc884d3e7a1ff98a2fc2ac7d8e064c3b2e6"
-);
-
-my @hmac384rsp = (
-"afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59cfaea9ea9076ede7f4af152e8b2fa9cb6",
-"af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649",
-"88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b2a5ab39dc13814b94e3ab6e101a34f27",
-"3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e6801dd23c4a7d679ccf8a386c674cffb",
-"3abf34c3503b2a23a46efc619baef897f4c8e42c934ce55ccbae9740fcbc1af4ca62269e2a37cd88ba926341efe4aeea",
-"ec629fe0dc1fab504fc1c89572d6573cf15c3a4b5b69d53f0c13849561a6c13e153af48d2538ce056a3fe10d69da16c3",
-"07109d2c6c2fdcac39c3a8b5f36fc9a69e029d3d8647cc3e4ddb77888418c5c09d807942e5f96d17ee9fd46aed64b7f2"
-);
-
-my @hmac512rsp = (
-"87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854",
-"164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737",
-"fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb",
-"b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd",
-"415fad6271580a531d4179bc891d87a650188707922a4fbb36663a1eb16da008711c5b50ddd0fc235084eb9d3364a1454fb2ef67cd1d29fe6773068ea266e96b",
-"9dc6330f4c966b62b735d565343cb77413deccdf42a92d9ef5e4e2ae33f6c924bbc8e34c47111bc069482d4dbcfee148419a6547f2d01500e8160b39cc2e4ae8",
-"396ed3a17cef82cddbd987ea66a5dd1f38b68167df31f049463b85fa10b531d0e90d1052f8c9c7cda263468ec3f980a8fec06213c2944c92a0ac95a2d8ade76d"
-);
-
-my $i = 0x01;
-$keys_bs512[3] .= chr($i++) while (length($keys_bs512[3]) < 25);
-$i = 0x01;
-$keys_bs1024[3] .= chr($i++) while (length($keys_bs1024[3]) < 25);
-
-for ($i = 0; $i < @vecs_bs512; $i++) {
-    ok(
-       hmac_sha256_hex($vecs_bs512[$i], $keys_bs512[$i]),
-       $hmac256rsp[$i]
-       );
-}
-
-my $skip = hmac_sha384_hex("", "") ? 0 : 1;
-
-for ($i = 0; $i < @vecs_bs1024; $i++) {
-    skip(
-       $skip,
-       hmac_sha384_hex($vecs_bs1024[$i], $keys_bs1024[$i]),
-       $hmac384rsp[$i]
-       );
-}
-
-for ($i = 0; $i < @vecs_bs1024; $i++) {
-    skip(
-       $skip,
-       hmac_sha512_hex($vecs_bs1024[$i], $keys_bs1024[$i]),
-       $hmac512rsp[$i]
-       );
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/5-hmac-woodbury.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/5-hmac-woodbury.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/6-dump-load.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/6-dump-load.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/6-dump-load.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,53 +0,0 @@
-use Test;
-use strict;
-use integer;
-use Digest::SHA qw(sha384_hex sha512_hex);
-use File::Basename qw(dirname);
-use File::Spec;
-
-my(@sharsp);
-
-BEGIN { 
-	@sharsp = (
-"34aa973cd4c4daa4f61eeb2bdbad27316534016f",
-"cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0",
-"9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985",
-"e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b"
-	);
-	plan tests => scalar(@sharsp);
-}
-
-my @ext = (1, 256, 384, 512);
-my $data = "a" x 990000;
-my $skip;
-my $tmpname = dirname($0) . "/dumpload.tmp";
-my $tmpfile = File::Spec->canonpath($tmpname);
-
-for (my $i = 0; $i < @sharsp; $i++) {
-	$skip = 0;
-	if ($ext[$i] == 384) {
-		$skip = sha384_hex("") ? 0 : 1;
-	}
-	if ($ext[$i] == 512) {
-		$skip = sha512_hex("") ? 0 : 1;
-	}
-	my $digest;
-	unless ($skip) {
-		my $state;
-		my $file;
-		my $filename;
-		$filename = dirname($0) . "/state/state.$ext[$i]";
-		$file = File::Spec->canonpath($filename);
-		unless ($state = Digest::SHA->load($file)) {
-			$state = Digest::SHA->new($ext[$i]);
-			$state->add($data);
-			$state->dump($file);
-			$state->load($file);
-		}
-		$state->add_bits($data, 79984)->dump($tmpfile);
-		$state->load($tmpfile)->add_bits($data, 16);
-		unlink($tmpfile);
-		$digest = $state->hexdigest;
-	}
-	skip($skip, $digest, $sharsp[$i]);
-}

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/6-dump-load.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/6-dump-load.t)

Deleted: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/7-ireland.t
===================================================================
--- packages/libdigest-sha-perl/trunk/t/7-ireland.t	2006-02-21 22:22:52 UTC (rev 2165)
+++ packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/7-ireland.t	2006-02-21 22:31:00 UTC (rev 2167)
@@ -1,41 +0,0 @@
-use Test;
-use strict;
-use File::Basename qw(dirname);
-use File::Spec;
-use Digest::SHA;
-
-# David Ireland's test vector - SHA-256 digest of "a" x 536870912
-
-# Adapted from Julius Duque's original script (t/24-ireland.tmp)
-#	- modified to use state cache via dump()/load() methods
-
-BEGIN { plan tests => 1 }
-
-my $filename = dirname($0) . "/ireland.tmp";
-my $file = File::Spec->canonpath($filename);
-open(F, ">$file"); while (<DATA>) { print F $_ }  close(F);
-
-my $data = "a" x 1000000;
-my $vec = "b9045a713caed5dff3d3b783e98d1ce5778d8bc331ee4119d707072312af06a7";
-
-my $ctx;
-unless ($ctx = Digest::SHA->load($file)) {
-	$ctx = Digest::SHA->new(256);
-	for (1 .. 536) { $ctx->add($data) }
-	$ctx->add(substr($data, 0, 870910));
-	$ctx->dump($file);
-}
-$ctx->add("aa");
-ok($ctx->hexdigest, $vec);
-
-unlink($file);
-
-__DATA__
-alg:256
-H:dd75eb45:02d4f043:06b41193:6fda751d:73064db9:787d54e1:52dc3fe0:48687dfa
-block:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:61:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
-blockcnt:496
-lenhh:0
-lenhl:0
-lenlh:0
-lenll:4294967280

Copied: packages/libdigest-sha-perl/tags/debian_version_5_34-1/t/7-ireland.t (from rev 2166, packages/libdigest-sha-perl/trunk/t/7-ireland.t)




More information about the Pkg-perl-cvs-commits mailing list