NAME

Crypt::Passwd::XS - Full XS implementation of common crypt() algorithms

SYNOPSIS

  use Crypt::Passwd::XS;

  my $plaintext = 'secret';
  my $salt      = '$1$1234';
  my $crypted   = Crypt::Passwd::XS::crypt( $plaintext, $salt );

DESCRIPTION

This module provides several common crypt() schemes as full XS implementations. It allows you to validate crypted passwords that were hashed using a scheme that the system's native crypt() implementation does not support.

Description of functions

The crypt() function handles all supported crypt methods using the standard salt prefix system for determinging the crypt type.

The unix_md5_crypt() function performs a MD5 crypt regardless of the salt prefix.

The apache_md5_crypt() function performs a APR1 crypt regardless of the salt prefix.

The unix_des_crypt() funtion performs a traditional DES crypt regardless of the salt prefix.

The unix_sha256_crypt() function performs a SHA256 crypt regardless of the salt prefix.

The unix_sha512_crypt() function performs a SHA512 crypt regardless of the salt prefix.

TODO

The blowfish and Sun crypt() schemes are currently unsupported.

AUTHOR

John Lightsey, <jd@cpanel.net>

COPYRIGHT AND LICENSE

Copyright (C) 2011 cPanel, Inc.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.

The following files are adapted from other sources (primarily DragonFly BSD.) See the copyright notices in these files for full details:

crypt_to64.c - copyright 1991 University of California

crypt_to64.h - copyright 1991 University of California

des.c - copyright 1994 David Burren, Geoffrey M. Rehmet, Mark R V Murray

md5.c - copyright 1999, 2000, 2002 Aladdin Enterprises

md5.h - copyright 1999, 2000, 2002 Aladdin Enterprises

md5crypt.c - copyright Poul-Henning Kamp

md5crypt.h - copyright Poul-Henning Kamp

sha256crypt.c - public domain reference implementation by Ulrich Drepper

sha512crypt.c - public domain reference implementation by Ulrich Drepper