Authen::Passphrase::VMSPurdy

Passphrases with the VMS Purdy polynomial system.
Download

Authen::Passphrase::VMSPurdy Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Andrew Main
  • Publisher web site:
  • http://search.cpan.org/~zefram/

Authen::Passphrase::VMSPurdy Tags


Authen::Passphrase::VMSPurdy Description

Passphrases with the VMS Purdy polynomial system. Authen::Passphrase::VMSPurdy is a Perl module that offers passphrases with the VMS Purdy polynomial system.SYNOPSIS use Authen::Passphrase::VMSPurdy; $ppr = Authen::Passphrase::VMSPurdy->new( username => "jrandom", salt => 25362, hash_hex => "832a0c270179584a"); $ppr = Authen::Passphrase::VMSPurdy->new( username => "jrandom", salt_random => 1, passphrase => "passphrase"); $ppr = Authen::Passphrase::VMSPurdy->from_crypt( '$VMS3$1263832A0C270179584AJRANDOM'); $ppr = Authen::Passphrase::VMSPurdy->from_rfc2307( '{CRYPT}$VMS3$1263832A0C270179584AJRANDOM'); $algorithm = $ppr->algorithm; $username = $ppr->username; $salt = $ppr->salt; $hash = $ppr->hash; $hash_hex = $ppr->hash_hex; if($ppr->match($passphrase)) { ... $passwd = $ppr->as_crypt; $userPassword = $ppr->as_rfc2307;An object of this class encapsulates a passphrase hashed using one of the Purdy polynomial hash functions used in VMS. This is a subclass of Authen::Passphrase, and this document assumes that the reader is familiar with the documentation for that class.The core of the Purdy polynomial hashing algorithm transforms one 64-bit number into another 64-bit number. It was developed by George B. Purdy, and described in the paper "A High Security Log-in Procedure" which can be found at http://portal.acm.org/citation.cfm?id=361089&dl=GUIDE&coll=ACM&CFID=15151515&CFTOKEN=6184618.For practical use in passphrase hashing, the Purdy polynomial must be augmented by a procedure to turn a variable-length passphrase into the initial 64-bit number to be hashed. In VMS this pre-hashing phase also incorporates the username of the account to which access is being controlled, in order to prevent identical passphrases yielding identical hashes. This is a form of salting. Another salt parameter, a 16-bit integer, is also included, this one going under the name "salt".There are three variants of the pre-hashing algorithm. The original version, known as "PURDY" and used during field testing of VMS 2.0, truncates or space-pads the username to a fixed length. The second version, known as "PURDY_V" and used from VMS 2.0 up to (but not including) VMS 5.4, properly handles the variable-length nature of the username. The third version, known as "PURDY_S" and used from VMS 5.4 onwards, performs some extra bit rotations to avoid aliasing problems when pre-hashing long strings. All three versions are supported by this module.VMS heavily restricts the composition of both usernames and passphrases. They may only contain alphanumerics, "$", and "_". Case is insignificant. Usernames must be between 1 and 31 characters long, and passphrases must be between 1 and 32 characters long. This module enforces these rules. An invalid passphrase is never accepted as matching. Requirements: · Perl


Authen::Passphrase::VMSPurdy Related Software